Diff for /elwix/build_rootfs.sh between versions 1.3.2.1 and 1.10

version 1.3.2.1, 2013/01/25 15:46:24 version 1.10, 2017/02/13 16:52:46
Line 30  if [ "${USER}" != "root" ]; then Line 30  if [ "${USER}" != "root" ]; then
         exit 1          exit 1
 fi  fi
   
NEWKERN="${REL}/kernel"KRNNAME="kernel_rootfs"
 NEWKERN="${REL}/${KRNNAME}"
 MKF="Makefile.elwix"
 MKH="Makefile.inc"
   
   # Set TARGET_CPUTYPE only for world compiling. Don't use this in kernel build!
   X_TARGET_CPUTYPE="TARGET_CPUTYPE=${TARGET_CPUTYPE}"
   
 clean_elwix()  clean_elwix()
 {  {
        echo "+++ Clean elwix binary from ELWIX World ..."        echo "+++ Clean elwix binary from ELWIX World ... $BSDOBJ/elwix"
         rm -rf $BSDOBJ/elwix          rm -rf $BSDOBJ/elwix
   
        echo "+++ Clean ELWIX RootFS firmware ..."        echo "+++ Clean ELWIX RootFS firmware ... $ROOTFS_MKDIR"
        rm -rf $MKDIR        rm -rf $ROOTFS_MKDIR
        mkdir $MKDIR        mkdir $ROOTFS_MKDIR
   
        echo "+++ Clean RootFS directory ..."        echo "+++ Clean RootFS directory ... $ROOTFS"
         chflags -R noschg $ROOTFS          chflags -R noschg $ROOTFS
         rm -rf $ROOTFS          rm -rf $ROOTFS
         mkdir $ROOTFS          mkdir $ROOTFS
Line 52  clean_elwix() Line 58  clean_elwix()
   
 prepare_elwix()  prepare_elwix()
 {  {
        echo "+++ Prepair ELWIX RootFS firmware ..."        echo "+++ Prepair ELWIX RootFS firmware ... $ROOTFS_MKDIR"
        cd $MKDIR        cd $ROOTFS_MKDIR
         cat >$MKH <<_EOF          cat >$MKH <<_EOF
 # Auto-generated Makefile include for crungegen  # Auto-generated Makefile include for crungegen
 # !!! Dont edit by hand !!!  # !!! Dont edit by hand !!!
Line 68  srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec Line 74  srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec
 srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa  srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa
 srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr.sbin ${BSDSRC}/secure/libexec  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 -DNO_PAM -DNO_KERBEROS WITHOUT_PAM_SUPPORT=yes WITHOUT_KERBEROS_SUPPORT=yes WITHOUT_KERBEROS=yes  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}/elwixbuildopts -DMK_CASPER=no WITHOUT_CASPER=yes
 _EOF  _EOF
         cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF          cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF
           echo "+++ Prepared RootFS config ... $CFGDIR/$ROOTFS_CONF"
   
         . ${CENV}  
         install -d ${BSDOBJ}/elwix          install -d ${BSDOBJ}/elwix
        crunchgen -f -o -p ${BSDOBJ}/elwix -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF        env MAKEOBJDIRPREFIX=${BSDOBJ}/elwix ${CEXEC} crunchgen -f \
                 -h $ROOTFS_MKDIR/$MKH -m $MKF \
                 -c elwix.c -e elwix $ROOTFS_CONF
         if [ $? -ne 0 ]; then
                 exit 1
         fi
         cd -          cd -
 }  }
   
 build_elwix()  build_elwix()
 {  {
        echo "+++ Build ELWIX RootFS firmware ..."        echo "+++ Build ELWIX RootFS firmware ... $ROOTFS_MKDIR"
        cd $MKDIR        cd $ROOTFS_MKDIR
        . ${CENV}        ${CBUILD} -f $MKF \
        MAKEOBJDIRPREFIX=${BSDOBJ}/elwix                TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
        make -f $MKF clean                ${X_TARGET_CPUTYPE} __MAKE_CONF=${MAKECONF} clean
        make -f $MKF        ${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          if [ $? -ne 0 ]; then
                 exit 1                  exit 1
         fi          fi
Line 95  build_elwix() Line 112  build_elwix()
   
 build_rootdir()  build_rootdir()
 {  {
        echo "+++ Build RootFS directory ..."        echo "+++ Build RootFS directory ... $ROOTFS"
         cd $ROOTFS          cd $ROOTFS
   
         install -d bin;          install -d bin;
Line 137  install_rootfs() Line 154  install_rootfs()
         PRG="/sbin/elwix"          PRG="/sbin/elwix"
         LNPRG="${SBIN}/elwix"          LNPRG="${SBIN}/elwix"
   
        echo "+++ Install ELWIX into RootFS directory ..."        echo "+++ Install ELWIX into RootFS directory ... $ROOTFS"
        install $MKDIR/elwix $SBIN        install $ROOTFS_MKDIR/elwix $SBIN
   
         InstallList ${ELWIX_ROOTFS} ${WORLD} ${ROOTFS}          InstallList ${ELWIX_ROOTFS} ${WORLD} ${ROOTFS}
   
Line 153  install_rootfs() Line 170  install_rootfs()
         ln -s $PRG $BIN/chio          ln -s $PRG $BIN/chio
         ln -s $PRG $BIN/chmod          ln -s $PRG $BIN/chmod
         ln -s $PRG $BIN/cp          ln -s $PRG $BIN/cp
           ln -s $PRG $BIN/csh
           ln -s $PRG $BIN/-csh
           ln -s $PRG $BIN/tcsh
           ln -s $PRG $BIN/-tcsh
         ln -s $PRG $BIN/date          ln -s $PRG $BIN/date
         ln -s $PRG $BIN/dd          ln -s $PRG $BIN/dd
         ln -s $PRG $BIN/df          ln -s $PRG $BIN/df
Line 178  install_rootfs() Line 199  install_rootfs()
         ln -s $PRG $BIN/realpath          ln -s $PRG $BIN/realpath
         ln -s $PRG $BIN/rm          ln -s $PRG $BIN/rm
         ln -s $PRG $BIN/unlink          ln -s $PRG $BIN/unlink
        ln -s $PRG $BIN/rmdir#        ln -s $PRG $BIN/rmdir
         ln -s $PRG $BIN/sleep          ln -s $PRG $BIN/sleep
         ln -s $PRG $BIN/stty          ln -s $PRG $BIN/stty
         ln -s $PRG $BIN/sync          ln -s $PRG $BIN/sync
        ln -s $PRG $BIN/uuidgen#        ln -s $PRG $BIN/uuidgen
   
         ln -s $PRG $BIN/true          ln -s $PRG $BIN/true
         ln -s $PRG $BIN/false          ln -s $PRG $BIN/false
Line 235  install_rootfs() Line 256  install_rootfs()
   
         ln -s $PRG $SBIN/bsdlabel          ln -s $PRG $SBIN/bsdlabel
         ln -s $PRG $SBIN/disklabel          ln -s $PRG $SBIN/disklabel
        ln -s $PRG $SBIN/camcontrol#        ln -s $PRG $SBIN/camcontrol
        ln -s $PRG $SBIN/comcontrol#        ln -s $PRG $SBIN/comcontrol
        ln -s $PRG $SBIN/conscontrol#        ln -s $PRG $SBIN/conscontrol
         ln -s $PRG $SBIN/devfs          ln -s $PRG $SBIN/devfs
         ln -s $PRG $SBIN/dhclient          ln -s $PRG $SBIN/dhclient
         ln -s $PRG $SBIN/dmesg          ln -s $PRG $SBIN/dmesg
Line 251  install_rootfs() Line 272  install_rootfs()
         ln -s $PRG $SBIN/fsck_4.2bsd          ln -s $PRG $SBIN/fsck_4.2bsd
         ln -s $PRG $SBIN/fsck_msdosfs          ln -s $PRG $SBIN/fsck_msdosfs
         ln -s $PRG $SBIN/etherswitchcfg          ln -s $PRG $SBIN/etherswitchcfg
        ln -s $PRG $SBIN/-geom#        ln -s $PRG $SBIN/-geom
        ln -s $PRG $SBIN/glabel#        ln -s $PRG $SBIN/glabel
        ln -s $PRG $SBIN/gpart#        ln -s $PRG $SBIN/gpart
        ln -s $PRG $SBIN/graid#        ln -s $PRG $SBIN/graid
        ln -s $PRG $SBIN/growfs#        ln -s $PRG $SBIN/growfs
        ln -s $PRG $SBIN/hastctl#        ln -s $PRG $SBIN/hastctl
        ln -s $PRG $SBIN/hastd#        ln -s $PRG $SBIN/hastd
         ln -s $PRG $SBIN/ifconfig          ln -s $PRG $SBIN/ifconfig
         ln -s $PRG $SBIN/init          ln -s $PRG $SBIN/init
         ln -s $PRG $SBIN/ipfw          ln -s $PRG $SBIN/ipfw
Line 275  install_rootfs() Line 296  install_rootfs()
         ln -s $PRG $SBIN/mdmfs          ln -s $PRG $SBIN/mdmfs
         ln -s $PRG $SBIN/mount_mfs          ln -s $PRG $SBIN/mount_mfs
         ln -s $PRG $SBIN/mknod          ln -s $PRG $SBIN/mknod
        ln -s $PRG $SBIN/mksnap_ffs#        ln -s $PRG $SBIN/mksnap_ffs
         ln -s $PRG $SBIN/mount          ln -s $PRG $SBIN/mount
        ln -s $PRG $SBIN/mount_cd9660#        ln -s $PRG $SBIN/mount_cd9660
         ln -s $PRG $SBIN/mount_msdosfs          ln -s $PRG $SBIN/mount_msdosfs
         ln -s $PRG $SBIN/mount_nfs          ln -s $PRG $SBIN/mount_nfs
 #       ln -s $PRG $SBIN/mount_ntfs  #       ln -s $PRG $SBIN/mount_ntfs
         ln -s $PRG $SBIN/mount_nullfs          ln -s $PRG $SBIN/mount_nullfs
        ln -s $PRG $SBIN/mount_udf#        ln -s $PRG $SBIN/mount_udf
         ln -s $PRG $SBIN/mount_unionfs          ln -s $PRG $SBIN/mount_unionfs
         ln -s $PRG $SBIN/newfs          ln -s $PRG $SBIN/newfs
         ln -s $PRG $SBIN/newfs_msdos          ln -s $PRG $SBIN/newfs_msdos
        ln -s $PRG $SBIN/nfsiod#        ln -s $PRG $SBIN/nfsiod
        ln -s $PRG $SBIN/nos-tun#        ln -s $PRG $SBIN/nos-tun
        ln -s $PRG $SBIN/nvmecontrol#        ln -s $PRG $SBIN/nvmecontrol
         ln -s $PRG $SBIN/pfctl          ln -s $PRG $SBIN/pfctl
         ln -s $PRG $SBIN/pflogd          ln -s $PRG $SBIN/pflogd
         ln -s $PRG $SBIN/quotacheck          ln -s $PRG $SBIN/quotacheck
Line 296  install_rootfs() Line 317  install_rootfs()
         ln -s $PRG $SBIN/halt          ln -s $PRG $SBIN/halt
         ln -s $PRG $SBIN/fastboot          ln -s $PRG $SBIN/fastboot
         ln -s $PRG $SBIN/fasthalt          ln -s $PRG $SBIN/fasthalt
        ln -s $PRG $SBIN/recoverdisk#        ln -s $PRG $SBIN/recoverdisk
         ln -s $PRG $SBIN/restore          ln -s $PRG $SBIN/restore
         ln -s $PRG $SBIN/rrestore          ln -s $PRG $SBIN/rrestore
         ln -s $PRG $SBIN/route          ln -s $PRG $SBIN/route
         ln -s $PRG $SBIN/rtsol          ln -s $PRG $SBIN/rtsol
         ln -s $PRG $SBIN/shutdown          ln -s $PRG $SBIN/shutdown
        ln -s $PRG $SBIN/savecore#        ln -s $PRG $SBIN/savecore
        ln -s $PRG $SBIN/swapon#        ln -s $PRG $SBIN/swapon
        ln -s $PRG $SBIN/swapoff#        ln -s $PRG $SBIN/swapoff
        ln -s $PRG $SBIN/swapctl#        ln -s $PRG $SBIN/swapctl
         ln -s $PRG $SBIN/sysctl          ln -s $PRG $SBIN/sysctl
         ln -s $PRG $SBIN/tunefs          ln -s $PRG $SBIN/tunefs
         ln -s $PRG $SBIN/umount          ln -s $PRG $SBIN/umount
Line 329  install_rootfs() Line 350  install_rootfs()
         ln -s $PRG $SBIN/wake          ln -s $PRG $SBIN/wake
         ln -s $PRG $SBIN/watchdog          ln -s $PRG $SBIN/watchdog
         ln -s $PRG $SBIN/watchdogd          ln -s $PRG $SBIN/watchdogd
        ln -s $PRG $SBIN/inetd#        ln -s $PRG $SBIN/inetd
         ln -s $PRG $SBIN/wlandebug          ln -s $PRG $SBIN/wlandebug
         ln -s $PRG $SBIN/chroot          ln -s $PRG $SBIN/chroot
         ln -s $PRG $SBIN/i2c          ln -s $PRG $SBIN/i2c
         ln -s $PRG $SBIN/iostat          ln -s $PRG $SBIN/iostat
        ln -s $PRG $SBIN/jail#        ln -s $PRG $SBIN/jail
        ln -s $PRG $SBIN/jexec#        ln -s $PRG $SBIN/jexec
        ln -s $PRG $SBIN/jls#        ln -s $PRG $SBIN/jls
         ln -s $PRG $SBIN/ndp          ln -s $PRG $SBIN/ndp
         ln -s $PRG $SBIN/newsyslog          ln -s $PRG $SBIN/newsyslog
         ln -s $PRG $SBIN/nologin          ln -s $PRG $SBIN/nologin
Line 353  install_rootfs() Line 374  install_rootfs()
         ln -s $PRG $UBIN/passwd          ln -s $PRG $UBIN/passwd
   
         ln -s $PRG $LIBEXEC/getty          ln -s $PRG $LIBEXEC/getty
        ln -s $PRG $LIBEXEC/tftpd#        ln -s $PRG $LIBEXEC/tftpd
   
         strip -s $LNPRG          strip -s $LNPRG
   
Line 362  install_rootfs() Line 383  install_rootfs()
         echo "+++ ELWIX clean CVS tags ..."          echo "+++ ELWIX clean CVS tags ..."
         CleanCVS $ETC          CleanCVS $ETC
         CleanCVS $ETC/etc          CleanCVS $ETC/etc
           echo
 }  }
   
 build_image()  build_image()
 {  {
        echo "+++ Build ELWIX RootFS 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
           echo "+++ Completed ELWIX RootFS image ... $ROOTFS --> $REL/$ROOTFS_IMG"
 }  }
   
 install_image()  install_image()
 {  {
        echo "+++ Install ELWIX RootFS Image into kernel ..."        echo "+++ Install ELWIX RootFS Image into kernel ... $REL/$ROOTFS_IMG"
        START=`strings -td $KERNEL | grep "MFS Filesystem" | cut -d ' ' -f 1 | head -1`        mfs_size=`stat -f '%z' $REL/$ROOTFS_IMG 2>/dev/null`
        STOP=`strings -td $KERNEL | grep "MFS Filesystem" | cut -d ' ' -f 1 | tail -1`        [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1
        STOP=$(($STOP + 1)) 
   
        head -c $START $KERNEL >$NEWKERN        sec_info=`${CROSSTOOLDIR}/usr/bin/objdump -h $KERNEL_ROOTFS 2> /dev/null | grep " oldmfs "`
        cat $REL/$ROOTFS_IMG >>$NEWKERN        [ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1
        tail -c +$STOP $KERNEL >>$NEWKERN        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`
           echo "'-> Start offset from $sec_start and rootfs size $sec_size byte"
           [ ${sec_size} -lt ${mfs_size} ] && echo "MFS image too large" && exit 1
   
           cp $KERNEL_ROOTFS $NEWKERN
           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"
   
   #       head -c $START $KERNEL_ROOTFS >$NEWKERN
   #       cat $REL/$ROOTFS_IMG >>$NEWKERN
   #       tail -c +$STOP $KERNEL_ROOTFS >>$NEWKERN
   
           echo "'-> Compress kernel"
         cd $REL          cd $REL
        gzip -9 kernel        gzip -9 $KRNNAME
         cd -          cd -
   
           echo "+++ Completed ELWIX RootFS kernel ... $NEWKERN.gz"
 }  }
   
 ### main()  ### main()
 if SnitVer ${WORLD}/elwix.ver; then  if SnitVer ${WORLD}/elwix.ver; then
         clean_elwix          clean_elwix
        prepare_elwix        prepare_elwix || exit 1
        build_elwix        build_elwix || exit 1
   
        build_rootdir        build_rootdir || exit 1
        install_rootfs        install_rootfs || exit 1
   
        build_image        build_image || exit 1
        install_image        install_image || exit 1
 else  else
        echo "Skipped ELWIX RootFS build ..."        echo "$? Skipped ELWIX RootFS build ..."
 fi  fi
   
 echo "+++ Complete build ELWIX RootFS"  echo "+++ Complete build ELWIX RootFS"

Removed from v.1.3.2.1  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>