svn commit: r186022 - projects/cambria/tools/tools/nanobsd/gateworks

Sam Leffler sam at FreeBSD.org
Fri Dec 12 20:52:58 PST 2008


Author: sam
Date: Sat Dec 13 04:52:57 2008
New Revision: 186022
URL: http://svn.freebsd.org/changeset/base/186022

Log:
  move common bits to a shared file

Added:
  projects/cambria/tools/tools/nanobsd/gateworks/common
Modified:
  projects/cambria/tools/tools/nanobsd/gateworks/avila
  projects/cambria/tools/tools/nanobsd/gateworks/cambria

Modified: projects/cambria/tools/tools/nanobsd/gateworks/avila
==============================================================================
--- projects/cambria/tools/tools/nanobsd/gateworks/avila	Sat Dec 13 04:51:58 2008	(r186021)
+++ projects/cambria/tools/tools/nanobsd/gateworks/avila	Sat Dec 13 04:52:57 2008	(r186022)
@@ -1,351 +1,5 @@
-NANO_NAME="gateworks"
+NANO_NAME="avila"
 NANO_SRC="/usr/sam/base/projects/cambria"
 NANO_KERNEL="G2348"
 
-NANO_CFGDIR=${NANO_SRC}/${NANO_TOOLS}/${NANO_NAME}/cfg
-test -d ${NANO_CFGDIR} || NANO_CFGDIR=/var/empty
-NANO_PMAKE="make"					# NB: disable -j 3
-
-NANO_ARCH=arm
-TARGET_CPUTYPE=xscale; export TARGET_CPUTYPE		# XXX
-TARGET_BIG_ENDIAN=true; export TARGET_BIG_ENDIAN	# XXX
-
-NANO_IMAGES=1
-FlashDevice Sandisk 64
-
-NANO_CUSTOMIZE="cust_allow_ssh_root"
-
-clean_usr_local()
-{
-	LOCAL_DIR=${NANO_WORLDDIR}/usr/local
-	pprint 2 "Clean and create world directory (${LOCAL_DIR})"
-	if rm -rf ${LOCAL_DIR}/ > /dev/null 2>&1 ; then
-		true
-	else
-		chflags -R noschg ${LOCAL_DIR}/
-		rm -rf ${LOCAL_DIR}/
-	fi
-	for f in bin etc lib libdata libexec sbin share; do
-		mkdir -p ${LOCAL_DIR}/$f
-	done
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE clean_usr_local"
-
-cust_install_machine_files()
-{
-	echo "cd ${NANO_TOOLS}/${NANO_NAME}/Files"
-	cd ${NANO_TOOLS}/${NANO_NAME}/Files
-	find . -print | grep -Ev '/(CVS|\.svn)' | cpio -dumpv ${NANO_WORLDDIR}
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE cust_install_files cust_install_machine_files"
-
-buildenv()
-{
-	cd ${NANO_SRC}
-	env TARGET_ARCH=${NANO_ARCH} __MAKE_CONF=${NANO_MAKE_CONF} \
-	    DESTDIR=${NANO_WORLDDIR} make buildenv
-}
-
-net80211_tools()
-{
-	for f in wlanstats wlanwds wlanwatch; do 
-		echo "(cd tools/tools/net80211/$f; make $1)"; 
-	done | buildenv
-}
-net80211_clean_tools()
-{
-	net80211_tools "clean"
-}
-net80211_build_tools()
-{
-	net80211_tools ""
-}
-net80211_install_tools()
-{
-	net80211_tools "install"
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_clean_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_build_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_install_tools"
-
-ath_clean_tools()
-{
-	echo "cd tools/tools/ath; make clean" | buildenv
-}
-ath_build_tools()
-{
-	echo "cd tools/tools/ath; make" | buildenv
-}
-ath_install_tools()
-{
-	echo "cd tools/tools/ath; make install" | buildenv
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_clean_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_build_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_install_tools"
-
-NANO_MAKEFS="makefs -B big \
-	-o bsize=4096,fsize=512,density=8192,optimization=space"
-export NANO_MAKEFS
-
-# NB: leave c++ enabled so devd can be built
-CONF_BUILD="
-WITHOUT_ACPI=true
-WITHOUT_ATM=true
-WITHOUT_AUDIT=true
-WITHOUT_BIND_DNSSEC=true
-WITHOUT_BIND_ETC=true
-WITHOUT_BIND_LIBS_LWRES=true
-WITHOUT_BLUETOOTH=true
-WITHOUT_CALENDAR=true
-WITHOUT_CDDL=true
-WITHOUT_CVS=true
-WITHOUT_DICT=true
-WITHOUT_EXAMPLES=true
-WITHOUT_FORTRAN=true
-WITHOUT_GAMES=true
-WITHOUT_GCOV=true
-WITHOUT_GPIB=true
-WITHOUT_HTML=true
-WITHOUT_I4B=true
-WITHOUT_INET6=true
-WITHOUT_INFO=true
-WITHOUT_IPFILTER=true
-WITHOUT_IPX=true
-WITHOUT_KERBEROS=true
-WITHOUT_LIBKSE=true
-WITHOUT_LOCALES=true
-WITHOUT_LPR=true
-WITHOUT_MAN=true
-WITHOUT_NETCAT=true
-WITHOUT_NIS=true
-WITHOUT_NLS=true
-WITHOUT_NS_CACHING=true
-WITHOUT_OBJC=true
-WITHOUT_PROFILE=true
-WITHOUT_RCMDS=true
-WITHOUT_RCS=true
-WITHOUT_RESCUE=true
-WITHOUT_SENDMAIL=true
-WITHOUT_SHAREDOCS=true
-WITHOUT_SSP=true
-WITHOUT_SYSCONS=true
-WITHOUT_TCSH=true
-"
-CONF_INSTALL="$CONF_BUILD
-WITHOUT_TOOLCHAIN=true
-WITHOUT_INSTALLLIB=true
-"
-
-# NB: override to suppress install of kernel.symbols
-install_kernel()
-{
-	pprint 2 "install kernel"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.ik"
-
-	cd ${NANO_SRC}
-	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} installkernel \
-		INSTALL_NODEBUG=true \
-		DESTDIR=${NANO_WORLDDIR} \
-		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
-		> ${MAKEOBJDIRPREFIX}/_.ik 2>&1
-}
-
-# NB: override to force / on s1 instead of s1a
-setup_nanobsd_etc()
-{
-	pprint 2 "configure nanobsd /etc"
-
-	(
-	cd ${NANO_WORLDDIR}
-
-	# create diskless marker file
-	touch etc/diskless
-
-	# Make root filesystem R/O by default
-	echo "root_rw_mount=NO" >> etc/defaults/rc.conf
-
-	# save config file for scripts
-	echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf
-
-	echo "/dev/${NANO_DRIVE}s1 / ufs ro 1 1" > etc/fstab
-	echo "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab
-	mkdir -p cfg
-	)
-}
-
-create_arm_diskimage()
-{
-	pprint 2 "build diskimage"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.di"
-
-	(
-	echo "NANO_MEDIASIZE:	$NANO_MEDIASIZE"
-	echo "NANO_IMAGES:	$NANO_IMAGES"
-	echo "NANO_SECTS:	$NANO_SECTS"
-	echo "NANO_HEADS:	$NANO_HEADS"
-	echo "NANO_CODESIZE:	$NANO_CODESIZE"
-	echo "NANO_CONFSIZE:	$NANO_CONFSIZE"
-	echo "NANO_DATASIZE:	$NANO_DATASIZE"
-
-	echo $NANO_MEDIASIZE $NANO_IMAGES \
-		$NANO_SECTS $NANO_HEADS \
-		$NANO_CODESIZE $NANO_CONFSIZE $NANO_DATASIZE |
-	awk '
-	{
-		printf "# %s\n", $0
-
-		# size of cylinder in sectors
-		cs = $3 * $4
-
-		# number of full cylinders on media
-		cyl = int ($1 / cs)
-
-		# output fdisk geometry spec, truncate cyls to 1023
-		if (cyl <= 1023)
-			print "g c" cyl " h" $4 " s" $3
-		else
-			print "g c" 1023 " h" $4 " s" $3
-
-		if ($7 > 0) { 
-			# size of data partition in full cylinders
-			dsl = int (($7 + cs - 1) / cs)
-		} else {
-			dsl = 0;
-		}
-
-		# size of config partition in full cylinders
-		csl = int (($6 + cs - 1) / cs)
-
-		if ($5 == 0) {
-			# size of image partition(s) in full cylinders
-			isl = int ((cyl - dsl - csl) / $2)
-		} else {
-			isl = int (($5 + cs - 1) / cs)
-		}
-
-		# First image partition start at second track
-		print "p 1 165 " $3, isl * cs - $3
-		c = isl * cs;
-
-		# Second image partition (if any) also starts offset one 
-		# track to keep them identical.
-		if ($2 > 1) {
-			print "p 2 165 " $3 + c, isl * cs - $3
-			c += isl * cs;
-		}
-
-		# Config partition starts at cylinder boundary.
-		print "p 3 165 " c, csl * cs
-		c += csl * cs
-
-		# Data partition (if any) starts at cylinder boundary.
-		if ($7 > 0) {
-			print "p 4 165 " c, dsl * cs
-		} else if ($7 < 0 && $1 > c) {
-			print "p 4 165 " c, $1 - c
-		} else if ($1 < c) {
-			print "Disk space overcommitted by", \
-			    c - $1, "sectors" > "/dev/stderr"
-			exit 2
-		}
-
-		# Force slice 1 to be marked active. This is necessary
-		# for booting the image from a USB device to work.
-		print "a 1"
-	}
-	' > ${MAKEOBJDIRPREFIX}/_.fdisk
-
-	IMG=${NANO_DISKIMGDIR}/${NANO_IMGNAME}
-	BS=${NANO_SECTS}b
-
-	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
-		MD=`mdconfig -a -t swap -s ${NANO_MEDIASIZE} -x ${NANO_SECTS} \
-			-y ${NANO_HEADS}`
-	else
-		echo ""; echo "Creating md backing file ${IMG} ..."
-		_c=`expr ${NANO_MEDIASIZE} / ${NANO_SECTS}`
-		pprint 2 "dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}"
-		dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}
-		pprint 2 "mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS}"
-		MD=`mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} \
-			-y ${NANO_HEADS}`
-	fi
-
-	trap "mdconfig -d -u $MD" 1 2 15 EXIT
-
-	echo ""; echo "Write partition table ..."
-	FDISK=${MAKEOBJDIRPREFIX}/_.fdisk
-	pprint 2 "fdisk -i -f ${FDISK} ${MD}"
-	fdisk -i -f ${FDISK} ${MD}
-	pprint 2 "fdisk ${MD}"
-	fdisk ${MD}
-
-	# Create first image
-	IMG1=${NANO_DISKIMGDIR}/_.disk.image1
-	echo ""; echo "Create first image ${IMG1} ..."
-	SIZE=`awk '/^p 1/ { print $5 "b" }' ${FDISK}`
-	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}"
-	${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}
-	pprint 2 "dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}"
-	dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}
-
-	if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
-		IMG2=${NANO_DISKIMGDIR}/_.disk.image2
-		echo ""; echo "Create second image ${IMG2}..."
-		for f in ${NANO_WORLDDIR}/etc/fstab ${NANO_WORLDDIR}/conf/base/etc/fstab
-		do
-			sed -i "" "s/${NANO_DRIVE}s1/${NANO_DRIVE}s2/g" $f
-		done
-
-		SIZE=`awk '/^p 2/ { print $5 "b" }' ${FDISK}`
-		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}"
-		${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}
-		pprint 2 "dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}"
-		dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}
-	fi
-
-	# Create Config slice
-	CFG=${NANO_DISKIMGDIR}/_.disk.cfg
-	echo ""; echo "Creating config partition ${CFG}..."
-	SIZE=`awk '/^p 3/ { print $5 "b" }' ${FDISK}`
-	# XXX: fill from where ?
-	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}"
-	${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}
-	pprint 2 "dd if=${CFG} of=/dev/${MD}s3 bs=${BS}"
-	dd if=${CFG} of=/dev/${MD}s3 bs=${BS}
-	pprint 2 "rm ${CFG}"
-	rm ${CFG}; CFG=			# NB: disable printing below
-
-	# Create Data slice, if any.
-	if [ $NANO_DATASIZE -gt 0 ] ; then
-		DATA=${NANO_DISKIMGDIR}/_.disk.data
-		echo ""; echo "Creating data partition ${DATA}..."
-		SIZE=`awk '/^p 4/ { print $5 "b" }' ${FDISK}`
-		# XXX: fill from where ?
-		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty"
-		${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty
-		pprint 2 "dd if=${DATA} of=/dev/${MD}s4 bs=${BS}"
-		dd if=${DATA} of=/dev/${MD}s4 bs=${BS}
-		pprint 2 "rm ${DATA}"
-		rm ${DATA}; DATA=	# NB: disable printing below
-	fi
-
-	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
-		echo "Writing out _.disk.full..."
-		dd if=/dev/${MD} of=${IMG} bs=${BS}
-	fi
-
-	echo ""
-	echo "Completed images in:"
-	echo ""
-	echo "Full disk:         ${IMG}"
-	echo "Primary partition: ${IMG1}"
-	test "${IMG2}" && echo "2ndary partition:  ${IMG2}"
-	test "${CFG}" &&  echo "/cfg partition:    ${CFG}"
-	test "${DATA}" && echo "/data partition:   ${DATA}"
-	echo ""
-	echo "Use dd if=<file> of=/dev/<somewhere> bs=${BS} to transfer an"
-	echo "image to bootable media /dev/<somewhere>."
-	) > ${MAKEOBJDIRPREFIX}/_.di 2>&1
-}
+. common

