--- elwix/build_rootfs.sh 2017/02/13 16:52:46 1.10 +++ elwix/build_rootfs.sh 2021/03/11 13:59:50 1.11 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_rootfs.sh,v 1.10 2017/02/13 16:52:46 misho Exp $ +# $Id: build_rootfs.sh,v 1.11 2021/03/11 13:59:50 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -76,7 +76,8 @@ srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr. buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} buildopts -DNO_PAM -DNO_KERBEROS WITHOUT_PAM_SUPPORT=yes WITHOUT_KERBEROS_SUPPORT=yes WITHOUT_KERBEROS=yes -buildopts -DMK_CASPER=no WITHOUT_CASPER=yes +buildopts -DMK_CASPER=no WITHOUT_CASPER=yes MK_TESTS=no UPDATE_DEPENDFILE=no _RECURSING_CRUNCH=1 + _EOF cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF echo "+++ Prepared RootFS config ... $CFGDIR/$ROOTFS_CONF" @@ -88,6 +89,21 @@ _EOF if [ $? -ne 0 ]; then exit 1 fi +# cat >>$MKF << _EOF +# +#.for _tool in ${CRUNCH_BUILDTOOLS} +#build-tools-${_tool}: +# ${_+_}cd ${.CURDIR}/../../${_tool}; \ +# if [ "${MK_AUTO_OBJ}" = "no" ]; then \ +# ${CRUNCHENV} MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} obj; \ +# fi; \ +# ${CRUNCHENV} MAKEOBJDIRPREFIX=${CRUNCHOBJS} ${MAKE} build-tools +# +#build-tools: build-tools-${_tool} +# /usr/bin ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} +# +#.endfor +#_EOF cd - } @@ -118,10 +134,11 @@ build_rootdir() install -d bin; install -d dev; install -d elwix; - install -d elwix/etc; + install -d etc; install -d libexec; install -d mnt; install -d -m 0555 proc; + install -d rescue; install -d sbin; install -d -m 1777 tmp; install -d usr; @@ -134,7 +151,7 @@ build_rootdir() ln -fs /usr/lib lib; - ln -fs /elwix/etc etc; + ln -fs /elwix/boot boot; ln -fs /elwix/exports exports; ln -fs /elwix/home home; ln -fs /elwix/root root; @@ -149,7 +166,8 @@ install_rootfs() SBIN="${ROOTFS}/sbin" UBIN="${ROOTFS}/usr/bin" LIBEXEC="${ROOTFS}/usr/libexec" - ETC="${ROOTFS}/elwix/etc" + ETC="${ROOTFS}/etc" + RESCUE="${ROOTFS}/rescue" PRG="/sbin/elwix" LNPRG="${SBIN}/elwix" @@ -170,8 +188,10 @@ install_rootfs() ln -s $PRG $BIN/chio ln -s $PRG $BIN/chmod ln -s $PRG $BIN/cp + ln -s $PRG $RESCUE/cp ln -s $PRG $BIN/csh ln -s $PRG $BIN/-csh + ln -s $PRG $RESCUE/csh ln -s $PRG $BIN/tcsh ln -s $PRG $BIN/-tcsh ln -s $PRG $BIN/date @@ -193,11 +213,13 @@ install_rootfs() ln -s $PRG $BIN/pgrep ln -s $PRG $BIN/sh ln -s $PRG $BIN/-sh + ln -s $PRG $RESCUE/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 $RESCUE/rm ln -s $PRG $BIN/unlink # ln -s $PRG $BIN/rmdir ln -s $PRG $BIN/sleep @@ -224,6 +246,7 @@ install_rootfs() ln -s $PRG $BIN/cap_mkdb ln -s $PRG $BIN/sed ln -s $PRG $BIN/vi + ln -s $PRG $RESCUE/vi ln -s $PRG $BIN/du ln -s $PRG $BIN/getopt ln -s $PRG $BIN/logger @@ -267,6 +290,7 @@ install_rootfs() ln -s $PRG $SBIN/dumpon ln -s $PRG $SBIN/fdisk ln -s $PRG $SBIN/fsck + ln -s $PRG $RESCUE/fsck ln -s $PRG $SBIN/fsck_ffs ln -s $PRG $SBIN/fsck_ufs ln -s $PRG $SBIN/fsck_4.2bsd @@ -280,6 +304,7 @@ install_rootfs() # ln -s $PRG $SBIN/hastctl # ln -s $PRG $SBIN/hastd ln -s $PRG $SBIN/ifconfig + ln -s $PRG $RESCUE/ifconfig ln -s $PRG $SBIN/init ln -s $PRG $SBIN/ipfw ln -s $PRG $SBIN/iscontrol @@ -293,11 +318,13 @@ install_rootfs() ln -s $PRG $SBIN/sha256 ln -s $PRG $SBIN/rmd160 ln -s $PRG $SBIN/mdconfig + ln -s $PRG $RESCUE/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 $RESCUE/mount # ln -s $PRG $SBIN/mount_cd9660 ln -s $PRG $SBIN/mount_msdosfs ln -s $PRG $SBIN/mount_nfs @@ -306,6 +333,7 @@ install_rootfs() # ln -s $PRG $SBIN/mount_udf ln -s $PRG $SBIN/mount_unionfs ln -s $PRG $SBIN/newfs + ln -s $PRG $RESCUE/newfs ln -s $PRG $SBIN/newfs_msdos # ln -s $PRG $SBIN/nfsiod # ln -s $PRG $SBIN/nos-tun @@ -314,7 +342,9 @@ install_rootfs() ln -s $PRG $SBIN/pflogd ln -s $PRG $SBIN/quotacheck ln -s $PRG $SBIN/reboot + ln -s $PRG $RESCUE/reboot ln -s $PRG $SBIN/halt + ln -s $PRG $RESCUE/halt ln -s $PRG $SBIN/fastboot ln -s $PRG $SBIN/fasthalt # ln -s $PRG $SBIN/recoverdisk @@ -382,23 +412,24 @@ install_rootfs() echo "+++ ELWIX clean CVS tags ..." CleanCVS $ETC - CleanCVS $ETC/etc echo } build_image() { echo "+++ Build ELWIX RootFS image ... $ROOTFS --> $REL/$ROOTFS_IMG" - makefs -s ${ROOTFS_SIZE} -o minfree=0 $REL/$ROOTFS_IMG $ROOTFS + makefs -s ${ROOTFS_SIZE} -o minfree=0 $REL/$ROOTFS_IMG $ROOTFS || exit 1 echo "+++ Completed ELWIX RootFS image ... $ROOTFS --> $REL/$ROOTFS_IMG" } install_image() { echo "+++ Install ELWIX RootFS Image into kernel ... $REL/$ROOTFS_IMG" + echo "exec> stat -f '%z' $REL/$ROOTFS_IMG" mfs_size=`stat -f '%z' $REL/$ROOTFS_IMG 2>/dev/null` [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1 + echo "exec> ${CROSSTOOLDIR}/usr/bin/objdump -h $KERNEL_ROOTFS 2> /dev/null | grep \" oldmfs \"" sec_info=`${CROSSTOOLDIR}/usr/bin/objdump -h $KERNEL_ROOTFS 2> /dev/null | grep " oldmfs "` [ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1 echo "'-> Object dump { ${sec_info} }"