|
version 1.1.2.2, 2013/07/31 14:57:01
|
version 1.6, 2021/07/16 18:35:50
|
|
Line 1
|
Line 1
|
| #!/bin/sh |
#!/bin/sh |
| # |
# |
| # ELWIX Build script for ELWIX raw base firmware | # ELWIX Build script for ELWIX raw BaseFS firmware |
| # |
# |
| # (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org> |
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org> |
| # by Michael Pounov <misho@elwix.org> |
# by Michael Pounov <misho@elwix.org> |
|
Line 25 fi
|
Line 25 fi
|
| |
|
| if [ "${USER}" != "root" ]; then |
if [ "${USER}" != "root" ]; then |
| echo |
echo |
| echo "ELWIX project is not configured - base must build under root !?!" | echo "ELWIX project is not configured - BaseFS must build under root !?!" |
| echo |
echo |
| exit 1 |
exit 1 |
| fi |
fi |
| |
|
| clean_basefs() |
clean_basefs() |
| { |
{ |
| echo "+++ Clean ELWIX base firmware ..." | echo "+++ Clean ELWIX BaseFS firmware ... $BASEFS" |
| chflags -Rf noschg $BASEFS | chflags -Rf noschg,nosunlink $BASEFS $BASE_FS |
| rm -rf $BASEFS | rm -rf $BASEFS $BASE_FS ${REL}/${BASE_OS} ${REL}/kernel.gz |
| } |
} |
| |
|
| build_basefs() |
build_basefs() |
| { |
{ |
| echo "+++ Build ELWIX base directory ..." | echo "+++ Build ELWIX BaseFS directory ... $BASEFS" |
| mkdir -p $BASEFS |
mkdir -p $BASEFS |
| |
|
| cd $BASEFS |
cd $BASEFS |
|
Line 49 build_basefs()
|
Line 49 build_basefs()
|
| install -d boot/defaults; |
install -d boot/defaults; |
| install -d boot/firmware; |
install -d boot/firmware; |
| install -d boot/kernel; |
install -d boot/kernel; |
| |
install -d boot/lua; |
| install -d boot/modules; |
install -d boot/modules; |
| install -d boot/zfs; |
install -d boot/zfs; |
| install -d dev; |
install -d dev; |
|
Line 62 build_basefs()
|
Line 63 build_basefs()
|
| install -d elwix/home; |
install -d elwix/home; |
| install -d -m 0750 elwix/root; |
install -d -m 0750 elwix/root; |
| install -d -m 0750 elwix/root/.ssh; |
install -d -m 0750 elwix/root/.ssh; |
| install -d elwix/system; |
|
| install -d elwix/tftpboot; |
install -d elwix/tftpboot; |
| install -d elwix/pkg; |
install -d elwix/pkg; |
| install -d elwix/pkg/bin; | install -d elwix/local; |
| install -d elwix/pkg/lib; | install -d elwix/local/lib; |
| install -d elwix/pkg/libexec; | install -d etc; |
| install -d elwix/pkg/libdata; | |
| install -d elwix/pkg/sbin; | |
| ln -fs /elwix/etc etc; | |
| ln -fs /elwix/exports exports; |
ln -fs /elwix/exports exports; |
| ln -fs /elwix/home home; |
ln -fs /elwix/home home; |
| ln -fs /elwix/root root; |
ln -fs /elwix/root root; |
| ln -fs /elwix/system system; |
|
| ln -fs /elwix/tftpboot tftpboot; |
ln -fs /elwix/tftpboot tftpboot; |
| install -d mnt; |
install -d mnt; |
| install -d -m 0555 proc; |
install -d -m 0555 proc; |
|
Line 86 build_basefs()
|
Line 82 build_basefs()
|
| ln -fs /usr/lib lib; |
ln -fs /usr/lib lib; |
| install -d usr/lib/engines; |
install -d usr/lib/engines; |
| install -d usr/lib/geom; |
install -d usr/lib/geom; |
| install -d usr/lib32; | case ${TARGET} in |
| | amd64) |
| | install -d usr/lib32; |
| | ;; |
| | *) |
| | ;; |
| | esac |
| install -d usr/libdata; |
install -d usr/libdata; |
| install -d usr/libexec; |
install -d usr/libexec; |
| ln -fs /usr/libexec libexec; |
ln -fs /usr/libexec libexec; |
| install -d usr/local; | ln -fs /elwix/local usr/local; |
| install -d usr/local/bin; | ln -fs /elwix/pkg usr/pkg; |
| install -d usr/local/lib; | |
| install -d usr/local/libexec; | |
| install -d usr/local/libdata; | |
| install -d usr/local/sbin; | |
| install -d usr/sbin; |
install -d usr/sbin; |
| |
ln -fs /usr/pkg/sbin/mini_sendmail usr/sbin/sendmail |
| install -d usr/share; |
install -d usr/share; |
| install -d usr/share/misc; |
install -d usr/share/misc; |
| install -d usr/share/skel; |
install -d usr/share/skel; |
|
Line 120 install_basefs()
|
Line 119 install_basefs()
|
| SKEL="${SHARE}/skel" |
SKEL="${SHARE}/skel" |
| MISC="${SHARE}/misc" |
MISC="${SHARE}/misc" |
| |
|
| echo "+++ Install ELWIX base software ..." | echo "+++ Install ELWIX BaseFS software ... $BASEFS" |
| if [ -r ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap ]; then | if [ -r files/etc/termcap ]; then |
| install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/termcap $MISC; | install -v -m 644 files/etc/termcap $MISC; |
| install -v -m 644 ${BSDSRC}/release/picobsd/mfs_tree/etc/services $MISC; | install -v -m 644 files/etc/services $MISC; |
| else |
else |
| install -v -m 644 ${BSDSRC}/etc/termcap.small $MISC/termcap; |
install -v -m 644 ${BSDSRC}/etc/termcap.small $MISC/termcap; |
| install -v -m 644 ${BSDSRC}/etc/services $MISC; |
install -v -m 644 ${BSDSRC}/etc/services $MISC; |
|
Line 137 install_basefs()
|
Line 136 install_basefs()
|
| |
|
| find ${WORLD}/libexec -type f -name ld-elf.so\* -exec install {} $LIBEXEC \; |
find ${WORLD}/libexec -type f -name ld-elf.so\* -exec install {} $LIBEXEC \; |
| |
|
| find ${WORLD}/lib -type f -name \*.so.\* -exec install {} $LIBS \; | find ${WORLD}/lib -type f -name \*.so.\* ! -name \*.debug -exec install {} $LIBS \; |
| find ${WORLD}/lib -type f -name libalias_\*.so -exec install {} $LIBS \; |
find ${WORLD}/lib -type f -name libalias_\*.so -exec install {} $LIBS \; |
| find ${WORLD}/lib/geom -type f -name \*.so -exec install {} $LIBS/geom \; |
find ${WORLD}/lib/geom -type f -name \*.so -exec install {} $LIBS/geom \; |
| find ${WORLD}/usr/lib -type f -name \*.so.\* -exec install {} $LIBS \; | find ${WORLD}/usr/lib -type f -name \*.so.\* ! -name \*.debug -exec install {} $LIBS \; |
| find ${WORLD}/usr/lib/engines -type f -name \*.so -exec install {} $LIBS/engines \; |
find ${WORLD}/usr/lib/engines -type f -name \*.so -exec install {} $LIBS/engines \; |
| |
|
| InstallList ${ELWIX_BASEFS} ${WORLD} ${BASEFS} |
InstallList ${ELWIX_BASEFS} ${WORLD} ${BASEFS} |
|
Line 153 install_basefs()
|
Line 152 install_basefs()
|
| InstallDir ${WORLD}/usr/local/libdata $LIBDATA |
InstallDir ${WORLD}/usr/local/libdata $LIBDATA |
| |
|
| chown -R root:wheel $SBIN $BIN $USBIN $UBIN $LIBDATA $LIBEXEC $LIBS |
chown -R root:wheel $SBIN $BIN $USBIN $UBIN $LIBDATA $LIBEXEC $LIBS |
| |
|
| |
echo "+++ Completed ELWIX BaseFS software ... $BASEFS" |
| } |
} |
| |
|
| build_image2() | prepare_fs() |
| { |
{ |
| echo "+++ Build ELWIX Firmware secondary image ..." | echo "+++ Prepare ELWIX fs ... $BASEFS --> $1" |
| | mkdir -p $1 |
| |
|
| cd ${BASEFS_USR2} | if [ -d ${BASEFS} ]; then |
| pax -w -z -v -f${REL}/${BASEFS_IMG2} . | cd ${BASEFS} |
| cd - | pax -rw -pe -X . $1 |
| | cd - |
| | fi |
| | } |
| |
|
| # Stop using uzip fs | create_etc_fstab() |
| # makefs -ominfree=0,bsize=8192,fsize=1024,optimization=space -s${BASEFS_SIZE2} \ | { |
| # ${REL}/${BASEFS_IMG2} ${BASEFS_USR2} | cat >$1/etc/fstab <<_EOF |
| | # Automatic generated fstab for ELWIX $2 at ${BUILD_DATE} |
| | # |
| | /dev/ufs/elwix / ufs ro 0 1 |
| | tmpfs /tmp tmpfs rw 0 0 |
| | md2 /var mfs rw,-s16m,-S,-n 0 0 |
| | _EOF |
| | } |
| |
|
| # MDDEV=$(mdconfig -a -t vnode -f ${REL}/${BASEFS_IMG2}); | update_etc_cfexec() |
| # tunefs -L elwixFirmware2 /dev/$MDDEV; | { |
| # mdconfig -d -u $MDDEV; | echo "mount = \"/\"" >> $1/etc/cfexec.conf |
| |
| # mkuzip -s 8192 -o ${REL}/${BASEFS_IMG2}.uzip ${REL}/${BASEFS_IMG2}; | |
| # mv ${REL}/${BASEFS_IMG2}.uzip ${REL}/${BASEFS_IMG2} | |
| } |
} |
| |
|
| install_romfs2() | install_fs() |
| { |
{ |
| LIBS="${BASEFS_USR2}/lib" | echo "+++ Install ELWIX BaseFS $1 in bundle OS install file ..." |
| LIBEXEC="${BASEFS_USR2}/libexec" | OSZ="" |
| LIBDATA="${BASEFS_USR2}/libdata" | |
| BIN="${BASEFS_USR2}/bin" | |
| SBIN="${BASEFS_USR2}/sbin" | |
| |
|
| echo "+++ Install ELWIX base secondary software ..." | install -v ${KERNEL} $1/boot/kernel; |
| | cd $1/boot/kernel; |
| | gzip -9 kernel; |
| | cp kernel.gz ${REL} |
| | cd -; |
| | echo "+++ Released native ELWIX kernel ... ${REL}/kernel.gz" |
| |
|
| install -d ${PKGDIR}/bin | case "$2" in |
| # InstallDir ${PKGDIR}/bin $BIN | *) |
| install -d ${PKGDIR}/sbin | OSZ=${REL}/${BASE_OS} |
| InstallDir ${PKGDIR}/sbin $SBIN | ;; |
| | esac |
| |
|
| StripFiles \*.so\* ${PKG}/lib | cd $1 |
| InstallFiles \*.so\* ${PKG}/lib $LIBS | tar -czvf $OSZ . |
| StripFiles \* ${PKG}/libexec | echo "+++ Completed ELWIX BaseFS $1 --> $OSZ" |
| InstallFiles \* ${PKG}/libexec $LIBEXEC | |
| StripFiles \* ${PKG}/libdata | |
| InstallFiles \* ${PKG}/libdata $LIBDATA | |
| StripFiles \* ${PKG}/bin | |
| InstallFiles \* ${PKG}/bin $BIN | |
| StripFiles \* ${PKG}/sbin | |
| InstallFiles \* ${PKG}/sbin $SBIN | |
| |
| chown -R root:wheel $SBIN $BIN $LIBDATA $LIBEXEC $LIBS | |
| } |
} |
| |
|
| ### main() |
### main() |
|
Line 210 build_basefs
|
Line 213 build_basefs
|
| |
|
| install_basefs |
install_basefs |
| |
|
| #install_romfs2 | # build fs |
| #build_image2 | prepare_fs ${BASE_FS} |
| | MakeFS_home ${BASE_FS}/elwix |
| | MakeFS_var ${BASE_FS}/elwix ${BASE_ETC} |
| | MakeFS_etc ${BASE_FS} ${BASE_ETC} base |
| | create_etc_fstab ${BASE_FS} base |
| | update_etc_cfexec ${BASE_FS} |
| | MakeFS_boot ${BASE_FS} |
| | install_fs ${BASE_FS} |
| |
|
| echo "+++ Complete build ELWIX base" | echo "+++ Complete build ELWIX BaseFS system" |
| | echo "ELWIX BaseFS finish version ${VERSION}, Good luck!" |