Skip site navigation (1)Skip section navigation (2)
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>