mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-22 11:17:19 +00:00
move common bits to a shared file
This commit is contained in:
parent
a965ad6a1d
commit
9a6ff5b951
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/cambria/; revision=186022
@ -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
|
||||
|
@ -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
|
||||
|
347
tools/tools/nanobsd/gateworks/common
Normal file
347
tools/tools/nanobsd/gateworks/common
Normal file
@ -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}
|
||||
|
||||
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
|
||||
}
|
Loading…
Reference in New Issue
Block a user