wok-current rev 23946
syslinux/taziso: add plop support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Sep 20 14:15:26 2020 +0000 (2020-09-20) |
parents | a17c0b257e47 |
children | 4d52a83c3268 |
files | busybox/stuff/command_not_found syslinux/stuff/iso2exe/taziso |
line diff
1.1 --- a/busybox/stuff/command_not_found Fri Sep 18 18:47:32 2020 +0000 1.2 +++ b/busybox/stuff/command_not_found Sun Sep 20 14:15:26 2020 +0000 1.3 @@ -6,7 +6,7 @@ 1.4 grep -E "(: ${PATH//:/|: })" | gzip -9 >$LIST && chmod 666 $LIST 1.5 1.6 lookup() { 1.7 - zcat $LIST | grep "/$2$1$" | if read pkg file; then 1.8 + zcat $LIST 2> /dev/null | grep "/$2$1$" | if read pkg file; then 1.9 cat <<EOT 1.10 Command '$1' not found, but can be installed as root with: 1.11
2.1 --- a/syslinux/stuff/iso2exe/taziso Fri Sep 18 18:47:32 2020 +0000 2.2 +++ b/syslinux/stuff/iso2exe/taziso Sun Sep 20 14:15:26 2020 +0000 2.3 @@ -9,6 +9,11 @@ 2.4 dd $@ 2> /dev/null 2.5 } 2.6 2.7 +ddn() 2.8 +{ 2.9 + ddq conv=notrunc $@ 2.10 +} 2.11 + 2.12 get() 2.13 { 2.14 hexdump -v -s $1 -n ${4:-${3:-2}} -e "\"\" 1/${3:-2} \" %u\n\"" "$2" 2.15 @@ -43,10 +48,16 @@ 2.16 ddq if=$file >> $1 2.17 } 2.18 2.19 +maybe64() 2.20 +{ 2.21 + echo -n $1 2.22 + grep -q ' lm ' /proc/cpuinfo && [ -s ${1}64 ] && echo 64 2.23 +} 2.24 + 2.25 uncpio() 2.26 { 2.27 i=$1 2.28 - [ $0 = /init.exe ] && sed 's|$| |' /proc/cpuinfo | grep ' lm ' && [ -s ${i}64 ] && i=${i}64 2.29 + [ $0 = /init.exe ] && i=$(maybe64 $i) 2.30 [ -s "$i" ] || return 2.31 echo -en "\n Extracting $(basename $i) ..." 2.32 case $(get 0 $i) in 2.33 @@ -261,6 +272,7 @@ 2.34 fi 2.35 echo -en "\nInstall boot files..." 2.36 for i in $media/boot/bzImage* $media/boot/*pxe* \ 2.37 + $media/boot/plop.exe \ 2.38 $media/boot/isolinux/he* $media/boot/isolinux/opt* \ 2.39 $media/README $media/boot/memtest* ; do 2.40 [ -s $i ] && cp $i $mnt/slitaz/boot 2.41 @@ -479,6 +491,7 @@ 2.42 EOT 2.43 done <<EOT 2.44 memtest MemTest 2.45 +plop USB boot 2.46 pxe Web boot 2.47 EOT 2.48 unix2dos $mnt/slitaz/boot/menu.lst 2.49 @@ -608,7 +621,7 @@ 2.50 { 2.51 cd /tmp 2.52 for i in $(ls_r $media/boot/rootfs*gz); do 2.53 - grep -q ' lm ' /proc/cpuinfo && [ -s ${i}64 ] && i=${i}64 2.54 + i=$(maybe64 $i) 2.55 cat $i 2.56 n=$((4 - ($(stat -c %s $i) % 4))) 2.57 [ $n -eq 4 ] || dd if=/dev/zero bs=1 count=$n 2.58 @@ -620,8 +633,7 @@ 2.59 getcustomconf kexec >/dev/null 2.60 [ -s cmdline ] && cmdline="$cmdline $(cat cmdline)" && rm cmdline 2.61 [ -s initrd ] && cat initrd >> initrd$$ && rm initrd 2.62 - kernel=$media/boot/bzImage 2.63 - grep -q ' lm ' /proc/cpuinfo && [ -s ${kernel}64 ] && kernel=${kernel}64 2.64 + kernel=$(maybe64 $media/boot/bzImage) 2.65 . /etc/locale.conf 2.66 kexec -l $kernel --initrd initrd$$ --command-line "$cmdline" && 2.67 rm -f initrd$$ 2.68 @@ -701,7 +713,7 @@ 2.69 \nExample:\nC:\\> linux.exe root=/dev/hda2 ro panic=60\n" 12 70 2.70 [ $? -eq 0 ] || return 2.71 fi 2.72 - cp $media/boot/bzImage linux.exe 2.73 + cp $(maybe64 $media/boot/bzImage) linux.exe 2.74 du -h $PWD/linux.exe 2.75 } 2.76 2.77 @@ -796,6 +808,31 @@ 2.78 gotcdfile '?pxe*' && mkfloppy $file 2.79 } 2.80 2.81 +plop() 2.82 +{ 2.83 + gotcdfile 'plop.exe' 2.84 + if [ -z "$1" ]; then 2.85 + $DIALOG --clear --title " Create $(basename $file .exe).exe ? " \ 2.86 + --yes-label "Install" --yesno \ 2.87 +"\nBoot your operating system from a USB disk without BIOS support.\n" 0 0 2.88 + [ $? -eq 0 ] || return 2.89 + fi 2.90 + cp $file $(basename $file .exe).exe 2.91 + du -h $PWD/$(basename $file .exe).exe 2.92 +} 2.93 + 2.94 +fdplop() 2.95 +{ 2.96 + if [ -z "$1" ]; then 2.97 + $DIALOG --clear --title " Create a Plop boot floppy " \ 2.98 + --yes-label "Create floppy" --yesno \ 2.99 +"\nBoot your operating system from a USB disk without BIOS support.\n\n 2.100 +Please insert a blank disk in floppy drive.\n" 0 0 2.101 + [ $? -eq 0 ] || return 2.102 + fi 2.103 + gotcdfile 'plop.exe' && mkfloppy $file 2.104 +} 2.105 + 2.106 menuitem() 2.107 { 2.108 [ "$3" ] && shift 2.109 @@ -943,7 +980,7 @@ 2.110 2.111 hasflavor() 2.112 { 2.113 - [ -x /usr/bin/tazlito ] && [ -s $media/boot/bzImage ] && menuitem "$@" 2.114 + [ -x /usr/bin/tazlito ] && [ -s $(maybe64 $media/boot/bzImage) ] && menuitem "$@" 2.115 } 2.116 2.117 gotisomd5() 2.118 @@ -1017,13 +1054,13 @@ 2.119 rm -f /tmp/wait 2.120 DEV="$(grep -l 1 /sys/block/*/removable | \ 2.121 sed 's|/sys/block/\(.*\)/removable|\1|')" 2.122 - grep -qs 1 /sys/block/$DEV/ro && return 2.123 [ "$DEV" ] || return 2.124 cat > /tmp/dialog$$ <<EOT 2.125 $DIALOG --clear --title " Select your USB key " \ 2.126 --menu "\nPlease select the USB key according to its known size.\n\n" \ 2.127 0 0 0 \ 2.128 $(for i in $DEV ; do 2.129 + grep -qs 1 /sys/block/$i/ro || 2.130 echo -n "/dev/$i \"$(($(cat /sys/block/$i/size)/2048))MB $(cat /sys/block/$i/device/model 2> /dev/null)\" " 2.131 done) \ 2.132 2.133 @@ -1060,18 +1097,16 @@ 2.134 $(tazusbmsg)Please plug your USB stick in now.\n" 16 70 2.135 [ $? -eq 0 ] || return 2.136 usbdev || return 2.137 + fi 2.138 2.139 - # perform dd in progress bar 2.140 - max=$(($(stat -c %s "$ISO")/2048)) 2.141 - i=0; ddq if="$ISO" bs=1024k | ( 2.142 - while ddq bs=1024k count=1 ; do 2.143 - i=$(($i + 1)) 2.144 - [ $i -gt $max ] && break 2.145 - echo $((($i*100)/$max)) | dialog --gauge \ 2.146 - " The ISO image transfer can be long. Please wait..." \ 2.147 - 6 70 0 > /dev/tty 2>&1 2.148 - done ) > $device 2.149 - fi 2.150 + # perform dd in progress bar 2.151 + max=$(($(stat -c %s "$ISO")/1024/1024)) 2.152 + i=0; while [ $i -le $max ]; do 2.153 + ddq if="$ISO" bs=1024k count=1 skip=$i seek=$i of=$device 2.154 + echo $((($i*100)/$max)) 2.155 + i=$(($i+1)) 2.156 + done | dialog --gauge " The ISO image transfer can be long. Please wait..." \ 2.157 + 6 70 0 > /dev/tty 2>&1 2.158 2.159 # partition + fat32 format for the remaining space 2.160 for p in 0 16; do 2.161 @@ -1097,6 +1132,13 @@ 2.162 fi 2.163 } 2.164 done 2.165 + 2.166 + # update boot/exe crc16 2.167 + i=$(($(get 2 $1) - 1 + ($(get 4 $1) - 1)*512)) 2.168 + i=$(($(od -v -N $i -t u2 -w2 -An $device | \ 2.169 + awk '{ i+= $0 } END { print (i % 65536) }') \ 2.170 + + $(get $(($i+1)) $device 1))) 2.171 + words2bin $(( (-$i -1) % 65536 )) | ddq bs=1 seek=18 of=$device 2.172 } 2.173 2.174 usbkey() 2.175 @@ -1133,22 +1175,6 @@ 2.176 tazusb gen-iso2usb "$ISO" $device 2.177 } 2.178 2.179 -dokexec() 2.180 -{ 2.181 - kexec -l $file || return 2.182 - quit "kexec -e" 2.183 -} 2.184 - 2.185 -runmemtest() 2.186 -{ 2.187 - gotcdfile 'memtest*' && dokexec 2.188 -} 2.189 - 2.190 -runpxe() 2.191 -{ 2.192 - gotcdfile '?pxe*' && dokexec 2.193 -} 2.194 - 2.195 flavdata() 2.196 { 2.197 [ $(get 1024 "$ISO") -eq 35615 ] && n=2 || n=$((1+$(get 417 "$ISO" 1))) 2.198 @@ -1159,8 +1185,7 @@ 2.199 2.200 hasflavinfo() 2.201 { 2.202 - [ "$(flavdata | ddq bs=1 count=7)" = \ 2.203 - "0707010" ] && menuitem "$@" 2.204 + [ "$(flavdata | ddq bs=1 count=7)" = "0707010" ] && menuitem "$@" 2.205 } 2.206 2.207 showfavinfo() 2.208 @@ -1278,19 +1303,16 @@ 2.209 [ $(get 514 $KERNEL 4) -eq 1400005704 ] || return 2.210 n=$(($(get 497 $KERNEL 1)+1)) 2.211 ddq bs=512 count=$n if=$KERNEL of=/tmp/fd$$ 2.212 - uudecode <<EOT | ddq of=/tmp/fd$$ conv=notrunc 2.213 + uudecode <<EOT | ddn of=/tmp/fd$$ 2.214 bootloader 2.215 EOT 2.216 pos=$(($n*512)) 2.217 if [ -n "$CMDLINE" ]; then 2.218 echo -n "$CMDLINE" | ddq bs=512 count=1 conv=sync >> /tmp/fd$$ 2.219 - bytes2bin $n | ddq conv=notrunc \ 2.220 - bs=1 seek=497 count=1 of=/tmp/fd$$ 2.221 - words2bin $pos | ddq conv=notrunc \ 2.222 - bs=1 seek=34 count=2 of=/tmp/fd$$ 2.223 + bytes2bin $n | ddn bs=1 seek=497 of=/tmp/fd$$ 2.224 + words2bin $pos | ddn bs=1 seek=34 of=/tmp/fd$$ 2.225 [ $(get 518 $KERNEL 4) -ge 514 ] && 2.226 - words2bin 32768 9 | ddq conv=notrunc \ 2.227 - bs=1 seek=552 count=4 of=/tmp/fd$$ 2.228 + words2bin 32768 9 | ddn bs=1 seek=552 of=/tmp/fd$$ 2.229 fi 2.230 syssize=$(echo $(get 500 /tmp/fd$$ 4)) 2.231 ddq bs=512 skip=$n if=$KERNEL | cat - /dev/zero | \ 2.232 @@ -1318,28 +1340,28 @@ 2.233 len="$len $l"; l=0 2.234 done 2.235 rdadrs=${RDADRS:-$(((($syssize*16)+0x1F0000) & -4096))} 2.236 - words2bin $(($rdadrs & 0xFFFF)) $(($rdadrs >> 16)) | ddq \ 2.237 - conv=notrunc bs=1 seek=536 count=4 of=/tmp/fd$$ 2.238 + words2bin $(($rdadrs & 0xFFFF)) $(($rdadrs >> 16)) | ddn \ 2.239 + bs=1 seek=536 of=/tmp/fd$$ 2.240 fi 2.241 n=$(echo $len | wc -w) 2.242 if [ $((494 - $(get 494 /tmp/fd$$))) -ge $(($n * 4)) ]; then 2.243 i=$(($(get 494 /tmp/fd$$))) 2.244 - bytes2bin $(($i + ($n*4) - 256)) | ddq bs=1 conv=notrunc \ 2.245 - seek=496 count=1 of=/tmp/fd$$ 2.246 + bytes2bin $(($i + ($n*4) - 256)) | ddn bs=1 \ 2.247 + seek=496 of=/tmp/fd$$ 2.248 else 2.249 i=$(($pos + 0x1FC - ($n*4))) 2.250 - bytes2bin $(($i % 256)) $((i / 256)) 252 | ddq bs=1 \ 2.251 - conv=notrunc seek=494 count=3 of=/tmp/fd$$ 2.252 + bytes2bin $(($i % 256)) $((i / 256)) 252 | ddn bs=1 \ 2.253 + seek=494 of=/tmp/fd$$ 2.254 s=$(($i - 2*$(echo "$SIZES" | wc -w))) 2.255 p=$(($s - $(ifmemcode | wc -c))) 2.256 - ifmemcode | ddq bs=1 conv=notrunc seek=$p of=/tmp/fd$$ 2.257 - words2bin $SIZES | ddq bs=1 conv=notrunc seek=$s of=/tmp/fd$$ 2.258 + ifmemcode | ddn bs=1 seek=$p of=/tmp/fd$$ 2.259 + words2bin $SIZES | ddn bs=1 seek=$s of=/tmp/fd$$ 2.260 bytes2bin 154 $(($p%256)) $(($p/256)) 0 144 | \ 2.261 - ddq bs=1 conv=notrunc seek=60 of=/tmp/fd$$ 2.262 + ddn bs=1 seek=60 of=/tmp/fd$$ 2.263 fi 2.264 for r in $len ; do 2.265 - words2bin $(($r & 0xFFFF)) $(($r >> 16)) | ddq conv=notrunc \ 2.266 - bs=1 seek=$i count=4 of=/tmp/fd$$ 2.267 + words2bin $(($r & 0xFFFF)) $(($r >> 16)) | ddn \ 2.268 + bs=1 seek=$i of=/tmp/fd$$ 2.269 i=$(($i + 4)) 2.270 done 2.271 split -b 1440k /tmp/fd$$ fd$$ 2.272 @@ -1461,7 +1483,7 @@ 2.273 $(cdfile 'md5sum*' "md5" "Check the ISO files") \ 2.274 $(cdfile 'sha*sum*' "sha" "Check the ISO files") \ 2.275 $(xfile isoinfo "infoiso" "ISO image info") \ 2.276 -$(cdfilex boot/bzImage "bootiso" "Boot the ISO image") \ 2.277 +$(cdfilex 'bzImage*' "bootiso" "Boot the ISO image") \ 2.278 $(burnable "burniso" "Burn the ISO image") \ 2.279 $(blankable "blankcd" "Blank the CD/DVD") \ 2.280 $(gotposixovl "install" "Hard disk installation (UMSDOS way)") \ 2.281 @@ -1474,13 +1496,13 @@ 2.282 $(hasflavor "flavor" "Get flavor file") \ 2.283 $(cdfile isolinux.cfg "floppyset" "Boot floppy set") \ 2.284 $(cdfile linld.com "tazboot" "Get tazboot.exe Linux loader") \ 2.285 -$(cdexe boot/bzImage "bzimage" "Get linux DOS/EXE file") \ 2.286 +$(cdexe 'bzImage*' "bzimage" "Get linux DOS/EXE file") \ 2.287 $(cdexe 'memtest*' "memtest" "Get Memtest86 DOS/EXE file") \ 2.288 $(cdfilef 'memtest*' "fdmemtest" "Create a Memtest86 boot floppy") \ 2.289 -$(cdfilex 'memtest*' "runmemtest" "Start Memtest86") \ 2.290 $(cdexe '?pxe*' "pxe" "Get SliTaz Web boot DOS/EXE utility") \ 2.291 $(cdfilef '?pxe*' "fdpxe" "Create a SliTaz Web boot floppy") \ 2.292 -$(cdfilex '?pxe*' "runpxe" "Start the SliTaz Web boot utility") \ 2.293 +$(cdexe 'plop.exe' "plop" "Get USB boot DOS/EXE utility") \ 2.294 +$(cdfilef 'plop.exe' "fdplop" "Create a USB boot floppy") \ 2.295 $(initxfile reboot "restart" "Restart the computer") \ 2.296 $(initxfile poweroff "stop" "Power off") \ 2.297 $(initx "bootlog" "Linux boot messages") \