wok diff syslinux/stuff/iso2exe/init @ rev 17562

syslinux/iso2exe: use iso size to compute md5sum
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Feb 07 15:39:46 2015 +0100 (2015-02-07)
parents 26654c1a7ca7
children 20fc9712d9c6
line diff
     1.1 --- a/syslinux/stuff/iso2exe/init	Mon Jan 05 12:38:18 2015 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/init	Sat Feb 07 15:39:46 2015 +0100
     1.3 @@ -70,8 +70,9 @@
     1.4  			done >> /tmp/data
     1.5  			while ! grep -q "^$n	" /tmp/data ; do
     1.6  				clear
     1.7 -				[ $(wc -l < /tmp/data) -gt 20 ] && 
     1.8 -				less /tmp/data || cat /tmp/data
     1.9 +				[ $(wc -l < /tmp/data) -gt 22 ] && 
    1.10 +				sed 's/..3.;4.m/===/g;$aPress q to continue' \
    1.11 +				/tmp/data | less || cat /tmp/data
    1.12  				echo -en "\n   <- Enter the selection number\r"
    1.13  				read n
    1.14  			done 2> /dev/null
    1.15 @@ -637,22 +638,24 @@
    1.16  
    1.17  gotisomd5()
    1.18  {
    1.19 +	[ "$(which md5sum 2> /dev/null)" ] &&
    1.20  	[ $(get 18 /dev/loop0) -ne 0 ] && echo -en "\"$1\"	\"$2\""
    1.21  }
    1.22  
    1.23  isomd5()
    1.24  {
    1.25  	dotwait "Checking iso image"
    1.26 -	[ "$(ddq if=/dev/loop0 bs=32k skip=1 | md5sum)" == \
    1.27 +	[ "$(ddq if=/dev/loop0 bs=2k skip=16 \
    1.28 +	     count=$(echo $(get 32848 /dev/loop0)) | md5sum)" == \
    1.29  	  "$(ddq if=/dev/loop0 bs=16 count=1 skip=2047 | od -N 16 -t x1 -An | \
    1.30  	     sed 's/ //g')  -" ] && echo "OK" || echo "ERROR"
    1.31 -	echo -n "Checking iso hybrid boot"
    1.32 +	echo -en "\rChecking iso hybrid boot"
    1.33  	n=$(($(get 2 /dev/loop0)-1+($(get 4 /dev/loop0)-1)*512))
    1.34  	s=$(get 0 /dev/loop0 2 $n | awk '{ i+= $0 } END { print i }')
    1.35  	[ $(((1+$s+$(get $(($n+1)) /dev/loop0 1)) % 65536)) -eq 0 ] &&
    1.36  	echo "OK" || echo "ERROR"
    1.37  	rm -f /tmp/wait
    1.38 -	echo "Press RETURN to continue."
    1.39 +	echo -e "\rPress RETURN to continue."
    1.40  	read n
    1.41  }
    1.42  
    1.43 @@ -746,11 +749,11 @@
    1.44  			$ll $lh $(($n & 0xFFFF)) $(($n >> 16)) | \
    1.45  			ddq bs=1 seek=446 of=$device
    1.46  		if [ "$(which mkdosfs 2> /dev/null)" ]; then
    1.47 -			losetup -o $((512*$ofs)) /dev/loop0 $device
    1.48 -			mkdosfs -n "SLITAZ BOOT" /dev/loop0
    1.49 +			losetup -o $((512*$ofs)) /dev/loop2 $device
    1.50 +			mkdosfs -n "SLITAZ BOOT" /dev/loop2
    1.51  			words2bin $(($ofs & 0xFFFF)) $(($ofs >> 16)) | \
    1.52 -				ddq bs=1 seek=28 of=/dev/loop0
    1.53 -			losetup -d /dev/loop0
    1.54 +				ddq bs=1 seek=28 of=/dev/loop2
    1.55 +			losetup -d /dev/loop2
    1.56  		fi
    1.57   	fi ; }
    1.58  }
    1.59 @@ -831,7 +834,8 @@
    1.60  {
    1.61  	n=0
    1.62  	dotwait "Extract filesystem..."
    1.63 -	for i in $(ls_r /media/cdrom/boot/rootfs*); do
    1.64 +	for i in $(ls_r /media/cdrom/boot/rootfs*gz); do
    1.65 +		grep -q ' lm ' /proc/cpuinfo && [ -s ${i}64 ] && i=${i}64
    1.66  		[ $((n++)) -eq 0 ] || uncpio $i
    1.67  	done
    1.68  	rm -f /tmp/wait