Date: Wed, 7 Nov 2012 06:42:34 -0800 (PST) From: Jack Mc Lauren <jack.mclauren@yahoo.com> To: Paul Schenkeveld <freebsd@psconsult.nl>, "freebsd-embedded@freebsd.org" <freebsd-embedded@freebsd.org> Subject: Re: nanobsd boot problem Message-ID: <1352299354.47535.YahooMailNeo@web126004.mail.ne1.yahoo.com> In-Reply-To: <20121107120204.GA51120@psconsult.nl> References: <1351605941.79450.YahooMailNeo@web126002.mail.ne1.yahoo.com> <20121030145024.GA16785@psconsult.nl> <1352284360.76432.YahooMailNeo@web126003.mail.ne1.yahoo.com> <20121107120204.GA51120@psconsult.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for your reply ...=0A=0A>>Pls. post the .conf file you used to build= NanoBSD.=0A=0A=0A=0Athis is the whole nanobsd.sh file. sorry it's a bit lo= ng ...=0A##################################################################= #################################################################=0A=0A=0As= et -e=0A=0A=0A# Name of this NanoBSD build. =A0(Used to construct workdir n= ames)=0ANANO_NAME=3Dfull=0A=0A# Source tree directory=0ANANO_SRC=3D/usr/src= =0A=0A# Where nanobsd additional files live under the source tree=0ANANO_TO= OLS=3Dtools/tools/nanobsd=0A=0A# Where cust_pkg() finds packages to install= =0ANANO_PACKAGE_DIR=3D${NANO_SRC}/${NANO_TOOLS}/Pkg=0ANANO_PACKAGE_LIST=3D"= *"=0A=0A# Object tree directory=0A# default is subdir of /usr/obj=0ANANO_OB= J=3D"/var/images"=0A=0A# The directory to put the final images=0A# default = is ${NANO_OBJ}=0A#NANO_DISKIMGDIR=3D""=0A=0A# Parallel Make=0ANANO_PMAKE=3D= "make -j 3"=0A=0A# The default name for any image we create.=0ANANO_IMGNAME= =3D"_.disk.full"=0A=0A# Options to put in make.conf during buildworld only= =0ACONF_BUILD=3D'=0AWITHOUT_ACCT=3D"YES"=0AWITHOUT_AMD=3D"YES"=0AWITHOUT_AP= M=3D"YES"=0AWITHOUT_ASSERT_DEBUG=3D"YES"=0AWITHOUT_ATM=3D"YES"=0AWITHOUT_AU= DIT=3D"YES"=0AWITHOUT_AUTHPF=3D"YES"=0AWITHOUT_BIND=3D"YES"=0AWITHOUT_BIND_= DNSSEC=3D"YES"=0AWITHOUT_BIND_ETC=3D"YES"=0AWITHOUT_BIND_LIBS_LWRES=3D"YES"= =0AWITHOUT_BIND_MTREE=3D"YES"=0AWITHOUT_BIND_NAMED=3D"YES"=0AWITHOUT_BIND_U= TILS=3D"YES"=0AWITHOUT_BLUETOOTH=3D"YES"=0AWITHOUT_BSNMP=3D"YES"=0AWITHOUT_= CALENDAR=3D"YES"=0AWITHOUT_CAPSICUM=3D"YES"=0AWITHOUT_CTM=3D"YES"=0AWITHOUT= _CVS=3D"YES"=0AWITHOUT_DICT=3D"YES"=0AWITHOUT_EXAMPLES=3D"YES"=0AWITHOUT_FL= OPPY=3D"YES"=0AWITHOUT_FREEBSD_UPDATE=3D"YES"=0AWITHOUT_GAMES=3D"YES"=0AWIT= HOUT_GCOV=3D"YES"=0AWITHOUT_GDB=3D"YES"=0AWITHOUT_GPIB=3D"YES"=0AWITHOUT_GP= IO=3D"YES"=0AWITHOUT_HTML=3D"YES"=0AWITHOUT_IPFILTER=3D"YES"=0AWITHOUT_IPX= =3D"YES"=0AWITHOUT_IPX_SUPPORT=3D"YES"=0AWITHOUT_JAIL=3D"YES"=0AWITHOUT_KER= BEROS=3D"YES"=0AWITHOUT_KERBEROS_SUPPORT=3D"YES"=0AWITHOUT_LIB32=3D"YES"=0A= WITHOUT_LOCALES=3D"YES"=0AWITHOUT_LOCATE=3D"YES"=0AWITHOUT_LPR=3D"YES"=0AWI= THOUT_MAN=3D"YES"=0AWITHOUT_MAN_UTILS=3D"YES"=0AWITHOUT_NCP=3D"YES"=0AWITHO= UT_NDIS=3D"YES"=0AWITHOUT_NETCAT=3D"YES"=0AWITHOUT_NIS=3D"YES"=0AWITHOUT_NL= S=3D"YES"=0AWITHOUT_NLS_CATALOGS=3D"YES"=0AWITHOUT_NS_CACHING=3D"YES"=0AWIT= HOUT_PORTSNAP=3D"YES"=0AWITHOUT_PROFILE=3D"YES"=0AWITHOUT_QUOTAS=3D"YES"=0A= WITHOUT_RCMDS=3D"YES"=0AWITHOUT_RESCUE=3D"YES"=0AWITHOUT_ROUTED=3D"YES"=0AW= ITHOUT_SENDMAIL=3D"YES"=0AWITHOUT_SHAREDOCS=3D"YES"=0AWITHOUT_SYSINSTALL=3D= "YES"=0AWITHOUT_WIRELESS=3D"YES"=0AWITHOUT_WIRELESS_SUPPORT=3D"YES"=0AWITHO= UT_WPA_SUPPLICANT_EAPOL=3D"YES"=0AWITHOUT_ZFS=3D"YES"=0AWITH_IDEA=3D"YES"= =0A'=0A=0A# Options to put in make.conf during installworld only=0ACONF_INS= TALL=3D'=0AWITHOUT_ACCT=3D"YES"=0AWITHOUT_AMD=3D"YES"=0AWITHOUT_APM=3D"YES"= =0AWITHOUT_ASSERT_DEBUG=3D"YES"=0AWITHOUT_ATM=3D"YES"=0AWITHOUT_AUDIT=3D"YE= S"=0AWITHOUT_AUTHPF=3D"YES"=0AWITHOUT_BIND=3D"YES"=0AWITHOUT_BIND_DNSSEC=3D= "YES"=0AWITHOUT_BIND_ETC=3D"YES"=0AWITHOUT_BIND_LIBS_LWRES=3D"YES"=0AWITHOU= T_BIND_MTREE=3D"YES"=0AWITHOUT_BIND_NAMED=3D"YES"=0AWITHOUT_BIND_UTILS=3D"Y= ES"=0AWITHOUT_BLUETOOTH=3D"YES"=0AWITHOUT_BSNMP=3D"YES"=0AWITHOUT_CALENDAR= =3D"YES"=0AWITHOUT_CAPSICUM=3D"YES"=0AWITHOUT_CTM=3D"YES"=0AWITHOUT_CVS=3D"= YES"=0AWITHOUT_DICT=3D"YES"=0AWITHOUT_EXAMPLES=3D"YES"=0AWITHOUT_FLOPPY=3D"= YES"=0AWITHOUT_FREEBSD_UPDATE=3D"YES"=0AWITHOUT_GAMES=3D"YES"=0AWITHOUT_GCO= V=3D"YES"=0AWITHOUT_GDB=3D"YES"=0AWITHOUT_GPIB=3D"YES"=0AWITHOUT_GPIO=3D"YE= S"=0AWITHOUT_HTML=3D"YES"=0AWITHOUT_IPFILTER=3D"YES"=0AWITHOUT_IPX=3D"YES"= =0AWITHOUT_IPX_SUPPORT=3D"YES"=0AWITHOUT_JAIL=3D"YES"=0AWITHOUT_KERBEROS=3D= "YES"=0AWITHOUT_KERBEROS_SUPPORT=3D"YES"=0AWITHOUT_LIB32=3D"YES"=0AWITHOUT_= LOCALES=3D"YES"=0AWITHOUT_LOCATE=3D"YES"=0AWITHOUT_LPR=3D"YES"=0AWITHOUT_MA= N=3D"YES"=0AWITHOUT_MAN_UTILS=3D"YES"=0AWITHOUT_NCP=3D"YES"=0AWITHOUT_NDIS= =3D"YES"=0AWITHOUT_NETCAT=3D"YES"=0AWITHOUT_NIS=3D"YES"=0AWITHOUT_NLS=3D"YE= S"=0AWITHOUT_NLS_CATALOGS=3D"YES"=0AWITHOUT_NS_CACHING=3D"YES"=0AWITHOUT_PO= RTSNAP=3D"YES"=0AWITHOUT_PROFILE=3D"YES"=0AWITHOUT_QUOTAS=3D"YES"=0AWITHOUT= _RCMDS=3D"YES"=0AWITHOUT_RESCUE=3D"YES"=0AWITHOUT_ROUTED=3D"YES"=0AWITHOUT_= SENDMAIL=3D"YES"=0AWITHOUT_SHAREDOCS=3D"YES"=0AWITHOUT_SYSINSTALL=3D"YES"= =0AWITHOUT_WIRELESS=3D"YES"=0AWITHOUT_WIRELESS_SUPPORT=3D"YES"=0AWITHOUT_WP= A_SUPPLICANT_EAPOL=3D"YES"=0AWITHOUT_ZFS=3D"YES"=0AWITH_IDEA=3D"YES"=0A'=0A= =0A# Options to put in make.conf during both build- & installworld.=0ACONF_= WORLD=3D'=0AWITHOUT_ACCT=3D"YES"=0AWITHOUT_AMD=3D"YES"=0AWITHOUT_APM=3D"YES= "=0AWITHOUT_ASSERT_DEBUG=3D"YES"=0AWITHOUT_ATM=3D"YES"=0AWITHOUT_AUDIT=3D"Y= ES"=0AWITHOUT_AUTHPF=3D"YES"=0AWITHOUT_BIND=3D"YES"=0AWITHOUT_BIND_DNSSEC= =3D"YES"=0AWITHOUT_BIND_ETC=3D"YES"=0AWITHOUT_BIND_LIBS_LWRES=3D"YES"=0AWIT= HOUT_BIND_MTREE=3D"YES"=0AWITHOUT_BIND_NAMED=3D"YES"=0AWITHOUT_BIND_UTILS= =3D"YES"=0AWITHOUT_BLUETOOTH=3D"YES"=0AWITHOUT_BSNMP=3D"YES"=0AWITHOUT_CALE= NDAR=3D"YES"=0AWITHOUT_CAPSICUM=3D"YES"=0AWITHOUT_CTM=3D"YES"=0AWITHOUT_CVS= =3D"YES"=0AWITHOUT_DICT=3D"YES"=0AWITHOUT_EXAMPLES=3D"YES"=0AWITHOUT_FLOPPY= =3D"YES"=0AWITHOUT_FREEBSD_UPDATE=3D"YES"=0AWITHOUT_GAMES=3D"YES"=0AWITHOUT= _GCOV=3D"YES"=0AWITHOUT_GDB=3D"YES"=0AWITHOUT_GPIB=3D"YES"=0AWITHOUT_GPIO= =3D"YES"=0AWITHOUT_HTML=3D"YES"=0AWITHOUT_IPFILTER=3D"YES"=0AWITHOUT_IPX=3D= "YES"=0AWITHOUT_IPX_SUPPORT=3D"YES"=0AWITHOUT_JAIL=3D"YES"=0AWITHOUT_KERBER= OS=3D"YES"=0AWITHOUT_KERBEROS_SUPPORT=3D"YES"=0AWITHOUT_LIB32=3D"YES"=0AWIT= HOUT_LOCALES=3D"YES"=0AWITHOUT_LOCATE=3D"YES"=0AWITHOUT_LPR=3D"YES"=0AWITHO= UT_MAN=3D"YES"=0AWITHOUT_MAN_UTILS=3D"YES"=0AWITHOUT_NCP=3D"YES"=0AWITHOUT_= NDIS=3D"YES"=0AWITHOUT_NETCAT=3D"YES"=0AWITHOUT_NIS=3D"YES"=0AWITHOUT_NLS= =3D"YES"=0AWITHOUT_NLS_CATALOGS=3D"YES"=0AWITHOUT_NS_CACHING=3D"YES"=0AWITH= OUT_PORTSNAP=3D"YES"=0AWITHOUT_PROFILE=3D"YES"=0AWITHOUT_QUOTAS=3D"YES"=0AW= ITHOUT_RCMDS=3D"YES"=0AWITHOUT_RESCUE=3D"YES"=0AWITHOUT_ROUTED=3D"YES"=0AWI= THOUT_SENDMAIL=3D"YES"=0AWITHOUT_SHAREDOCS=3D"YES"=0AWITHOUT_SYSINSTALL=3D"= YES"=0AWITHOUT_WIRELESS=3D"YES"=0AWITHOUT_WIRELESS_SUPPORT=3D"YES"=0AWITHOU= T_WPA_SUPPLICANT_EAPOL=3D"YES"=0AWITHOUT_ZFS=3D"YES"=0AWITH_IDEA=3D"YES"=0A= '=0A=0A# Kernel config file to use=0ANANO_KERNEL=3DGENERIC=0A=0A# Customize= commands.=0ANANO_CUSTOMIZE=3D""=0A#cust_clean=0A=0A# Late customize comman= ds.=0ANANO_LATE_CUSTOMIZE=3D""=0A=0A# Newfs paramters to use=0ANANO_NEWFS= =3D"-b 4096 -f 512 -i 8192 -O1 -U"=0A=0A# The drive name of the media at ru= ntime=0ANANO_DRIVE=3Dda0=0A=0A# Target media size in 512 bytes sectors=0ANA= NO_MEDIASIZE=3D600000=0A#UsbDevice generic-hdd 256=0A=0A# Number of code im= ages on media (1 or 2)=0ANANO_IMAGES=3D1=0A=0A# 0 -> Leave second image all= zeroes so it compresses better.=0A# 1 -> Initialize second image with a co= py of the first=0ANANO_INIT_IMG2=3D0=0A=0A# Size of code file system in 512= bytes sectors=0A# If zero, size will be as large as possible.=0ANANO_CODES= IZE=3D0=0A=0A# Size of configuration file system in 512 bytes sectors=0A# C= annot be zero.=0ANANO_CONFSIZE=3D20480=0A=0A# Size of data file system in 5= 12 bytes sectors=0A# If zero: no partition configured.=0A# If negative: max= size possible=0ANANO_DATASIZE=3D20480=0A=0A# Size of the /etc ramdisk in 5= 12 bytes sectors=0ANANO_RAM_ETCSIZE=3D10240=0A=0A# Size of the /tmp+/var ra= mdisk in 512 bytes sectors=0ANANO_RAM_TMPVARSIZE=3D20480=0A=0A# Media geome= try, only relevant if bios doesn't understand LBA.=0ANANO_SECTS=3D63=0ANANO= _HEADS=3D255=0A=0A# boot0 flags/options and configuration=0ANANO_BOOT0CFG= =3D"-o packet -s 1 -m 3"=0ANANO_BOOTLOADER=3D"boot/boot0sio"=0A=0A# boot2 f= lags/options=0A# default force serial console=0ANANO_BOOT2CFG=3D"-h"=0A=0A#= Backing type of md(4) device=0A# Can be "file" or "swap"=0ANANO_MD_BACKING= =3D"file"=0A=0A# Progress Print level=0APPLEVEL=3D3=0A=0A##################= #####################################################=0A# Architecture to b= uild. =A0Corresponds to TARGET_ARCH in a buildworld.=0A# Unfortunately, the= re's no way to set TARGET at this time, and it=A0=0A# conflates the two, so= architectures where TARGET !=3D TARGET_ARCH do=0A# not work. =A0This defau= lts to the arch of the current machine.=0A=0ANANO_ARCH=3D`uname -p`=0A=0A##= #####################################################################=0A#= =0A# The functions which do the real work.=0A# Can be overridden from the c= onfig file(s)=0A#=0A#######################################################= ################=0A=0Aclean_build ( ) (=0Apprint 2 "Clean and create object= directory (${MAKEOBJDIRPREFIX})"=0A=0Aif ! rm -rf ${MAKEOBJDIRPREFIX} > /d= ev/null 2>&1 ; then=0Achflags -R noschg ${MAKEOBJDIRPREFIX}=0Arm -r ${MAKEO= BJDIRPREFIX}=0Afi=0Amkdir -p ${MAKEOBJDIRPREFIX}=0Aprintenv > ${MAKEOBJDIRP= REFIX}/_.env=0A)=0A=0Amake_conf_build ( ) (=0Apprint 2 "Construct build mak= e.conf ($NANO_MAKE_CONF_BUILD)"=0A=0Aecho "${CONF_WORLD}" > ${NANO_MAKE_CON= F_BUILD}=0Aecho "${CONF_BUILD}" >> ${NANO_MAKE_CONF_BUILD}=0A)=0A=0Abuild_w= orld ( ) (=0Apprint 2 "run buildworld"=0Apprint 3 "log: ${MAKEOBJDIRPREFIX}= /_.bw"=0A=0Acd ${NANO_SRC}=0Aenv TARGET_ARCH=3D${NANO_ARCH} ${NANO_PMAKE} \= =0A__MAKE_CONF=3D${NANO_MAKE_CONF_BUILD} buildworld \=0A> ${MAKEOBJDIRPREFI= X}/_.bw 2>&1=0A)=0A=0Abuild_kernel ( ) (=0Apprint 2 "build kernel ($NANO_KE= RNEL)"=0Apprint 3 "log: ${MAKEOBJDIRPREFIX}/_.bk"=0A=0Aif [ -f ${NANO_KERNE= L} ] ; then=0Acp ${NANO_KERNEL} ${NANO_SRC}/sys/${NANO_ARCH}/conf=0Afi=0A= =0A(cd ${NANO_SRC};=0A# unset these just in case to avoid compiler complain= ts=0A# when cross-building=0Aunset TARGET_CPUTYPE=0Aunset TARGET_BIG_ENDIAN= =0Aenv TARGET_ARCH=3D${NANO_ARCH} ${NANO_PMAKE} buildkernel \=0A__MAKE_CONF= =3D${NANO_MAKE_CONF_BUILD} KERNCONF=3D`basename ${NANO_KERNEL}` \=0A> ${MAK= EOBJDIRPREFIX}/_.bk 2>&1=0A)=0A)=0A=0Aclean_world ( ) (=0Aif [ "${NANO_OBJ}= " !=3D "${MAKEOBJDIRPREFIX}" ]; then=0Apprint 2 "Clean and create object di= rectory (${NANO_OBJ})"=0Aif ! rm -rf ${NANO_OBJ} > /dev/null 2>&1 ; then=0A= chflags -R noschg ${NANO_OBJ}=0Arm -r ${NANO_OBJ}=0Afi=0Amkdir -p ${NANO_OB= J} ${NANO_WORLDDIR}=0Aprintenv > ${NANO_OBJ}/_.env=0Aelse=0Apprint 2 "Clean= and create world directory (${NANO_WORLDDIR})"=0Aif ! rm -rf ${NANO_WORLDD= IR}/ > /dev/null 2>&1 ; then=0Achflags -R noschg ${NANO_WORLDDIR}=0Arm -rf = ${NANO_WORLDDIR}=0Afi=0Amkdir -p ${NANO_WORLDDIR}=0Afi=0A)=0A=0Amake_conf_i= nstall ( ) (=0Apprint 2 "Construct install make.conf ($NANO_MAKE_CONF_INSTA= LL)"=0A=0Aecho "${CONF_WORLD}" > ${NANO_MAKE_CONF_INSTALL}=0Aecho "${CONF_I= NSTALL}" >> ${NANO_MAKE_CONF_INSTALL}=0A)=0A=0Ainstall_world ( ) (=0Apprint= 2 "installworld"=0Apprint 3 "log: ${NANO_OBJ}/_.iw"=0A=0Acd ${NANO_SRC}=0A= env TARGET_ARCH=3D${NANO_ARCH} \=0A${NANO_PMAKE} __MAKE_CONF=3D${NANO_MAKE_= CONF_INSTALL} installworld \=0ADESTDIR=3D${NANO_WORLDDIR} \=0A> ${NANO_OBJ}= /_.iw 2>&1=0Achflags -R noschg ${NANO_WORLDDIR}=0A#for i in ${FreeBSDProgra= mDirs}; do=0A# =A0 =A0 =A0 =A0 =A0 =A0echo "=3D=3D> $i"=0A# =A0 =A0 =A0 =A0= =A0 =A0(cd $i && eval env ${mkenv} ${mkcmd} INSTALL=3Dinstall NOINSTALLLIB= =3Dyes NO_INSTALLLIB=3Dyes install)=0A# =A0 =A0 =A0 =A0done=0A)=0A=0Ainstal= l_etc ( ) (=0A=0Apprint 2 "install /etc"=0Apprint 3 "log: ${NANO_OBJ}/_.etc= "=0A=0Acd ${NANO_SRC}=0Aenv TARGET_ARCH=3D${NANO_ARCH} \=0A${NANO_PMAKE} __= MAKE_CONF=3D${NANO_MAKE_CONF_INSTALL} distribution \=0ADESTDIR=3D${NANO_WOR= LDDIR} \=0A> ${NANO_OBJ}/_.etc 2>&1=0A# make.conf doesn't get created by de= fault, but some ports need it=0A# so they can spam it.=0Acp /dev/null ${NAN= O_WORLDDIR}/etc/make.conf=0A)=0A=0Ainstall_kernel ( ) (=0Apprint 2 "install= kernel"=0Apprint 3 "log: ${NANO_OBJ}/_.ik"=0A=0Acd ${NANO_SRC}=0Aenv TARGE= T_ARCH=3D${NANO_ARCH} ${NANO_PMAKE} installkernel \=0ADESTDIR=3D${NANO_WORL= DDIR} \=0A__MAKE_CONF=3D${NANO_MAKE_CONF_INSTALL} KERNCONF=3D`basename ${NA= NO_KERNEL}` \=0A> ${NANO_OBJ}/_.ik 2>&1=0A)=0A=0Arun_customize() (=0A=0Appr= int 2 "run customize scripts"=0Afor c in $NANO_CUSTOMIZE=0Ado=0Apprint 2 "c= ustomize \"$c\""=0Apprint 3 "log: ${NANO_OBJ}/_.cust.$c"=0Apprint 4 "`type = $c`"=0A( $c ) > ${NANO_OBJ}/_.cust.$c 2>&1=0Adone=0A)=0A=0Arun_late_customi= ze() (=0A=0Apprint 2 "run late customize scripts"=0Afor c in $NANO_LATE_CUS= TOMIZE=0Ado=0Apprint 2 "late customize \"$c\""=0Apprint 3 "log: ${NANO_OBJ}= /_.late_cust.$c"=0Apprint 4 "`type $c`"=0A( $c ) > ${NANO_OBJ}/_.late_cust.= $c 2>&1=0Adone=0A)=0A=0Asetup_nanobsd ( ) (=0Apprint 2 "configure nanobsd s= etup"=0Apprint 3 "log: ${NANO_OBJ}/_.dl"=0A=0A(=0Acd ${NANO_WORLDDIR}=0A=0A= # Move /usr/local/etc to /etc/local so that the /cfg stuff=0A# can stomp on= it. =A0Otherwise packages like ipsec-tools which=0A# have hardcoded paths = under ${prefix}/etc are not tweakable.=0Aif [ -d usr/local/etc ] ; then=0A(= =0Amkdir -p etc/local=0Acd usr/local/etc=0Afind . -print | cpio -dumpl ../.= ./../etc/local=0Acd ..=0Arm -rf etc=0Aln -s ../../etc/local etc=0A)=0Afi=0A= =0Afor d in var etc=0Ado=0A# link /$d under /conf=0A# we use hard links so = we have them both places.=0A# the files in /$d will be hidden by the mount.= =0A# XXX: configure /$d ramdisk size=0Amkdir -p conf/base/$d conf/default/$= d=0Afind $d -print | cpio -dumpl conf/base/=0Adone=0A=0Aecho "$NANO_RAM_ETC= SIZE" > conf/base/etc/md_size=0Aecho "$NANO_RAM_TMPVARSIZE" > conf/base/var= /md_size=0A=0A# pick up config files from the special partition=0Aecho "mou= nt -o ro /dev/${NANO_DRIVE}s3" > conf/default/etc/remount=0A=0A# Put /tmp o= n the /var ramdisk (could be symlink already)=0Armdir tmp || true=0Arm tmp = || true=0Aln -s var/tmp tmp=0A=0A) > ${NANO_OBJ}/_.dl 2>&1=0A)=0A=0Asetup_n= anobsd_etc ( ) (=0Apprint 2 "configure nanobsd /etc"=0A=0A(=0Acd ${NANO_WOR= LDDIR}=0A=0A# create diskless marker file=0Atouch etc/diskless=0A=0A# Make = root filesystem R/O by default=0Aecho "root_rw_mount=3DNO" >> etc/defaults/= rc.conf=0A=0A# save config file for scripts=0Aecho "NANO_DRIVE=3D${NANO_DRI= VE}" > etc/nanobsd.conf=0A=0Aecho "/dev/${NANO_DRIVE}s1a / ufs ro 1 1" > et= c/fstab=0Aecho "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab= =0Amkdir -p cfg=0A)=0A)=0A=0Aprune_usr() (=0A=0A# Remove all empty director= ies in /usr=A0=0Afind ${NANO_WORLDDIR}/usr -type d -depth -print |=0Awhile = read d=0Ado=0Armdir $d > /dev/null 2>&1 || true=A0=0Adone=0A)=0A=0Apopulate= _slice ( ) (=0Alocal dev dir mnt=0Adev=3D$1=0Adir=3D$2=0Amnt=3D$3=0Atest -z= $2 && dir=3D/var/empty=0Atest -d $d || dir=3D/var/empty=0Aecho "Creating $= {dev} with ${dir} (mounting on ${mnt})"=0Anewfs ${NANO_NEWFS} ${dev}=0Amoun= t ${dev} ${mnt}=0Acd ${dir}=0Afind . -print | grep -Ev '/(CVS|\.svn)' | cpi= o -dumpv ${mnt}=0Adf -i ${mnt}=0Aumount ${mnt}=0A)=0A=0Apopulate_cfg_slice = ( ) (=0Apopulate_slice "$1" "$2" "$3"=0A)=0A=0Apopulate_data_slice ( ) (=0A= populate_slice "$1" "$2" "$3"=0A)=0A=0Acreate_i386_diskimage ( ) (=0Apprint= 2 "build diskimage"=0Apprint 3 "log: ${NANO_OBJ}/_.di"=0A=0A(=0Aecho $NANO= _MEDIASIZE $NANO_IMAGES \=0A$NANO_SECTS $NANO_HEADS \=0A$NANO_CODESIZE $NAN= O_CONFSIZE $NANO_DATASIZE |=0Aawk '=0A{=0Aprintf "# %s\n", $0=0A=0A# size o= f cylinder in sectors=0Acs =3D $3 * $4=0A=0A# number of full cylinders on m= edia=0Acyl =3D int ($1 / cs)=0A=0A# output fdisk geometry spec, truncate cy= ls to 1023=0Aif (cyl <=3D 1023)=0Aprint "g c" cyl " h" $4 " s" $3=0Aelse=0A= print "g c" 1023 " h" $4 " s" $3=0A=0Aif ($7 > 0) {=A0=0A# size of data par= tition in full cylinders=0Adsl =3D int (($7 + cs - 1) / cs)=0A} else {=0Ads= l =3D 0;=0A}=0A=0A# size of config partition in full cylinders=0Acsl =3D in= t (($6 + cs - 1) / cs)=0A=0Aif ($5 =3D=3D 0) {=0A# size of image partition(= s) in full cylinders=0Aisl =3D int ((cyl - dsl - csl) / $2)=0A} else {=0Ais= l =3D int (($5 + cs - 1) / cs)=0A}=0A=0A# First image partition start at se= cond track=0Aprint "p 1 165 " $3, isl * cs - $3=0Ac =3D isl * cs;=0A=0A# Se= cond image partition (if any) also starts offset one=A0=0A# track to keep t= hem identical.=0Aif ($2 > 1) {=0Aprint "p 2 165 " $3 + c, isl * cs - $3=0Ac= +=3D isl * cs;=0A}=0A=0A# Config partition starts at cylinder boundary.=0A= print "p 3 165 " c, csl * cs=0Ac +=3D csl * cs=0A=0A# Data partition (if an= y) starts at cylinder boundary.=0Aif ($7 > 0) {=0Aprint "p 4 165 " c, dsl *= cs=0A} else if ($7 < 0 && $1 > c) {=0Aprint "p 4 165 " c, $1 - c=0A} else = if ($1 < c) {=0Aprint "Disk space overcommitted by", \=0A =A0 =A0c - $1, "s= ectors" > "/dev/stderr"=0Aexit 2=0A}=0A=0A# Force slice 1 to be marked acti= ve. This is necessary=0A# for booting the image from a USB device to work.= =0Aprint "a 1"=0A}=0A' > ${NANO_OBJ}/_.fdisk=0A=0AIMG=3D${NANO_DISKIMGDIR}/= ${NANO_IMGNAME}=0AMNT=3D${NANO_OBJ}/_.mnt=0Amkdir -p ${MNT}=0A=0Aif [ "${NA= NO_MD_BACKING}" =3D "swap" ] ; then=0AMD=3D`mdconfig -a -t swap -s ${NANO_M= EDIASIZE} -x ${NANO_SECTS} \=0A-y ${NANO_HEADS}`=0Aelse=0Aecho "Creating md= backing file..."=0Add if=3D/dev/zero of=3D${IMG} bs=3D${NANO_SECTS}b \=0Ac= ount=3D`expr ${NANO_MEDIASIZE} / ${NANO_SECTS}`=0AMD=3D`mdconfig -a -t vnod= e -f ${IMG} -x ${NANO_SECTS} \=0A-y ${NANO_HEADS}`=0Afi=0A=0Atrap "echo 'Ru= nning exit trap code' ; df -i ${MNT} ; umount ${MNT} || true ; mdconfig -d = -u $MD" 1 2 15 EXIT=0A=0Afdisk -i -f ${NANO_OBJ}/_.fdisk ${MD}=0Afdisk ${MD= }=0A# XXX: params=0A# XXX: pick up cached boot* files, they may not be in i= mage anymore.=0Aboot0cfg -B -b ${NANO_WORLDDIR}/${NANO_BOOTLOADER} ${NANO_B= OOT0CFG} ${MD}=0Absdlabel -w -B -b ${NANO_WORLDDIR}/boot/boot ${MD}s1=0Absd= label ${MD}s1=0A=0A# Create first image=0A# XXX: should use populate_slice = for easier override=0Anewfs ${NANO_NEWFS} /dev/${MD}s1a=0Amount /dev/${MD}s= 1a ${MNT}=0Adf -i ${MNT}=0Aecho "Copying worlddir..."=0A( cd ${NANO_WORLDDI= R} && find . -print | cpio -dump ${MNT} )=0Adf -i ${MNT}=0Aecho "Generating= mtree..."=0A( cd ${MNT} && mtree -c ) > ${NANO_OBJ}/_.mtree=0A( cd ${MNT} = && du -k ) > ${NANO_OBJ}/_.du=0Aumount ${MNT}=0A=0Aif [ $NANO_IMAGES -gt 1 = -a $NANO_INIT_IMG2 -gt 0 ] ; then=0A# Duplicate to second image (if present= )=0Aecho "Duplicating to second image..."=0Add if=3D/dev/${MD}s1 of=3D/dev/= ${MD}s2 bs=3D64k=0Amount /dev/${MD}s2a ${MNT}=0Afor f in ${MNT}/etc/fstab $= {MNT}/conf/base/etc/fstab=0Ado=0Ased -i "" "s=3D${NANO_DRIVE}s1=3D${NANO_DR= IVE}s2=3Dg" $f=0Adone=0Aumount ${MNT}=0Afi=0A# Create Config slice=0Apopula= te_cfg_slice /dev/${MD}s3 "${NANO_CFGDIR}" ${MNT}=0A=0A# Create Data slice,= if any.=0Aif [ $NANO_DATASIZE -ne 0 ] ; then=0Apopulate_data_slice /dev/${= MD}s4 "${NANO_DATADIR}" ${MNT}=0Afi=0A=0Aif [ "${NANO_MD_BACKING}" =3D "swa= p" ] ; then=0Aecho "Writing out ${NANO_IMGNAME}..."=0Add if=3D/dev/${MD} of= =3D${IMG} bs=3D64k=0Afi=0A=0Aecho "Writing out _.disk.image..."=0Add if=3D/= dev/${MD}s1 of=3D${NANO_DISKIMGDIR}/_.disk.image bs=3D64k=0Amdconfig -d -u = $MD=0A=0Atrap - 1 2 15 EXIT=0A=0A) > ${NANO_OBJ}/_.di 2>&1=0A)=0A=0A# i386 = and amd64 are identical for disk images=0Acreate_amd64_diskimage ( ) (=0Acr= eate_i386_diskimage=0A)=0A=0Alast_orders () (=0A# Redefine this function wi= th any last orders you may have=0A# after the build completed, for instance= to copy the finished=0A# image to a more convenient place:=0A# cp ${NANO_D= ISKIMGDIR}/_.disk.image /home/ftp/pub/nanobsd.disk=0A)=0A=0A###############= ########################################################=0A#=0A# Optional c= onvenience functions.=0A#=0A###############################################= ########################=0A=0A#############################################= ##########################=0A# Common Flash device geometries=0A#=0A=0AFlas= hDevice () {=0Aif [ -d ${NANO_TOOLS} ] ; then=0A. ${NANO_TOOLS}/FlashDevice= .sub=0Aelse=0A. ${NANO_SRC}/${NANO_TOOLS}/FlashDevice.sub=0Afi=0Asub_FlashD= evice $1 $2=0A}=0A=0A######################################################= #################=0A# USB device geometries=0A#=0A# Usage:=0A#UsbDevice Gen= eric 1000# a generic flash key sold as having 1GB=0A#=0A# This function wil= l set NANO_MEDIASIZE, NANO_HEADS and NANO_SECTS for you.=0A#=0A# Note that = the capacity of a flash key is usually advertised in MB or=0A# GB, *not* Mi= B/GiB. As such, the precise number of cylinders available=0A# for C/H/S geo= metry may vary depending on the actual flash geometry.=0A#=0A# The followin= g generic device layouts are understood:=0A# =A0generic =A0 =A0 =A0 =A0 =A0= An alias for generic-hdd.=0A# =A0generic-hdd =A0 =A0 =A0 255H 63S/T xxxxC = with no MBR restrictions.=0A# =A0generic-fdd =A0 =A0 =A0 64H 32S/T xxxxC wi= th no MBR restrictions.=0A#=0A# The generic-hdd device is preferred for fla= sh devices larger than 1GB.=0A#=0A=0AUsbDevice () {=0Aa1=3D`echo $1 | tr '[= :upper:]' '[:lower:]'`=0Acase $a1 in=0Ageneric-fdd)=0ANANO_HEADS=3D64=0ANAN= O_SECTS=3D32=0ANANO_MEDIASIZE=3D$(( $2 * 1000 * 1000 / 512 ))=0A;;=0Ageneri= c|generic-hdd)=0ANANO_HEADS=3D255=0ANANO_SECTS=3D63=0ANANO_MEDIASIZE=3D$(( = $2 * 1000 * 1000 / 512 ))=0A;;=0A*)=0Aecho "Unknown USB flash device"=0Aexi= t 2=0A;;=0Aesac=0A}=0A=0A##################################################= #####################=0A# Setup serial console=0A=0Acust_comconsole () (=0A= # Enable getty on console=0Ased -i "" -e /tty[du]0/s/off/on/ ${NANO_WORLDDI= R}/etc/ttys=0A=0A# Disable getty on syscons devices=0Ased -i "" -e '/^ttyv[= 0-8]/s/on/off/' ${NANO_WORLDDIR}/etc/ttys=0A=0A# Tell loader to use serial = console early.=0Aecho "${NANO_BOOT2CFG}" > ${NANO_WORLDDIR}/boot.config=0A)= =0A=0A#####################################################################= ##=0A# Allow root login via ssh=0A=0Acust_allow_ssh_root () (=0Ased -i "" -= e '/PermitRootLogin/s/.*/PermitRootLogin yes/' \=0A =A0 =A0${NANO_WORLDDIR}= /etc/ssh/sshd_config=0A)=0A=0A#############################################= ##########################=0A# Install the stuff under ./Files=0A=0Acust_in= stall_files () (=0Acd ${NANO_TOOLS}/Files=0Afind . -print | grep -Ev '/(CVS= |\.svn)' | cpio -dumpv ${NANO_WORLDDIR}=0A)=0A=0Acust_clean () (=0A#for i i= n ${DIRs}; do=0A#echo "removing "$i" from source tree"=0A#rm -rf ${NANO_WOR= LDDIR}$i=0A#cd ${NANO_WORLDDIR}$i=0A#echo "\done"=0A#done=0A=0A# Compress t= he kernel (save 3Mb)=0Aif [ -f ${NANO_WORLDDIR}/boot/kernel/kernel ]; then= =0Aif ! gzip -v9 ${NANO_WORLDDIR}/boot/kernel/kernel; then=0Aecho "Error du= ring zipping the kernel"=0Afi=0Afi=0A# Remove some of the folders (without = share/snmp)=0A# usr/include : 15MB=0AFOLDERS_TO_REMOVE=3D'=0Ausr/local/incl= ude=0Ausr/local/man=0Ausr/local/info=0Ausr/local/share/doc/gettext=0Ausr/lo= cal/share/doc/libasprintf=0Ausr/local/share/doc/libiconv=0Ausr/local/share/= doc/snmp=0Ausr/local/share/examples/quagga=0Ausr/include=0Ausr/share/groff_= font=0Ausr/share/tmac=0Ausr/share/me=0Ausr/share/info=0Ausr/share/man=0Ausr= /share/openssl=0Ausr/libdata/lint=0Ausr/libdata/ldscripts=0A'=0Afor c in $F= OLDERS_TO_REMOVE=0Ado=0Aif [ -d ${NANO_WORLDDIR}/$c ]=0Athen=0Aecho "Removi= ng ${NANO_WORLDDIR}/$c"=0Aif ! rm -rf ${NANO_WORLDDIR}/$c ; then=0Aecho "Er= ror: Can't remove it!"=0Afi=0Afi=0Adone=0A=0A# Remove some files=0A=A0 =A0 = FILES_TO_REMOVE=3D'=0Ausr/local/etc/rc.d/freevrrpd.sh.sample=0Ausr/share/mi= sc/magic.mgc=0Ausr/share/misc/termcap.db=0A'=0A=A0 =A0 for c in ${FILES_TO_= REMOVE}=0A=A0 =A0 do=0A=A0 =A0 =A0 =A0 if [ -f ${NANO_WORLDDIR}/$c ]=0A=A0 = =A0 =A0 =A0 then=0Aecho "Removing ${NANO_WORLDDIR}/$c"=0A=A0 =A0 =A0 =A0 = =A0 =A0 if ! rm -rf ${NANO_WORLDDIR}/$c ; then=0Aecho "Error: Can't remove = it!"=0Afi=0A=A0 =A0 =A0 =A0 fi=0A=A0 =A0 done=0A=0A# All ports are compiled= , then we can remove all TOOLCHAIN files=0A# This save about 25MB.=0A# The = list of these files was generated by a the output of:=0A# usr/src/tools/too= ls/build_option_survey=0A# Because it's a very time consuming script, outpu= t are online:=0A# http://phk.freebsd.dk/misc/build_options_stable_8_210741/= =0A=0ATOOLCHAIN_TO_REMOVE=3D'=0Ausr/bin/addr2line=0Ausr/bin/gnu-ar=0Ausr/bi= n/as=0Ausr/bin/ld=0Ausr/bin/nm=0Ausr/bin/objcopy=0Ausr/bin/objdump=0Ausr/bi= n/gnu-ranlib=0Ausr/bin/readelf=0Ausr/bin/size=0Ausr/bin/strings=0Ausr/bin/s= trip=0Ausr/bin/cc=0Ausr/bin/gcc=0Ausr/bin/cpp=0Ausr/bin/c++=0Ausr/bin/g++= =0Ausr/bin/CC=0Ausr/bin/c++filt=0Ausr/bin/gcov=0Ausr/bin/gdb=0Ausr/bin/gdbt= ui=0Ausr/bin/kgdb=0Ausr/bin/ar=0Ausr/bin/ranlib=0Ausr/bin/c89=0Ausr/bin/c99= =0Ausr/bin/sum=0Ausr/bin/compile_et=0Ausr/bin/ctags=0Ausr/bin/file2c=0Ausr/= bin/gprof=0Ausr/bin/od=0Ausr/bin/indent=0Ausr/bin/m4=0Ausr/bin/lex=0Ausr/bi= n/lex++=0Ausr/bin/flex=0Ausr/bin/flex++=0Ausr/bin/mt=0Ausr/bin/mkstr=0Ausr/= bin/rpcgen=0Ausr/bin/unifdef=0Ausr/bin/unifdefall=0Ausr/bin/nvi=0Ausr/bin/v= grind=0Ausr/bin/lint=0Ausr/bin/xstr=0Ausr/bin/lzdec=0Ausr/bin/yacc=0Ausr/bi= n/yyfix=0Ausr/bin/byacc=0Ausr/bin/lzdec=0Ausr/bin/clang=0Ausr/bin/clang++= =0Ausr/bin/clang-cpp=0Ausr/bin/clang-tblgen=0Ausr/bin/tblgen=0Ausr/bin/crun= chgen=0Ausr/bin/crunchide=0Ausr/libexec/cc1=0Ausr/libexec/cc1plus=0Ausr/lib= exec/cc1obj=0Ausr/libexec/vfontedpr=0Ausr/libexec/lint1=0Ausr/libexec/lint2= =0Ausr/sbin/btxld=0Ausr/sbin/config=0Ausr/sbin/i2c=0Ausr/sbin/pkg_add=0Ausr= /sbin/pkg_create=0Ausr/sbin/pkg_delete=0Ausr/sbin/pkg_info=0Ausr/sbin/pkg_u= pdating=0Ausr/sbin/pkg_version=0Ausr/sbin/rmt=0Ausr/share/misc/gprof.flat= =0Ausr/share/misc/gprof.callg=0Ausr/share/misc/vgrindefs=0Ausr/share/misc/v= grindefs.db=0A'=0A#usr/share/tmac/tmac.vgrind=0A=A0 =A0 for c in $TOOLCHAIN= _TO_REMOVE=0A=A0 =A0 do=0A=A0 =A0 =A0 =A0 if [ -f ${NANO_WORLDDIR}/$c ]=0A= =A0 =A0 =A0 =A0 then=0A=A0 =A0 =A0 =A0 =A0 =A0 echo "Removing ${NANO_WORLDD= IR}/$c"=0A=A0 =A0 =A0 =A0 =A0 =A0 if ! rm -rf ${NANO_WORLDDIR}/$c ; then=0A= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 echo "Error: Can't remove it!"=0A=A0 =A0 = =A0 =A0 =A0 =A0 fi=0A=A0 =A0 =A0 =A0 fi=0A=A0 =A0 done=0A# Move termcap.sma= ll file=0Aif [ -f ${NANO_WORLDDIR}/etc/termcap.small ]; then=0Amv ${NANO_WO= RLDDIR}/etc/termcap.small ${NANO_WORLDDIR}/usr/share/misc/termcap.db=0Afi= =0A=0A# Kill all .a's that are installed with TOOLCHAIN (remove 33MB)=0A=A0= =A0 find ${NANO_WORLDDIR} -name \*.a | xargs rm=0A=0A# strip binaries for = ports (tips from FreeNAS 8)=0Apprint 4 "Stripping binaries and libraries"= =0Afor dir in $(find ${NANO_WORLDDIR}/ -name '*bin' -or -name 'lib' -maxdep= th 3); do=0Afor f in $(find $dir -type f); do=0Astrip 2>/dev/null $f || := =0Adone=0Adone=0A# Generate package inventory=0A#chroot ${NANO_WORLDDIR} /b= in/sh -exc \=0A#'pkg info' > ${NANO_OBJ}/packages.info=0A)=0A=0A###########= ############################################################=0A# Install pa= ckages from ${NANO_PACKAGE_DIR}=0A=0Acust_pkg () (=0A=0A# Copy packages int= o chroot=0Amkdir -p ${NANO_WORLDDIR}/Pkg=0A(=0Acd ${NANO_PACKAGE_DIR}=0Afin= d ${NANO_PACKAGE_LIST} -print |=0A =A0 =A0cpio -dumpv ${NANO_WORLDDIR}/Pkg= =0A)=0A=0A# Count & report how many we have to install=0Atodo=3D`ls ${NANO_= WORLDDIR}/Pkg | wc -l`=0Aecho "=3D=3D=3D TODO: $todo"=0Als ${NANO_WORLDDIR}= /Pkg=0Aecho "=3D=3D=3D"=0Awhile true=0Ado=0A# Record how many we have now= =0Ahave=3D`ls ${NANO_WORLDDIR}/var/db/pkg | wc -l`=0A=0A# Attempt to instal= l more packages=0A# ...but no more than 200 at a time due to pkg_add's inte= rnal=0A# limitations.=0Achroot ${NANO_WORLDDIR} sh -c \=0A'ls Pkg/*tbz | xa= rgs -n 200 pkg_add -F' || true=0A=0A# See what that got us=0Anow=3D`ls ${NA= NO_WORLDDIR}/var/db/pkg | wc -l`=0Aecho "=3D=3D=3D NOW $now"=0Als ${NANO_WO= RLDDIR}/var/db/pkg=0Aecho "=3D=3D=3D"=0A=0A=0Aif [ $now -eq $todo ] ; then= =0Aecho "DONE $now packages"=0Abreak=0Aelif [ $now -eq $have ] ; then=0Aech= o "FAILED: Nothing happened on this pass"=0Aexit 2=0Afi=0Adone=0Arm -rf ${N= ANO_WORLDDIR}/Pkg=0A)=0A=0A################################################= #######################=0A# Convenience function:=0A# Register all args as = customize function.=0A=0Acustomize_cmd () {=0ANANO_CUSTOMIZE=3D"$NANO_CUSTO= MIZE $*"=0Acust_clean=0A}=0A=0A############################################= ###########################=0A# Convenience function:=0A# Register all args= as late customize function to run just before=0A#image creation.=0A=0Alate= _customize_cmd () {=0ANANO_LATE_CUSTOMIZE=3D"$NANO_LATE_CUSTOMIZE $*"=0A}= =0A=0A#####################################################################= ##=0A#=0A# All set up to go...=0A#=0A######################################= #################################=0A=0A# Progress Print=0A#Print $2 at leve= l $1.=0Apprint() {=0A=A0 =A0 if [ "$1" -le $PPLEVEL ]; then=0Aruntime=3D$((= `date +%s` - $NANO_STARTTIME ))=0Aprintf "%s %.${1}s %s\n" "`date -u -r $r= untime +%H:%M:%S`" "#####" "$2" 1>&3=0A=A0 =A0 fi=0A}=0A=0Ausage () {=0A(= =0Aecho "Usage: $0 [-biknqvw] [-c config_file]"=0Aecho "-bsuppress builds (= both kernel and world)"=0Aecho "-isuppress disk image build"=0Aecho "-ksupp= ress buildkernel"=0Aecho "-nadd -DNO_CLEAN to buildworld, buildkernel, etc"= =0Aecho "-qmake output more quiet"=0Aecho "-vmake output more verbose"=0Aec= ho "-wsuppress buildworld"=0Aecho "-cspecify config file"=0A) 1>&2=0Aexit 2= =0A}=0A=0A#################################################################= ######=0A# Parse arguments=0A=0Ado_clean=3Dtrue=0Ado_kernel=3Dtrue=0Ado_wor= ld=3Dtrue=0Ado_image=3Dtrue=0A=0Aset +e=0Aargs=3D`getopt bc:hiknqvw $*`=0Ai= f [ $? -ne 0 ] ; then=0Ausage=0Aexit 2=0Afi=0Aset -e=0A=0Aset -- $args=0Afo= r i=0Ado=0Acase "$i"=A0=0Ain=0A-b)=0Ado_world=3Dfalse=0Ado_kernel=3Dfalse= =0Ashift=0A;;=0A-k)=0Ado_kernel=3Dfalse=0Ashift=0A;;=0A-c)=0A. "$2"=0Ashift= =0Ashift=0A;;=0A-h)=0Ausage=0A;;=0A-i)=0Ado_image=3Dfalse=0Ashift=0A;;=0A-n= )=0Ado_clean=3Dfalse=0Ashift=0A;;=0A-q)=0APPLEVEL=3D$(($PPLEVEL - 1))=0Ashi= ft=0A;;=0A-v)=0APPLEVEL=3D$(($PPLEVEL + 1))=0Ashift=0A;;=0A-w)=0Ado_world= =3Dfalse=0Ashift=0A;;=0A--)=0Ashift=0Abreak=0Aesac=0Adone=0A=0Aif [ $# -gt = 0 ] ; then=0Aecho "$0: Extraneous arguments supplied"=0Ausage=0Afi=0A=0A###= ####################################################################=0A# Se= tup and Export Internal variables=0A#=0Atest -n "${NANO_OBJ}" || NANO_OBJ= =3D/usr/obj/nanobsd.${NANO_NAME}/=0Atest -n "${MAKEOBJDIRPREFIX}" || MAKEOB= JDIRPREFIX=3D${NANO_OBJ}=0Atest -n "${NANO_DISKIMGDIR}" || NANO_DISKIMGDIR= =3D${NANO_OBJ}=0A=0ANANO_WORLDDIR=3D${NANO_OBJ}/_.w=0ANANO_MAKE_CONF_BUILD= =3D${MAKEOBJDIRPREFIX}/make.conf.build=0ANANO_MAKE_CONF_INSTALL=3D${NANO_OB= J}/make.conf.install=0A=0Aif [ -d ${NANO_TOOLS} ] ; then=0Atrue=0Aelif [ -d= ${NANO_SRC}/${NANO_TOOLS} ] ; then=0ANANO_TOOLS=3D${NANO_SRC}/${NANO_TOOLS= }=0Aelse=0Aecho "NANO_TOOLS directory does not exist" 1>&2=0Aexit 1=0Afi=0A= =0Aif $do_clean ; then=0Atrue=0Aelse=0ANANO_PMAKE=3D"${NANO_PMAKE} -DNO_CLE= AN"=0Afi=0A=0Aexport MAKEOBJDIRPREFIX=0A=0Aexport NANO_ARCH=0Aexport NANO_C= ODESIZE=0Aexport NANO_CONFSIZE=0Aexport NANO_CUSTOMIZE=0Aexport NANO_DATASI= ZE=0Aexport NANO_DRIVE=0Aexport NANO_HEADS=0Aexport NANO_IMAGES=0Aexport NA= NO_IMGNAME=0Aexport NANO_MAKE_CONF_BUILD=0Aexport NANO_MAKE_CONF_INSTALL=0A= export NANO_MEDIASIZE=0Aexport NANO_NAME=0Aexport NANO_NEWFS=0Aexport NANO_= OBJ=0Aexport NANO_PMAKE=0Aexport NANO_SECTS=0Aexport NANO_SRC=0Aexport NANO= _TOOLS=0Aexport NANO_WORLDDIR=0Aexport NANO_BOOT0CFG=0Aexport NANO_BOOTLOAD= ER=0A=0A###################################################################= ####=0A# And then it is as simple as that...=0A=0A# File descriptor 3 is us= ed for logging output, see pprint=0Aexec 3>&1=0A=0ANANO_STARTTIME=3D`date += %s`=0Apprint 1 "NanoBSD image ${NANO_NAME} build starting"=0A=0Aif $do_worl= d ; then=0Aif $do_clean ; then=0Aclean_build=0Aelse=0Apprint 2 "Using exist= ing build tree (as instructed)"=0Afi=0Amake_conf_build=0Abuild_world=0Aelse= =0Apprint 2 "Skipping buildworld (as instructed)"=0Afi=0A=0Aif $do_kernel ;= then=0Abuild_kernel=0Aelse=0Apprint 2 "Skipping buildkernel (as instructed= )"=0Afi=0A=0Aclean_world=0Amake_conf_install=0Ainstall_world=0Ainstall_etc= =0Asetup_nanobsd_etc=0Ainstall_kernel=0A=0Arun_customize=0Asetup_nanobsd=0A= prune_usr=0Arun_late_customize=0Aif $do_image ; then=0Acreate_${NANO_ARCH}_= diskimage=0Aelse=0Apprint 2 "Skipping image build (as instructed)"=0Afi=0Al= ast_orders=0A=0Apprint 1 "NanoBSD image ${NANO_NAME} completed"=0A=0A######= ###########################################################################= #################################################=0A>>Never change variable= s inside nanobsd.sh, create a config file instead=0A>>and the run "sh nanob= sd.sh -c configfile.conf"=0A=0AThanks for your suggestion, i will do so :)= =0AI want to use both vga console and serial console, Is it possible ? From owner-freebsd-embedded@FreeBSD.ORG Wed Nov 7 15:06:46 2012 Return-Path: <owner-freebsd-embedded@FreeBSD.ORG> Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C5A5E3FD for <freebsd-embedded@freebsd.org>; Wed, 7 Nov 2012 15:06:46 +0000 (UTC) (envelope-from espartano.mail@gmail.com) Received: from mail-ia0-f182.google.com (mail-ia0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 858B48FC12 for <freebsd-embedded@freebsd.org>; Wed, 7 Nov 2012 15:06:46 +0000 (UTC) Received: by mail-ia0-f182.google.com with SMTP id k10so1530915iag.13 for <freebsd-embedded@freebsd.org>; Wed, 07 Nov 2012 07:06:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=BtclrE5ZSURif7TW4mysWYOgixW0ZNZwPSjZxYDjySk=; b=VkTmeN71pGo96S9WIoWIwSiIIvAk5WogZqfihlxBCQDNAVQo1uavhaF0CClQJrh6zy qCmL8xVnW10hhy/vKKCEKt5KiAw6fV3KoaXBJ71BWLamA5RG23m/Sqyca92qts05QAO0 YWH0/UaLhjp0hOzARUwgkD2j61Dw2Y3BYNsJ9L7K9IuRfimhq0dLzx7Uq837V+yUXHIQ j9dyM3CKKWVgqgDzpa/YdMxfT6H3gyEg31OMTozJqaA0Y/ImOwkHupJ+0+fmXnkLfrLo 3lVmsvmatkkZDu98ag+oUVxwBZxAgV7k4i56Vrd9aGt9w4vyljVz0UJGptDdGYUyvDUh Z1yg== MIME-Version: 1.0 Received: by 10.50.37.168 with SMTP id z8mr17034691igj.1.1352300805810; Wed, 07 Nov 2012 07:06:45 -0800 (PST) Received: by 10.64.37.41 with HTTP; Wed, 7 Nov 2012 07:06:45 -0800 (PST) In-Reply-To: <1352299354.47535.YahooMailNeo@web126004.mail.ne1.yahoo.com> References: <1351605941.79450.YahooMailNeo@web126002.mail.ne1.yahoo.com> <20121030145024.GA16785@psconsult.nl> <1352284360.76432.YahooMailNeo@web126003.mail.ne1.yahoo.com> <20121107120204.GA51120@psconsult.nl> <1352299354.47535.YahooMailNeo@web126004.mail.ne1.yahoo.com> Date: Wed, 7 Nov 2012 09:06:45 -0600 Message-ID: <CAJaC6KbcUgVm8_fLXV2Bh40ymMFvtGuxa7Hw2OOeZMgcMk39tw@mail.gmail.com> Subject: Re: nanobsd boot problem From: Espartano <espartano.mail@gmail.com> To: Jack Mc Lauren <jack.mclauren@yahoo.com> Content-Type: text/plain; charset=ISO-8859-1 Cc: "freebsd-embedded@freebsd.org" <freebsd-embedded@freebsd.org> X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems <freebsd-embedded.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-embedded>, <mailto:freebsd-embedded-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-embedded> List-Post: <mailto:freebsd-embedded@freebsd.org> List-Help: <mailto:freebsd-embedded-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-embedded>, <mailto:freebsd-embedded-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 07 Nov 2012 15:06:46 -0000 > Thanks for your suggestion, i will do so :) > I want to use both vga console and serial console, Is it possible ? Yes, you have to put this line: console="vidconsole comconsole" into /boot/loader.conf file man loader.conf say: console (``vidconsole'') ``comconsole'' selects serial console, ``vidconsole'' selects the video console, ``nullconsole'' selects a mute console (useful for systems with neither a video console nor a serial port), and ``spinconsole'' selects the video console which prevents any input and hides all output replacing it with ``spinning'' character (useful for embedded products and such). Best regards
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1352299354.47535.YahooMailNeo>