Modified: projects/cambria/tools/tools/nanobsd/gateworks/cambria
==============================================================================
--- projects/cambria/tools/tools/nanobsd/gateworks/cambria	Sat Dec 13 04:51:58 2008	(r186021)
+++ projects/cambria/tools/tools/nanobsd/gateworks/cambria	Sat Dec 13 04:52:57 2008	(r186022)
@@ -2,350 +2,4 @@ NANO_NAME="cambria"
 NANO_SRC="/usr/sam/base/projects/cambria"
 NANO_KERNEL="G2358"
 
-NANO_CFGDIR=${NANO_SRC}/${NANO_TOOLS}/gateworks/cfg
-test -d ${NANO_CFGDIR} || NANO_CFGDIR=/var/empty
-NANO_PMAKE="make"					# NB: disable -j 3
-
-NANO_ARCH=arm
-TARGET_CPUTYPE=xscale; export TARGET_CPUTYPE		# XXX
-TARGET_BIG_ENDIAN=true; export TARGET_BIG_ENDIAN	# XXX
-
-NANO_IMAGES=1
-FlashDevice Sandisk 64
-
-NANO_CUSTOMIZE="cust_allow_ssh_root"
-
-clean_usr_local()
-{
-	LOCAL_DIR=${NANO_WORLDDIR}/usr/local
-	pprint 2 "Clean and create world directory (${LOCAL_DIR})"
-	if rm -rf ${LOCAL_DIR}/ > /dev/null 2>&1 ; then
-		true
-	else
-		chflags -R noschg ${LOCAL_DIR}/
-		rm -rf ${LOCAL_DIR}/
-	fi
-	for f in bin etc lib libdata libexec sbin share; do
-		mkdir -p ${LOCAL_DIR}/$f
-	done
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE clean_usr_local"
-
-cust_install_machine_files()
-{
-	echo "cd ${NANO_TOOLS}/gateworks/Files"
-	cd ${NANO_TOOLS}/gateworks/Files
-	find . -print | grep -Ev '/(CVS|\.svn)' | cpio -dumpv ${NANO_WORLDDIR}
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE cust_install_files cust_install_machine_files"
-
-buildenv()
-{
-	cd ${NANO_SRC}
-	env TARGET_ARCH=${NANO_ARCH} __MAKE_CONF=${NANO_MAKE_CONF} \
-	    DESTDIR=${NANO_WORLDDIR} make buildenv
-}
-
-net80211_tools()
-{
-	for f in wlanstats wlanwds wlanwatch; do 
-		echo "(cd tools/tools/net80211/$f; make $1)"; 
-	done | buildenv
-}
-net80211_clean_tools()
-{
-	net80211_tools "clean"
-}
-net80211_build_tools()
-{
-	net80211_tools ""
-}
-net80211_install_tools()
-{
-	net80211_tools "install"
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_clean_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_build_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_install_tools"
-
-ath_clean_tools()
-{
-	echo "cd tools/tools/ath; make clean" | buildenv
-}
-ath_build_tools()
-{
-	echo "cd tools/tools/ath; make" | buildenv
-}
-ath_install_tools()
-{
-	echo "cd tools/tools/ath; make install" | buildenv
-}
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_clean_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_build_tools"
-NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_install_tools"
-
-NANO_MAKEFS="makefs -B big \
-	-o bsize=4096,fsize=512,density=8192,optimization=space"
-export NANO_MAKEFS
-
-# NB: leave c++ enabled so devd can be built
-CONF_BUILD="
-WITHOUT_ACPI=true
-WITHOUT_ATM=true
-WITHOUT_AUDIT=true
-WITHOUT_BIND_DNSSEC=true
-WITHOUT_BIND_ETC=true
-WITHOUT_BIND_LIBS_LWRES=true
-WITHOUT_BLUETOOTH=true
-WITHOUT_CALENDAR=true
-WITHOUT_CDDL=true
-WITHOUT_CVS=true
-WITHOUT_DICT=true
-WITHOUT_EXAMPLES=true
-WITHOUT_FORTRAN=true
-WITHOUT_GAMES=true
-WITHOUT_GCOV=true
-WITHOUT_GPIB=true
-WITHOUT_HTML=true
-WITHOUT_I4B=true
-WITHOUT_INET6=true
-WITHOUT_INFO=true
-WITHOUT_IPFILTER=true
-WITHOUT_IPX=true
-WITHOUT_KERBEROS=true
-WITHOUT_LIBKSE=true
-WITHOUT_LOCALES=true
-WITHOUT_LPR=true
-WITHOUT_MAN=true
-WITHOUT_NETCAT=true
-WITHOUT_NIS=true
-WITHOUT_NLS=true
-WITHOUT_NS_CACHING=true
-WITHOUT_OBJC=true
-WITHOUT_PROFILE=true
-WITHOUT_RCMDS=true
-WITHOUT_RCS=true
-WITHOUT_RESCUE=true
-WITHOUT_SENDMAIL=true
-WITHOUT_SHAREDOCS=true
-WITHOUT_SSP=true
-WITHOUT_SYSCONS=true
-WITHOUT_TCSH=true
-"
-CONF_INSTALL="$CONF_BUILD
-WITHOUT_TOOLCHAIN=true
-WITHOUT_INSTALLLIB=true
-"
-
-# NB: override to suppress install of kernel.symbols
-install_kernel()
-{
-	pprint 2 "install kernel"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.ik"
-
-	cd ${NANO_SRC}
-	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} installkernel \
-		INSTALL_NODEBUG=true \
-		DESTDIR=${NANO_WORLDDIR} \
-		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
-		> ${MAKEOBJDIRPREFIX}/_.ik 2>&1
-}
-
-# NB: override to force / on s1 instead of s1a
-setup_nanobsd_etc()
-{
-	pprint 2 "configure nanobsd /etc"
-
-	(
-	cd ${NANO_WORLDDIR}
-
-	# create diskless marker file
-	touch etc/diskless
-
-	# Make root filesystem R/O by default
-	echo "root_rw_mount=NO" >> etc/defaults/rc.conf
-
-	# save config file for scripts
-	echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf
-
-	echo "/dev/${NANO_DRIVE}s1 / ufs ro 1 1" > etc/fstab
-	echo "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab
-	mkdir -p cfg
-	)
-}
-
-create_arm_diskimage()
-{
-	pprint 2 "build diskimage"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.di"
-
-	(
-	echo "NANO_MEDIASIZE:	$NANO_MEDIASIZE"
-	echo "NANO_IMAGES:	$NANO_IMAGES"
-	echo "NANO_SECTS:	$NANO_SECTS"
-	echo "NANO_HEADS:	$NANO_HEADS"
-	echo "NANO_CODESIZE:	$NANO_CODESIZE"
-	echo "NANO_CONFSIZE:	$NANO_CONFSIZE"
-	echo "NANO_DATASIZE:	$NANO_DATASIZE"
-
-	echo $NANO_MEDIASIZE $NANO_IMAGES \
-		$NANO_SECTS $NANO_HEADS \
-		$NANO_CODESIZE $NANO_CONFSIZE $NANO_DATASIZE |
-	awk '
-	{
-		printf "# %s\n", $0
-
-		# size of cylinder in sectors
-		cs = $3 * $4
-
-		# number of full cylinders on media
-		cyl = int ($1 / cs)
-
-		# output fdisk geometry spec, truncate cyls to 1023
-		if (cyl <= 1023)
-			print "g c" cyl " h" $4 " s" $3
-		else
-			print "g c" 1023 " h" $4 " s" $3
-
-		if ($7 > 0) { 
-			# size of data partition in full cylinders
-			dsl = int (($7 + cs - 1) / cs)
-		} else {
-			dsl = 0;
-		}
-
-		# size of config partition in full cylinders
-		csl = int (($6 + cs - 1) / cs)
-
-		if ($5 == 0) {
-			# size of image partition(s) in full cylinders
-			isl = int ((cyl - dsl - csl) / $2)
-		} else {
-			isl = int (($5 + cs - 1) / cs)
-		}
-
-		# First image partition start at second track
-		print "p 1 165 " $3, isl * cs - $3
-		c = isl * cs;
-
-		# Second image partition (if any) also starts offset one 
-		# track to keep them identical.
-		if ($2 > 1) {
-			print "p 2 165 " $3 + c, isl * cs - $3
-			c += isl * cs;
-		}
-
-		# Config partition starts at cylinder boundary.
-		print "p 3 165 " c, csl * cs
-		c += csl * cs
-
-		# Data partition (if any) starts at cylinder boundary.
-		if ($7 > 0) {
-			print "p 4 165 " c, dsl * cs
-		} else if ($7 < 0 && $1 > c) {
-			print "p 4 165 " c, $1 - c
-		} else if ($1 < c) {
-			print "Disk space overcommitted by", \
-			    c - $1, "sectors" > "/dev/stderr"
-			exit 2
-		}
-
-		# Force slice 1 to be marked active. This is necessary
-		# for booting the image from a USB device to work.
-		print "a 1"
-	}
-	' > ${MAKEOBJDIRPREFIX}/_.fdisk
-
-	IMG=${NANO_DISKIMGDIR}/${NANO_IMGNAME}
-	BS=${NANO_SECTS}b
-
-	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
-		MD=`mdconfig -a -t swap -s ${NANO_MEDIASIZE} -x ${NANO_SECTS} \
-			-y ${NANO_HEADS}`
-	else
-		echo ""; echo "Creating md backing file ${IMG} ..."
-		_c=`expr ${NANO_MEDIASIZE} / ${NANO_SECTS}`
-		pprint 2 "dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}"
-		dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}
-		pprint 2 "mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS}"
-		MD=`mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} \
-			-y ${NANO_HEADS}`
-	fi
-
-	trap "mdconfig -d -u $MD" 1 2 15 EXIT
-
-	echo ""; echo "Write partition table ..."
-	FDISK=${MAKEOBJDIRPREFIX}/_.fdisk
-	pprint 2 "fdisk -i -f ${FDISK} ${MD}"
-	fdisk -i -f ${FDISK} ${MD}
-	pprint 2 "fdisk ${MD}"
-	fdisk ${MD}
-
-	# Create first image
-	IMG1=${NANO_DISKIMGDIR}/_.disk.image1
-	echo ""; echo "Create first image ${IMG1} ..."
-	SIZE=`awk '/^p 1/ { print $5 "b" }' ${FDISK}`
-	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}"
-	${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}
-	pprint 2 "dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}"
-	dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}
-
-	if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
-		IMG2=${NANO_DISKIMGDIR}/_.disk.image2
-		echo ""; echo "Create second image ${IMG2}..."
-		for f in ${NANO_WORLDDIR}/etc/fstab ${NANO_WORLDDIR}/conf/base/etc/fstab
-		do
-			sed -i "" "s/${NANO_DRIVE}s1/${NANO_DRIVE}s2/g" $f
-		done
-
-		SIZE=`awk '/^p 2/ { print $5 "b" }' ${FDISK}`
-		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}"
-		${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}
-		pprint 2 "dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}"
-		dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}
-	fi
-
-	# Create Config slice
-	CFG=${NANO_DISKIMGDIR}/_.disk.cfg
-	echo ""; echo "Creating config partition ${CFG}..."
-	SIZE=`awk '/^p 3/ { print $5 "b" }' ${FDISK}`
-	# XXX: fill from where ?
-	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}"
-	${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}
-	pprint 2 "dd if=${CFG} of=/dev/${MD}s3 bs=${BS}"
-	dd if=${CFG} of=/dev/${MD}s3 bs=${BS}
-	pprint 2 "rm ${CFG}"
-	rm ${CFG}; CFG=			# NB: disable printing below
-
-	# Create Data slice, if any.
-	if [ $NANO_DATASIZE -gt 0 ] ; then
-		DATA=${NANO_DISKIMGDIR}/_.disk.data
-		echo ""; echo "Creating data partition ${DATA}..."
-		SIZE=`awk '/^p 4/ { print $5 "b" }' ${FDISK}`
-		# XXX: fill from where ?
-		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty"
-		${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty
-		pprint 2 "dd if=${DATA} of=/dev/${MD}s4 bs=${BS}"
-		dd if=${DATA} of=/dev/${MD}s4 bs=${BS}
-		pprint 2 "rm ${DATA}"
-		rm ${DATA}; DATA=	# NB: disable printing below
-	fi
-
-	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
-		echo "Writing out _.disk.full..."
-		dd if=/dev/${MD} of=${IMG} bs=${BS}
-	fi
-
-	echo ""
-	echo "Completed images in:"
-	echo ""
-	echo "Full disk:         ${IMG}"
-	echo "Primary partition: ${IMG1}"
-	test "${IMG2}" && echo "2ndary partition:  ${IMG2}"
-	test "${CFG}" &&  echo "/cfg partition:    ${CFG}"
-	test "${DATA}" && echo "/data partition:   ${DATA}"
-	echo ""
-	echo "Use dd if=<file> of=/dev/<somewhere> bs=${BS} to transfer an"
-	echo "image to bootable media /dev/<somewhere>."
-	) > ${MAKEOBJDIRPREFIX}/_.di 2>&1
-}
+. common

