--- elwix/build_rootfs.sh 2021/03/11 13:59:50 1.11 +++ elwix/build_rootfs.sh 2021/03/25 18:17:05 1.11.2.2 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_rootfs.sh,v 1.11 2021/03/11 13:59:50 misho Exp $ +# $Id: build_rootfs.sh,v 1.11.2.2 2021/03/25 18:17:05 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -65,25 +65,32 @@ prepare_elwix() # !!! Dont edit by hand !!! # -LIBS += -L${WORLD}/lib -L${WORLD}/usr/lib +LDFLAGS += -L${WORLD}/lib -L${WORLD}/usr/lib +CFLAGS += -I${BSDSRC}/lib/libifconfig -I${BSDOBJ}${BSDSRC}/${TARGET}.${TARGET_ARCH}/lib/libifconfig _EOF cat >$ROOTFS_CONF <<_EOF srcdirs ${BSDSRC}/tools/tools ${BSDSRC}/tools/tools/ath -srcdirs ${BSDSRC}/release/picobsd/tinyware +srcdirs ${BSDSRC}/contrib/ncurses/progs ${BSDSRC}/lib/libifconfig srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec ${BSDSRC}/cddl/sbin ${BSDSRC}/sbin/ggate srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr.sbin ${BSDSRC}/secure/libexec -buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} +#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 MK_TESTS=no UPDATE_DEPENDFILE=no _RECURSING_CRUNCH=1 - +buildopts -DMK_CASPER=no WITHOUT_CASPER=yes MK_TESTS=no UPDATE_DEPENDFILE=yes _RECURSING_CRUNCH=1 _EOF cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF + cat >>$ROOTFS_CONF <<_EOF +special ping6 srcdir ${BSDSRC}/sbin/ping +special tput srcdir ${BSDSRC}/contrib/ncurses/progs +special tset srcdir ${BSDSRC}/contrib/ncurses/progs + +special ifconfig lib ${BSDOBJ}${BSDSRC}/${TARGET}.${TARGET_ARCH}/lib/libifconfig/libifconfig.a +_EOF echo "+++ Prepared RootFS config ... $CFGDIR/$ROOTFS_CONF" install -d ${BSDOBJ}/elwix - env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix ${CEXEC} crunchgen -f \ + env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix ${CEXEC} crunchgen -f \ -h $ROOTFS_MKDIR/$MKH -m $MKF \ -c elwix.c -e elwix $ROOTFS_CONF if [ $? -ne 0 ]; then @@ -113,12 +120,6 @@ build_elwix() cd $ROOTFS_MKDIR ${CBUILD} -f $MKF \ TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ - ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} clean - ${CBUILD} -f $MKF \ - TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ - ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} objs - ${CBUILD} -f $MKF \ - TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} if [ $? -ne 0 ]; then exit 1 @@ -429,13 +430,16 @@ install_image() 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 "` + echo "exec> /usr/bin/llvm-objdump -h $KERNEL_ROOTFS 2> /dev/null | grep \" oldmfs \"" +## 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 "` + sec_info=`/usr/bin/llvm-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} }" sec_size=`echo ${sec_info} | awk '{printf("%d", "0x" $3)}' 2> /dev/null` - sec_start=`echo ${sec_info} | awk '{printf("%d", "0x" $6)}' 2> /dev/null` +## sec_start=`echo ${sec_info} | awk '{printf("%d", "0x" $6)}' 2> /dev/null` + sec_start=`echo ${sec_info} | awk '{printf("%d", "0x" $4)}' 2> /dev/null` echo "'-> Start offset from $sec_start and rootfs size $sec_size byte" [ ${sec_size} -lt ${mfs_size} ] && echo "MFS image too large" && exit 1 @@ -443,14 +447,14 @@ install_image() dd if=$REL/$ROOTFS_IMG ibs=8192 of=$NEWKERN obs=${sec_start} oseek=1 conv=notrunc \ 2>/dev/null && echo "'-> Completed MFS image embedded into kernel" -# START=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | head -1` -# STOP=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | tail -1` -# STOP=$(($STOP + 1)) -# echo "'-> Start offset from $START to $STOP byte" +### START=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | head -1` +### STOP=`strings -td $KERNEL_ROOTFS | grep "MFS Filesystem" | cut -d ' ' -f 1 | tail -1` +### STOP=$(($STOP + 1)) +### echo "'-> Start offset from $START to $STOP byte" -# head -c $START $KERNEL_ROOTFS >$NEWKERN -# cat $REL/$ROOTFS_IMG >>$NEWKERN -# tail -c +$STOP $KERNEL_ROOTFS >>$NEWKERN +### head -c $START $KERNEL_ROOTFS >$NEWKERN +### cat $REL/$ROOTFS_IMG >>$NEWKERN +### tail -c +$STOP $KERNEL_ROOTFS >>$NEWKERN echo "'-> Compress kernel" cd $REL