--- elwix/build_fs.sh 2013/07/31 14:57:01 1.7.2.7 +++ elwix/build_fs.sh 2013/08/02 14:49:03 1.7.2.8 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: build_fs.sh,v 1.7.2.7 2013/07/31 14:57:01 misho Exp $ +# $Id: build_fs.sh,v 1.7.2.8 2013/08/02 14:49:03 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -30,25 +30,22 @@ if [ "${USER}" != "root" ]; then exit 1 fi -clean_rel() +clean_fsdir() { - echo "+++ Clean ELWIX OS release ..." - rm -rf $1 $2 + echo "+++ Clean ELWIX FS ..." + rm -rf ${FS} ${FS_LITE} ${FS_LITE128} - mkdir -p $1 - - if [ -d ${BASEFS} ]; then - cd ${BASEFS} - pax -rw -pe -X . $1 - cd - - fi + echo "+++ Clean ELWIX FS release ..." + rm -rf ${REL}/${OS} ${REL}/${OS_LITE} ${REL}/${OS_LITE128} } -build_vardir() +build_fsdir() { - echo "+++ Build ELWIX altroot directory ..." + echo "+++ Build ELWIX FS directory ..." + mkdir -p $1 cd $1 + # altroot install -d altroot; # altroot/var @@ -75,16 +72,33 @@ build_vardir() install -d -g 1 altroot/var/spool/lpd; install -d -g 1 altroot/var/spool/output; install -d -g 1 altroot/var/spool/output/lpd; +# boot + install -d boot; +# cf + install -d cf; +# etc + install -d etc; + install -d -o 883 -g 883 etc/mqtt; +# exports + install -d exports; +# home + install -d home; +# root + install -d -m 0700 root; +# pkg + install -d pkg; + install -d pkg/db; + install -d pkg/lib; +# tftpboot + install -d tftpboot; - ln -fs /tmp altroot/var/tmp; - chown -hR root:wheel . cd - } mkboot() { - echo "+++ Build ELWIX OS boot directory ..." + echo "+++ Build ELWIX FS boot directory ..." InstallDir ${WORLD}/boot $1/boot install -m 644 ${CFGDIR}/boot/boot.config $1; @@ -106,7 +120,9 @@ mkboot() mkvar() { - echo "+++ Build ELWIX OS var directory ..." + echo "+++ Build ELWIX FS var directory ..." + ln -s /tmp $1/altroot/var/tmp + touch $1/altroot/var/run/utmp touch $1/altroot/var/account/acct @@ -148,15 +164,15 @@ create_etc_fstab() cat >$1 <<_EOF # Automatic generated fstab for ELWIX$2 at ${BUILD_DATE} # -/dev/ufs/elwix / ufs ro 0 1 -md2 /tmp mfs rw,-s8m,-oasync,-S 0 0 -md3 /var mfs rw,-s16m,-S 0 0 +/dev/ufs/elwix /elwix ufs ro 0 1 +md3 /tmp mfs rw,-s8m,-oasync,-S 0 0 +md4 /var mfs rw,-s16m,-S 0 0 _EOF } mketc() { - echo "+++ Build ELWIX OS etc directory ..." + echo "+++ Build ELWIX FS etc directory ..." InstallDir ${FS_ETC} $1/etc chown -R root:wheel $1/etc; @@ -176,7 +192,6 @@ mketc() chgrp 80 $1/etc/config.xml; chmod 0660 $1/etc/config.xml; - mkdir -p $1/etc/mqtt; chgrp -R 883 $1/etc/mqtt; chown -R 883 $1/etc/mqtt; @@ -202,7 +217,7 @@ mketc() mkbackup() { - echo "+++ Build ELWIX OS backup factory default directory ..." + echo "+++ Build ELWIX FS backup factory default directory ..." mkdir -p $1/altroot/backup cd $1 @@ -215,7 +230,7 @@ mkbackup() mkhome() { - echo "+++ Build ELWIX OS root home directory ..." + echo "+++ Build ELWIX FS root home directory ..." install -d $1/root/.ssh [ -r ${CFGDIR}/root.skel/ssh/authorized_keys2 ] && \ install -v ${CFGDIR}/root.skel/ssh/authorized_keys2 $1/root/.ssh; @@ -227,18 +242,50 @@ mkhome() install -v ${CFGDIR}/root.skel/vimrc $1/root/.vimrc; } -install_rel() +install_fsdir() { - echo "+++ Install ELWIX OS $1 in bundle OS install file ..." + echo "+++ Install ELWIX FS $1 in bundle OS install file ..." OSZ="" - install -v ${KERNEL} $1/boot/kernel; - cd $1/boot/kernel; - gzip -9 kernel; - cd -; + install -v ${REL}/${ROOTFS_KERN} $1/boot/kernel case "$2" in + _[Ll][Ii][Tt][Ee]_128) + install -d $1/usr + cd $1/usr + pax -r -z -pe -f ${REL}/${ROMFS_IMG} + cd - + + install -d $1/usr/local + cd $1/usr/local + pax -r -z -pe -f ${REL}/${ROMFS_IMG2} + cd - + + OSZ=${REL}/${OS_LITE128} + ;; + _[Ll][Ii][Tt][Ee]) + install -d $1/usr + cd $1/usr + pax -r -z -pe -f ${REL}/${ROMFS_IMG} + cd - + + OSZ=${REL}/${OS_LITE} + ;; *) + install -v ${REL}/${ROMFS_IMG} \ + $1/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH} + ln $1/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH} \ + $1/altroot/${ROMFS_IMG} + ln -s /elwix/altroot/elwix-firmware-${VERSION}_${TARGET_ARCH} \ + $1/${ROMFS_IMG} + + install -v ${REL}/${ROMFS_IMG2} \ + $1/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH} + ln $1/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH} \ + $1/altroot/${ROMFS_IMG2} + ln -s /elwix/altroot/elwix-firmware2-${VERSION}_${TARGET_ARCH} \ + $1/${ROMFS_IMG2} + OSZ=${REL}/${OS} ;; esac @@ -248,14 +295,44 @@ install_rel() } ### main() -clean_rel ${FS} ${REL}/${OS} -build_vardir ${FS}/elwix -mkhome ${FS}/elwix -mkvar ${FS}/elwix -mketc ${FS}/elwix -mkbackup ${FS}/elwix +if [ ! -r ${REL}/${ROOTFS_KERN} -o ! -r ${REL}/${ROMFS_IMG} ]; then + echo + echo "Error:: not found kernel or firmware elwix files ..." + echo + echo " For fix this issue, please re-run build_rootfs.sh or build_romfs.sh" + echo + exit 1 +fi + +clean_fsdir + +build_fsdir ${FS} +build_fsdir ${FS_LITE} +build_fsdir ${FS_LITE128} + mkboot ${FS} -install_rel ${FS} +mkboot ${FS_LITE} +mkboot ${FS_LITE128} -echo "+++ Complete build ELWIX OS" +mkhome ${FS} +mkhome ${FS_LITE} +mkhome ${FS_LITE128} + +mkvar ${FS} +mkvar ${FS_LITE} +mkvar ${FS_LITE128} + +mketc ${FS} +mketc ${FS_LITE} "_lite" +mketc ${FS_LITE128} "_lite_128" + +mkbackup ${FS} +mkbackup ${FS_LITE} +mkbackup ${FS_LITE128} + +install_fsdir ${FS} +install_fsdir ${FS_LITE} "_lite" +install_fsdir ${FS_LITE128} "_lite_128" + +echo "+++ Complete build ELWIX FS" echo "ELWIX finish version ${VERSION}, Good luck!"