X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/8dce0adda6e1967de616287e224b914eb1bcef8e..HEAD:/IMG/cpio/sbin/init diff --git a/IMG/cpio/sbin/init b/IMG/cpio/sbin/init index 8eea0ad..15686c4 100644 --- a/IMG/cpio/sbin/init +++ b/IMG/cpio/sbin/init @@ -19,7 +19,7 @@ #################################################################### # # -# Step 1 : extract busybox & set busybox enviroment # +# Step 1 : extract busybox & set busybox environment # # # #################################################################### @@ -36,17 +36,44 @@ export SED=$BUSYBOX_PATH/sed export SLEEP=$BUSYBOX_PATH/sleep export HEAD=$BUSYBOX_PATH/head -if [ -e $BUSYBOX_PATH/64h ]; then - $BUSYBOX_PATH/xzminidec32 < $BUSYBOX_PATH/busybox32.xz > $BUSYBOX_PATH/busybox - $BUSYBOX_PATH/vtchmod32 $BUSYBOX_PATH/busybox +if [ -e $BUSYBOX_PATH/busyboxaa64.xz ]; then + export VTOY_ARCH=aarch64 +elif [ -e $BUSYBOX_PATH/busyboxm64e.xz ]; then + export VTOY_ARCH=mips64el else + if [ -e $BUSYBOX_PATH/32h ]; then + export VTOY_ARCH=x86_64 + else + export VTOY_ARCH=i386 + fi +fi + +if [ "$VTOY_ARCH" = "i386" ]; then + if $BUSYBOX_PATH/vtchmod32 -6; then + export VTOY_ARCH=x86_64 + fi +fi + +echo $VTOY_ARCH > $VTOY_PATH/ventoy_arch + + +if [ "$VTOY_ARCH" = "aarch64" ]; then + $BUSYBOX_PATH/xzminidecaa64 < $BUSYBOX_PATH/busyboxaa64.xz > $BUSYBOX_PATH/busybox + $BUSYBOX_PATH/vtchmodaa64 $BUSYBOX_PATH/busybox +elif [ "$VTOY_ARCH" = "mips64el" ]; then + $BUSYBOX_PATH/xzminidecm64e < $BUSYBOX_PATH/busyboxm64e.xz > $BUSYBOX_PATH/busybox + $BUSYBOX_PATH/vtchmodm64e $BUSYBOX_PATH/busybox +elif [ "$VTOY_ARCH" = "x86_64" ]; then $BUSYBOX_PATH/xzminidec64 < $BUSYBOX_PATH/busybox64.xz > $BUSYBOX_PATH/busybox if [ -s $BUSYBOX_PATH/busybox ]; then $BUSYBOX_PATH/vtchmod64 $BUSYBOX_PATH/busybox else - $BUSYBOX_PATH/xzminidec64_uclibc < $BUSYBOX_PATH/busybox64.xz > $BUSYBOX_PATH/busybox - $BUSYBOX_PATH/vtchmod64_uclibc $BUSYBOX_PATH/busybox + $BUSYBOX_PATH/xzminidec64_musl < $BUSYBOX_PATH/busybox64.xz > $BUSYBOX_PATH/busybox + $BUSYBOX_PATH/vtchmod64_musl $BUSYBOX_PATH/busybox fi +else + $BUSYBOX_PATH/xzminidec32 < $BUSYBOX_PATH/busybox32.xz > $BUSYBOX_PATH/busybox + $BUSYBOX_PATH/vtchmod32 $BUSYBOX_PATH/busybox fi if [ -e $BUSYBOX_PATH/busybox ]; then @@ -60,6 +87,7 @@ export PATH=$BUSYBOX_PATH/:$VTOY_PATH/tool export VTOY_BREAK_LEVEL=$(hexdump -n 1 -s 449 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) export VTOY_DEBUG_LEVEL=$(hexdump -n 1 -s 450 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) +export VTOY_LINUX_REMOUNT=$(hexdump -n 1 -s 454 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) #Fixme: busybox shell output redirect seems to have some bug in rhel5 if uname -a | grep -q el5; then @@ -84,16 +112,56 @@ else xz -d -c loop.cpio.xz | cpio -idm 2>>$VTLOG fi -if [ -e $BUSYBOX_PATH/64h ]; then - echo "Use busybox32 toolkit ..." >>$VTLOG + +if [ "$VTOY_ARCH" = "x86_64" ]; then + echo "Use x86_64 busybox toolkit ..." >>$VTLOG + $BUSYBOX_PATH/xzcat $BUSYBOX_PATH/xzcat64_musl.xz > $BUSYBOX_PATH/xzcat_musl + $BUSYBOX_PATH/chmod +x $BUSYBOX_PATH/xzcat_musl + ln -s $BUSYBOX_PATH/xzminidec64 $BUSYBOX_PATH/xzminidec + ln -s $VTOY_PATH/tool/dmsetup64 $VTOY_PATH/tool/dmsetup + ln -s $VTOY_PATH/tool/lunzip64 $VTOY_PATH/tool/lunzip + + rm -f $VTOY_PATH/tool/lz4cat $VTOY_PATH/tool/zstdcat + ln -s $VTOY_PATH/tool/lz4cat64 $VTOY_PATH/tool/lz4cat + ln -s $VTOY_PATH/tool/zstdcat64 $VTOY_PATH/tool/zstdcat +elif [ "$VTOY_ARCH" = "i386" ]; then + echo "Use i386 busybox toolkit ..." >>$VTLOG + $BUSYBOX_PATH/xzcat $BUSYBOX_PATH/xzcat32_musl.xz > $BUSYBOX_PATH/xzcat_musl + $BUSYBOX_PATH/chmod +x $BUSYBOX_PATH/xzcat_musl ln -s $BUSYBOX_PATH/xzminidec32 $BUSYBOX_PATH/xzminidec ln -s $VTOY_PATH/tool/dmsetup32 $VTOY_PATH/tool/dmsetup ln -s $VTOY_PATH/tool/lunzip32 $VTOY_PATH/tool/lunzip + + if uname -a | egrep -q 'x86_64|amd64'; then + echo "zstdcat use 64bit ..." >>$VTLOG + rm -f $VTOY_PATH/tool/zstdcat + ln -s $VTOY_PATH/tool/zstdcat64 $VTOY_PATH/tool/zstdcat + fi +elif [ "$VTOY_ARCH" = "mips64el" ]; then + echo "Use MIPS64 busybox toolkit ..." >>$VTLOG + ln -s $BUSYBOX_PATH/xzminidecm64e $BUSYBOX_PATH/xzminidec + ln -s $VTOY_PATH/tool/dmsetupm64e $VTOY_PATH/tool/dmsetup + + # TBD + #ln -s $VTOY_PATH/tool/lunzipm64e $VTOY_PATH/tool/lunzip + + rm -f $VTOY_PATH/tool/lz4cat $VTOY_PATH/tool/zstdcat + ln -s $VTOY_PATH/tool/lz4catm64e $VTOY_PATH/tool/lz4cat + + # TBD + #ln -s $VTOY_PATH/tool/zstdcataa64 $VTOY_PATH/tool/zstdcat + +elif [ "$VTOY_ARCH" = "aarch64" ]; then + echo "Use ARM64 busybox toolkit ..." >>$VTLOG + ln -s $BUSYBOX_PATH/xzminidecaa64 $BUSYBOX_PATH/xzminidec + ln -s $VTOY_PATH/tool/dmsetupaa64 $VTOY_PATH/tool/dmsetup + ln -s $VTOY_PATH/tool/lunzipaa64 $VTOY_PATH/tool/lunzip + + rm -f $VTOY_PATH/tool/lz4cat $VTOY_PATH/tool/zstdcat + ln -s $VTOY_PATH/tool/lz4cataa64 $VTOY_PATH/tool/lz4cat + ln -s $VTOY_PATH/tool/zstdcataa64 $VTOY_PATH/tool/zstdcat else - echo "Use busybox64 toolkit ..." >>$VTLOG - ln -s $BUSYBOX_PATH/xzminidec64 $BUSYBOX_PATH/xzminidec - ln -s $VTOY_PATH/tool/dmsetup64 $VTOY_PATH/tool/dmsetup - ln -s $VTOY_PATH/tool/lunzip64 $VTOY_PATH/tool/lunzip + echo "Unknown busybox toolkit ..." >>$VTLOG fi rm -f *.xz