--- elwix/build_rootfs.sh 2011/10/18 09:02:05 1.2 +++ elwix/build_rootfs.sh 2012/10/09 11:08:52 1.2.4.13 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_rootfs.sh,v 1.2 2011/10/18 09:02:05 misho Exp $ +# $Id: build_rootfs.sh,v 1.2.4.13 2012/10/09 11:08:52 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -35,13 +35,15 @@ NEWKERN="${REL}/kernel" clean_elwix() { echo "+++ Clean csh from ELWIX World ..." - rm -rf ${BSDOBJ}/usr/src/bin/csh/* +# rm -rf ${BSDOBJ}/usr/src/bin/csh/* + rm -rf $BSDOBJ/elwix echo "+++ Clean ELWIX RootFS firmware ..." rm -rf $MKDIR mkdir $MKDIR echo "+++ Clean RootFS directory ..." + chflags -R noschg $ROOTFS rm -rf $ROOTFS mkdir $ROOTFS @@ -57,20 +59,28 @@ prepare_elwix() # Auto-generated Makefile include for crungegen # !!! Dont edit by hand !!! # -#BUILDOPTS += TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} -CRUNCH_SUPPRESS_LINK_-sh= 1 -CRUNCH_SUPPRESS_LINK_-csh= 1 -CRUNCH_SUPPRESS_LINK_-tcsh= 1 + +#CRUNCH_SUPPRESS_LINK_-sh= 1 +#CRUNCH_SUPPRESS_LINK_-csh= 1 +#CRUNCH_SUPPRESS_LINK_-tcsh= 1 + LIBS += -L${WORLD}/lib -L${WORLD}/usr/lib _EOF cat >$ROOTFS_CONF <<_EOF +srcdirs ${BSDSRC}/tools/tools ${BSDSRC}/tools/tools/ath +srcdirs ${BSDSRC}/release/picobsd/tinyware srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec ${BSDSRC}/cddl/sbin ${BSDSRC}/sbin/ggate -#buildopts -DRESCUE CRUNCH_CFLAGS=-DRESCUE TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} -buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} +srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa +srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr.sbin ${BSDSRC}/secure/libexec + +buildopts -DNO_PAM -DNO_KERBEROS WITHOUT_PAM_SUPPORT=yes WITHOUT_KERBEROS_SUPPORT=yes WITHOUT_KERBEROS=yes +buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ}/elwix _EOF cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF - crunchgen -f -p $BSDOBJ -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF + . ${CENV} + install -d ${BSDOBJ}/elwix + crunchgen -f -o -p ${BSDOBJ}/elwix -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF cd - } @@ -78,8 +88,13 @@ build_elwix() { echo "+++ Build ELWIX RootFS firmware ..." cd $MKDIR + . ${CENV} + MAKEOBJDIRPREFIX=${BSDOBJ}/elwix make -f $MKF clean make -f $MKF + if [ $? -ne 0 ]; then + exit 1 + fi cd - } @@ -92,16 +107,20 @@ build_rootdir() install -d dev; install -d elwix; install -d elwix/etc; + install -d libexec; install -d mnt; install -d -m 0555 proc; install -d sbin; install -d system; install -d -m 1777 tmp; install -d usr; + install -d usr/bin; + install -d usr/lib; + install -d usr/libexec; + install -d usr/sbin; install -d var; ln -fs /usr/lib lib; - ln -fs /usr/libexec libexec; ln -fs /elwix/etc etc; ln -fs /elwix/exports exports; @@ -114,11 +133,15 @@ build_rootdir() install_rootfs() { - PRG="/sbin/elwix" BIN="${ROOTFS}/bin" SBIN="${ROOTFS}/sbin" + UBIN="${ROOTFS}/usr/bin" + LIBEXEC="${ROOTFS}/usr/libexec" ETC="${ROOTFS}/elwix/etc" + PRG="/sbin/elwix" + LNPRG="${SBIN}/elwix" + echo "+++ Install ELWIX into RootFS directory ..." install $MKDIR/elwix $SBIN @@ -126,144 +149,228 @@ install_rootfs() InstallDir ${ROOTFS_ETC} $ETC - ln -s /usr/sbin/nologin $SBIN +# ln -s /usr/sbin/nologin $SBIN - ln -s $PRG $BIN/test - ln -s $PRG $BIN/\[ - ln -s $PRG $BIN/cat - ln -s $PRG $BIN/chflags - ln -s $PRG $BIN/chio - ln -s $PRG $BIN/chmod - ln -s $PRG $BIN/cp -# ln -s $PRG $BIN/csh -# ln -s $PRG $BIN/tcsh - ln -s /bin/tcsh $BIN/-tcsh - ln -s /bin/csh $BIN/-csh - ln -s $PRG $BIN/date - ln -s $PRG $BIN/dd - ln -s $PRG $BIN/df - ln -s $PRG $BIN/domainname - ln -s $PRG $BIN/echo - ln -s $PRG $BIN/expr - ln -s $PRG $BIN/getfacl - ln -s $PRG $BIN/hostname - ln -s $PRG $BIN/kenv - ln -s $PRG $BIN/kill - ln -s $PRG $BIN/ln - ln -s $PRG $BIN/link - ln -s $PRG $BIN/ls - ln -s $PRG $BIN/mkdir - ln -s $PRG $BIN/mv - ln -s $PRG $BIN/pax - ln -s $PRG $BIN/pkill - ln -s $PRG $BIN/pgrep - ln -s $PRG $BIN/sh - ln -s $PRG $BIN/-sh - ln -s $PRG $BIN/ps - ln -s $PRG $BIN/pwait - ln -s $PRG $BIN/pwd - ln -s $PRG $BIN/realpath - ln -s $PRG $BIN/rm - ln -s $PRG $BIN/unlink - ln -s $PRG $BIN/rmdir - ln -s $PRG $BIN/setfacl - ln -s $PRG $BIN/sleep - ln -s $PRG $BIN/stty - ln -s $PRG $BIN/sync - ln -s $PRG $BIN/uuidgen + ln $LNPRG $BIN/csh + ln $LNPRG $BIN/tcsh + ln $LNPRG $BIN/-tcsh - ln -s $PRG $SBIN/adjkerntz - ln -s $PRG $SBIN/atacontrol - ln -s $PRG $SBIN/badsect - ln -s $PRG $SBIN/bsdlabel - ln -s $PRG $SBIN/disklabel - ln -s $PRG $SBIN/camcontrol - ln -s $PRG $SBIN/ccdconfig - ln -s $PRG $SBIN/comcontrol - ln -s $PRG $SBIN/conscontrol - ln -s $PRG $SBIN/devfs - ln -s $PRG $SBIN/dhclient - ln -s $PRG $SBIN/dmesg - ln -s $PRG $SBIN/dump - ln -s $PRG $SBIN/rdump - ln -s $PRG $SBIN/dumpfs - ln -s $PRG $SBIN/dumpon - ln -s $PRG $SBIN/fdisk - ln -s $PRG $SBIN/ffsinfo - ln -s $PRG $SBIN/fsck - ln -s $PRG $SBIN/fsck_ffs - ln -s $PRG $SBIN/fsck_ufs - ln -s $PRG $SBIN/fsck_4.2bsd - ln -s $PRG $SBIN/fsck_msdosfs - ln -s $PRG $SBIN/gbde - ln -s $PRG $SBIN/ggatec - ln -s $PRG $SBIN/ggated - ln -s $PRG $SBIN/ggatel - ln -s $PRG $SBIN/-geom - ln -s $PRG $SBIN/glabel - ln -s $PRG $SBIN/gpart - ln -s $PRG $SBIN/growfs - ln -s $PRG $SBIN/hastctl - ln -s $PRG $SBIN/hastd - ln -s $PRG $SBIN/ifconfig - ln -s $PRG $SBIN/init - ln -s $PRG $SBIN/ipfw - ln -s $PRG $SBIN/iscontrol - ln -s $PRG $SBIN/kldconfig - ln -s $PRG $SBIN/kldload - ln -s $PRG $SBIN/kldstat - ln -s $PRG $SBIN/kldunload - ln -s $PRG $SBIN/ldconfig - ln -s $PRG $SBIN/md5 - ln -s $PRG $SBIN/sha1 - ln -s $PRG $SBIN/sha256 - ln -s $PRG $SBIN/rmd160 - ln -s $PRG $SBIN/mdconfig - ln -s $PRG $SBIN/mdmfs - ln -s $PRG $SBIN/mount_mfs - ln -s $PRG $SBIN/mknod - ln -s $PRG $SBIN/mksnap_ffs - ln -s $PRG $SBIN/mount - ln -s $PRG $SBIN/mount_cd9660 - ln -s $PRG $SBIN/mount_msdosfs - ln -s $PRG $SBIN/mount_nfs - ln -s $PRG $SBIN/mount_ntfs - ln -s $PRG $SBIN/mount_nullfs - ln -s $PRG $SBIN/mount_udf - ln -s $PRG $SBIN/mount_unionfs - ln -s $PRG $SBIN/natd - ln -s $PRG $SBIN/newfs - ln -s $PRG $SBIN/newfs_msdos - ln -s $PRG $SBIN/nfsiod - ln -s $PRG $SBIN/nos-tun - ln -s $PRG $SBIN/pfctl - ln -s $PRG $SBIN/pflogd - ln -s $PRG $SBIN/ping - ln -s $PRG $SBIN/ping6 - ln -s $PRG $SBIN/quotacheck - ln -s $PRG $SBIN/reboot - ln -s $PRG $SBIN/halt - ln -s $PRG $SBIN/fastboot - ln -s $PRG $SBIN/fasthalt - ln -s $PRG $SBIN/recoverdisk - ln -s $PRG $SBIN/restore - ln -s $PRG $SBIN/rrestore - ln -s $PRG $SBIN/route - ln -s $PRG $SBIN/rtsol - ln -s $PRG $SBIN/savecore - ln -s $PRG $SBIN/setkey - ln -s $PRG $SBIN/shutdown - ln -s $PRG $SBIN/spppcontrol - ln -s $PRG $SBIN/swapon - ln -s $PRG $SBIN/swapoff - ln -s $PRG $SBIN/swapctl - ln -s $PRG $SBIN/sysctl - ln -s $PRG $SBIN/tunefs - ln -s $PRG $SBIN/umount - ln -s $PRG $SBIN/zfs - ln -s $PRG $SBIN/zpool + ln $LNPRG $BIN/test + ln $LNPRG $BIN/\[ + ln $LNPRG $BIN/cat + ln $LNPRG $BIN/chflags + ln $LNPRG $BIN/chio + ln $LNPRG $BIN/chmod + ln $LNPRG $BIN/cp + ln $LNPRG $BIN/date + ln $LNPRG $BIN/dd + ln $LNPRG $BIN/df + ln $LNPRG $BIN/domainname + ln $LNPRG $BIN/echo + ln $LNPRG $BIN/expr + ln $LNPRG $BIN/hostname + ln $LNPRG $BIN/kenv + ln $LNPRG $BIN/kill + ln $LNPRG $BIN/ln + ln $LNPRG $BIN/link + ln $LNPRG $BIN/ls + ln $LNPRG $BIN/mkdir + ln $LNPRG $BIN/mv + ln $LNPRG $BIN/pax + ln $LNPRG $BIN/pkill + ln $LNPRG $BIN/pgrep + ln $LNPRG $BIN/sh + ln $LNPRG $BIN/-sh + ln $LNPRG $BIN/ps + ln $LNPRG $BIN/pwait + ln $LNPRG $BIN/pwd + ln $LNPRG $BIN/realpath + ln $LNPRG $BIN/rm + ln $LNPRG $BIN/unlink + ln $LNPRG $BIN/rmdir + ln $LNPRG $BIN/sleep + ln $LNPRG $BIN/stty + ln $LNPRG $BIN/sync + ln $LNPRG $BIN/uuidgen + ln $LNPRG $BIN/true + ln $LNPRG $BIN/false + ln $LNPRG $BIN/basename + ln $LNPRG $BIN/tail + ln $LNPRG $BIN/nc + ln $LNPRG $BIN/w + ln $LNPRG $BIN/head + ln $LNPRG $BIN/uname + ln $LNPRG $BIN/tset + ln $LNPRG $BIN/vmstat + ln $LNPRG $BIN/systat + ln $LNPRG $BIN/tput + ln $LNPRG $BIN/grep + ln $LNPRG $BIN/awk + ln $LNPRG $BIN/less + ln $LNPRG $BIN/gzip + ln $LNPRG $BIN/cap_mkdb + ln $LNPRG $BIN/sed + ln $LNPRG $BIN/vi + ln $LNPRG $BIN/du + ln $LNPRG $BIN/getopt + ln $LNPRG $BIN/logger + ln $LNPRG $BIN/nice + ln $LNPRG $BIN/nohup + ln $LNPRG $BIN/seq + ln $LNPRG $BIN/sockstat + ln $LNPRG $BIN/stat + ln $LNPRG $BIN/tee + ln $LNPRG $BIN/tftp + ln $LNPRG $BIN/touch + ln $LNPRG $BIN/wc + ln $LNPRG $BIN/xargs + ln $LNPRG $BIN/printenv + ln $LNPRG $BIN/egrep + ln $LNPRG $BIN/fgrep + ln $LNPRG $BIN/tar + ln $LNPRG $BIN/cpio + ln $LNPRG $BIN/nawk + ln $LNPRG $BIN/gunzip + ln $LNPRG $BIN/gzcat + ln $LNPRG $BIN/zcat + ln $LNPRG $BIN/more + ln $LNPRG $BIN/reset + ln $LNPRG $BIN/readlink + ln $LNPRG $BIN/uptime + ln $LNPRG $BIN/bzip2 + ln $LNPRG $BIN/bunzip2 + ln $LNPRG $BIN/bzcat + + ln $LNPRG $SBIN/bsdlabel + ln $LNPRG $SBIN/disklabel + ln $LNPRG $SBIN/camcontrol + ln $LNPRG $SBIN/comcontrol + ln $LNPRG $SBIN/conscontrol + ln $LNPRG $SBIN/devfs + ln $LNPRG $SBIN/dhclient + ln $LNPRG $SBIN/dmesg + ln $LNPRG $SBIN/dump + ln $LNPRG $SBIN/rdump + ln $LNPRG $SBIN/dumpon + ln $LNPRG $SBIN/fdisk + ln $LNPRG $SBIN/fsck + ln $LNPRG $SBIN/fsck_ffs + ln $LNPRG $SBIN/fsck_ufs + ln $LNPRG $SBIN/fsck_4.2bsd + ln $LNPRG $SBIN/fsck_msdosfs + ln $LNPRG $SBIN/etherswitchcfg + ln $LNPRG $SBIN/-geom + ln $LNPRG $SBIN/glabel + ln $LNPRG $SBIN/gpart + ln $LNPRG $SBIN/graid + ln $LNPRG $SBIN/growfs + ln $LNPRG $SBIN/hastctl + ln $LNPRG $SBIN/hastd + ln $LNPRG $SBIN/ifconfig + ln $LNPRG $SBIN/init + ln $LNPRG $SBIN/ipfw + ln $LNPRG $SBIN/iscontrol + ln $LNPRG $SBIN/kldconfig + ln $LNPRG $SBIN/kldload + ln $LNPRG $SBIN/kldstat + ln $LNPRG $SBIN/kldunload + ln $LNPRG $SBIN/ldconfig + ln $LNPRG $SBIN/md5 + ln $LNPRG $SBIN/sha1 + ln $LNPRG $SBIN/sha256 + ln $LNPRG $SBIN/rmd160 + ln $LNPRG $SBIN/mdconfig + ln $LNPRG $SBIN/mdmfs + ln $LNPRG $SBIN/mount_mfs + ln $LNPRG $SBIN/mknod + ln $LNPRG $SBIN/mksnap_ffs + ln $LNPRG $SBIN/mount + ln $LNPRG $SBIN/mount_cd9660 + ln $LNPRG $SBIN/mount_msdosfs + ln $LNPRG $SBIN/mount_nfs + ln $LNPRG $SBIN/mount_ntfs + ln $LNPRG $SBIN/mount_nullfs + ln $LNPRG $SBIN/mount_udf + ln $LNPRG $SBIN/mount_unionfs + ln $LNPRG $SBIN/newfs + ln $LNPRG $SBIN/newfs_msdos + ln $LNPRG $SBIN/nfsiod + ln $LNPRG $SBIN/nos-tun + ln $LNPRG $SBIN/nvmecontrol + ln $LNPRG $SBIN/pfctl + ln $LNPRG $SBIN/pflogd + ln $LNPRG $SBIN/quotacheck + ln $LNPRG $SBIN/reboot + ln $LNPRG $SBIN/halt + ln $LNPRG $SBIN/fastboot + ln $LNPRG $SBIN/fasthalt + ln $LNPRG $SBIN/recoverdisk + ln $LNPRG $SBIN/restore + ln $LNPRG $SBIN/rrestore + ln $LNPRG $SBIN/route + ln $LNPRG $SBIN/rtsol + ln $LNPRG $SBIN/shutdown + ln $LNPRG $SBIN/savecore + ln $LNPRG $SBIN/swapon + ln $LNPRG $SBIN/swapoff + ln $LNPRG $SBIN/swapctl + ln $LNPRG $SBIN/sysctl + ln $LNPRG $SBIN/tunefs + ln $LNPRG $SBIN/umount + ln $LNPRG $SBIN/zfs + ln $LNPRG $SBIN/zpool + + ln $LNPRG $SBIN/ping + ln $LNPRG $SBIN/ping6 + ln $LNPRG $SBIN/traceroute + ln $LNPRG $SBIN/traceroute6 + + ln $LNPRG $SBIN/chown + ln $LNPRG $SBIN/pwd_mkdb + ln $LNPRG $SBIN/arp + ln $LNPRG $SBIN/gpioctl + ln $LNPRG $SBIN/hostapd + ln $LNPRG $SBIN/hostapd_cli + ln $LNPRG $SBIN/wpa_supplicant + ln $LNPRG $SBIN/wpa_cli + ln $LNPRG $SBIN/wpa_passphrase + ln $LNPRG $SBIN/wake + ln $LNPRG $SBIN/watchdog + ln $LNPRG $SBIN/watchdogd + ln $LNPRG $SBIN/inetd + ln $LNPRG $SBIN/wlandebug + ln $LNPRG $SBIN/chroot + ln $LNPRG $SBIN/i2c + ln $LNPRG $SBIN/iostat + ln $LNPRG $SBIN/jail + ln $LNPRG $SBIN/jexec + ln $LNPRG $SBIN/jls + ln $LNPRG $SBIN/ndp + ln $LNPRG $SBIN/newsyslog + ln $LNPRG $SBIN/nologin + ln $LNPRG $SBIN/pstat + ln $LNPRG $SBIN/rtadvctl + ln $LNPRG $SBIN/rtadvd + ln $LNPRG $SBIN/rtsold + ln $LNPRG $SBIN/syslogd + ln $LNPRG $SBIN/setfib + ln $LNPRG $SBIN/swapinfo + ln $LNPRG $SBIN/chgrp + + ln $LNPRG $UBIN/login + ln $LNPRG $UBIN/passwd + + ln $LNPRG $LIBEXEC/getty + ln $LNPRG $LIBEXEC/tftpd + + strip -s $LNPRG + chown -hR root:wheel $ROOTFS + + echo "+++ ELWIX clean CVS tags ..." + CleanCVS $ETC + CleanCVS $ETC/etc } build_image() @@ -297,8 +404,7 @@ if SnitVer ${WORLD}/elwix.ver; then build_rootdir install_rootfs - build_image - install_image + build_image && install_image else echo "Skipped ELWIX RootFS build ..." fi