Added: projects/cambria/tools/tools/nanobsd/gateworks/common
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/cambria/tools/tools/nanobsd/gateworks/common	Sat Dec 13 04:52:57 2008	(r186022)
@@ -0,0 +1,347 @@
+NANO_CFGDIR=${NANO_SRC}/${NANO_TOOLS}/gateworks/cfg
+test -d ${NANO_CFGDIR} || NANO_CFGDIR=/var/empty
+NANO_PMAKE="make"					# NB: disable -j 3
+
+NANO_ARCH=arm
+TARGET_CPUTYPE=xscale; export TARGET_CPUTYPE		# XXX
+TARGET_BIG_ENDIAN=true; export TARGET_BIG_ENDIAN	# XXX
+
+NANO_IMAGES=1
+FlashDevice Sandisk 64
+
+NANO_CUSTOMIZE="cust_allow_ssh_root"
+
+clean_usr_local()
+{
+	LOCAL_DIR=${NANO_WORLDDIR}/usr/local
+	pprint 2 "Clean and create world directory (${LOCAL_DIR})"
+	if rm -rf ${LOCAL_DIR}/ > /dev/null 2>&1 ; then
+		true
+	else
+		chflags -R noschg ${LOCAL_DIR}/
+		rm -rf ${LOCAL_DIR}/
+	fi
+	for f in bin etc lib libdata libexec sbin share; do
+		mkdir -p ${LOCAL_DIR}/$f
+	done
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE clean_usr_local"
+
+cust_install_machine_files()
+{
+	echo "cd ${NANO_TOOLS}/gateworks/Files"
+	cd ${NANO_TOOLS}/gateworks/Files
+	find . -print | grep -Ev '/(CVS|\.svn)' | cpio -dumpv ${NANO_WORLDDIR}
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE cust_install_files cust_install_machine_files"
+
+buildenv()
+{
+	cd ${NANO_SRC}
+	env TARGET_ARCH=${NANO_ARCH} __MAKE_CONF=${NANO_MAKE_CONF} \
+	    DESTDIR=${NANO_WORLDDIR} make buildenv
+}
+
+net80211_tools()
+{
+	for f in wlanstats wlanwds wlanwatch; do 
+		echo "(cd tools/tools/net80211/$f; make $1)"; 
+	done | buildenv
+}
+net80211_clean_tools()
+{
+	net80211_tools "clean"
+}
+net80211_build_tools()
+{
+	net80211_tools ""
+}
+net80211_install_tools()
+{
+	net80211_tools "install"
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_clean_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_build_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_install_tools"
+
+ath_clean_tools()
+{
+	echo "cd tools/tools/ath; make clean" | buildenv
+}
+ath_build_tools()
+{
+	echo "cd tools/tools/ath; make" | buildenv
+}
+ath_install_tools()
+{
+	echo "cd tools/tools/ath; make install" | buildenv
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_clean_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_build_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_install_tools"
+
+NANO_MAKEFS="makefs -B big \
+	-o bsize=4096,fsize=512,density=8192,optimization=space"
+export NANO_MAKEFS
+
+# NB: leave c++ enabled so devd can be built
+CONF_BUILD="
+WITHOUT_ACPI=true
+WITHOUT_ATM=true
+WITHOUT_AUDIT=true
+WITHOUT_BIND_DNSSEC=true
+WITHOUT_BIND_ETC=true
+WITHOUT_BIND_LIBS_LWRES=true
+WITHOUT_BLUETOOTH=true
+WITHOUT_CALENDAR=true
+WITHOUT_CDDL=true
+WITHOUT_CVS=true
+WITHOUT_DICT=true
+WITHOUT_EXAMPLES=true
+WITHOUT_FORTRAN=true
+WITHOUT_GAMES=true
+WITHOUT_GCOV=true
+WITHOUT_GPIB=true
+WITHOUT_HTML=true
+WITHOUT_I4B=true
+WITHOUT_INET6=true
+WITHOUT_INFO=true
+WITHOUT_IPFILTER=true
+WITHOUT_IPX=true
+WITHOUT_KERBEROS=true
+WITHOUT_LIBKSE=true
+WITHOUT_LOCALES=true
+WITHOUT_LPR=true
+WITHOUT_MAN=true
+WITHOUT_NETCAT=true
+WITHOUT_NIS=true
+WITHOUT_NLS=true
+WITHOUT_NS_CACHING=true
+WITHOUT_OBJC=true
+WITHOUT_PROFILE=true
+WITHOUT_RCMDS=true
+WITHOUT_RCS=true
+WITHOUT_RESCUE=true
+WITHOUT_SENDMAIL=true
+WITHOUT_SHAREDOCS=true
+WITHOUT_SSP=true
+WITHOUT_SYSCONS=true
+WITHOUT_TCSH=true
+"
+CONF_INSTALL="$CONF_BUILD
+WITHOUT_TOOLCHAIN=true
+WITHOUT_INSTALLLIB=true
+"
+
+# NB: override to suppress install of kernel.symbols
+install_kernel()
+{
+	pprint 2 "install kernel"
+	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.ik"
+
+	cd ${NANO_SRC}
+	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} installkernel \
+		INSTALL_NODEBUG=true \
+		DESTDIR=${NANO_WORLDDIR} \
+		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
+		> ${MAKEOBJDIRPREFIX}/_.ik 2>&1
+}
+
+# NB: override to force / on s1 instead of s1a
+setup_nanobsd_etc()
+{
+	pprint 2 "configure nanobsd /etc"
+
+	(
+	cd ${NANO_WORLDDIR}
+
+	# create diskless marker file
+	touch etc/diskless
+
+	# Make root filesystem R/O by default
+	echo "root_rw_mount=NO" >> etc/defaults/rc.conf
+
+	# save config file for scripts
+	echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf
+
+	echo "/dev/${NANO_DRIVE}s1 / ufs ro 1 1" > etc/fstab
+	echo "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab
+	mkdir -p cfg
+	)
+}
+
+create_arm_diskimage()
+{
+	pprint 2 "build diskimage"
+	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.di"
+
+	(
+	echo "NANO_MEDIASIZE:	$NANO_MEDIASIZE"
+	echo "NANO_IMAGES:	$NANO_IMAGES"
+	echo "NANO_SECTS:	$NANO_SECTS"
+	echo "NANO_HEADS:	$NANO_HEADS"
+	echo "NANO_CODESIZE:	$NANO_CODESIZE"
+	echo "NANO_CONFSIZE:	$NANO_CONFSIZE"
+	echo "NANO_DATASIZE:	$NANO_DATASIZE"
+
+	echo $NANO_MEDIASIZE $NANO_IMAGES \
+		$NANO_SECTS $NANO_HEADS \
+		$NANO_CODESIZE $NANO_CONFSIZE $NANO_DATASIZE |
+	awk '
+	{
+		printf "# %s\n", $0
+
+		# size of cylinder in sectors
+		cs = $3 * $4
+
+		# number of full cylinders on media
+		cyl = int ($1 / cs)
+
+		# output fdisk geometry spec, truncate cyls to 1023
+		if (cyl <= 1023)
+			print "g c" cyl " h" $4 " s" $3
+		else
+			print "g c" 1023 " h" $4 " s" $3
+
+		if ($7 > 0) { 
+			# size of data partition in full cylinders
+			dsl = int (($7 + cs - 1) / cs)
+		} else {
+			dsl = 0;
+		}
+
+		# size of config partition in full cylinders
+		csl = int (($6 + cs - 1) / cs)
+
+		if ($5 == 0) {
+			# size of image partition(s) in full cylinders
+			isl = int ((cyl - dsl - csl) / $2)
+		} else {
+			isl = int (($5 + cs - 1) / cs)
+		}
+
+		# First image partition start at second track
+		print "p 1 165 " $3, isl * cs - $3
+		c = isl * cs;
+
+		# Second image partition (if any) also starts offset one 
+		# track to keep them identical.
+		if ($2 > 1) {
+			print "p 2 165 " $3 + c, isl * cs - $3
+			c += isl * cs;
+		}
+
+		# Config partition starts at cylinder boundary.
+		print "p 3 165 " c, csl * cs
+		c += csl * cs
+
+		# Data partition (if any) starts at cylinder boundary.
+		if ($7 > 0) {
+			print "p 4 165 " c, dsl * cs
+		} else if ($7 < 0 && $1 > c) {
+			print "p 4 165 " c, $1 - c
+		} else if ($1 < c) {
+			print "Disk space overcommitted by", \
+			    c - $1, "sectors" > "/dev/stderr"
+			exit 2
+		}
+
+		# Force slice 1 to be marked active. This is necessary
+		# for booting the image from a USB device to work.
+		print "a 1"
+	}
+	' > ${MAKEOBJDIRPREFIX}/_.fdisk
+
+	IMG=${NANO_DISKIMGDIR}/${NANO_IMGNAME}
+	BS=${NANO_SECTS}b
+
+	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
+		MD=`mdconfig -a -t swap -s ${NANO_MEDIASIZE} -x ${NANO_SECTS} \
+			-y ${NANO_HEADS}`
+	else
+		echo ""; echo "Creating md backing file ${IMG} ..."
+		_c=`expr ${NANO_MEDIASIZE} / ${NANO_SECTS}`
+		pprint 2 "dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}"
+		dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}
+		pprint 2 "mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS}"
+		MD=`mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} \
+			-y ${NANO_HEADS}`
+	fi
+
+	trap "mdconfig -d -u $MD" 1 2 15 EXIT
+
+	echo ""; echo "Write partition table ..."
+	FDISK=${MAKEOBJDIRPREFIX}/_.fdisk
+	pprint 2 "fdisk -i -f ${FDISK} ${MD}"
+	fdisk -i -f ${FDISK} ${MD}
+	pprint 2 "fdisk ${MD}"
+	fdisk ${MD}
+
+	# Create first image
+	IMG1=${NANO_DISKIMGDIR}/_.disk.image1
+	echo ""; echo "Create first image ${IMG1} ..."
+	SIZE=`awk '/^p 1/ { print $5 "b" }' ${FDISK}`
+	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}"
+	${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}
+	pprint 2 "dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}"
+	dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list