wok diff memtest/stuff/pack @ rev 15188

Add memtest-serial
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Aug 25 18:09:21 2013 +0000 (2013-08-25)
parents 8d9ce0de31e0
children 20fd4e3d8970
line diff
     1.1 --- a/memtest/stuff/pack	Sat Jul 13 14:32:56 2013 +0200
     1.2 +++ b/memtest/stuff/pack	Sun Aug 25 18:09:21 2013 +0000
     1.3 @@ -1,12 +1,15 @@
     1.4  #!/bin/sh
     1.5  if [ "$1" == "--build" ]; then
     1.6 -	bin=${2:-unpack.bin}
     1.7 +	set -- ${2:-bootloader.bin} ${3:-unpack.bin}
     1.8  	cat >> $0 <<EOM
     1.9 -$(gzip -9 < $bin | uuencode -m -)
    1.10 +$(dd if=$1 bs=512 count=1 conv=sync | cat - $2 | gzip -9 | uuencode -m -)
    1.11  EOT
    1.12  EOM
    1.13 -	getip=$(grep -s getip ${bin/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.14 +	getip=$(grep -s getip ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.15  	sed -i "s/XXX/$((515+0x${getip:-5}))/" $0
    1.16 +	helpmsg=$(sed '/helpmsg:/!d{n;s/ [0-9]* \([^ ]*\).*/\1/}' ${1/.bin/.lst} | sed '$!d')
    1.17 +	sed -i "s/YYY/$((0x$helpmsg))/" $0
    1.18 +	sed -i "s/ZZZ/$((496-0x$helpmsg))/" $0
    1.19  	sed -i '/--build/,/^fi/d' $0
    1.20  	exit
    1.21  fi
    1.22 @@ -14,7 +17,7 @@
    1.23  store()
    1.24  {
    1.25  	n=$1
    1.26 -	for i in $(seq 1 $4); do
    1.27 +	for i in $(seq 1 ${4:-2}); do
    1.28  		printf '\\\\x%02X' $(($n & 255))
    1.29  		n=$(($n >> 8))
    1.30  	done | xargs echo -en | dd conv=notrunc bs=1 of=$2 seek=$3
    1.31 @@ -27,16 +30,25 @@
    1.32  
    1.33  main()
    1.34  {
    1.35 -	dd if=$1 bs=512 count=1 >$2
    1.36 -	uudecode | gunzip >>$2
    1.37 +	uudecode | gunzip >$2
    1.38 +	dd if=$1 bs=1 skip=497 seek=497 count=15 of=$2 conv=notrunc
    1.39  	setup="$(echo $(od -j 497 -N 1 -dAn $1))"
    1.40  	syssize="$(echo $(od -j 500 -N 2 -dAn $1))"
    1.41  	dd if=$1 bs=512 count=$setup skip=1 | compress >>$2
    1.42  	dd if=$1 bs=16 count=$syssize skip=$((32*(1+$setup))) | compress >>$2
    1.43  	size=$(stat -c %s $2)
    1.44 -	store $((($size-512)/16)) $2 XXX 2
    1.45 -	store $((($size-2560)/16)) $2 500 2
    1.46 +	store $((($size-512)/16)) $2 XXX
    1.47 +	store $((($size-2560)/16)) $2 500
    1.48  	store 4 $2 497 1
    1.49 +	store $((($size+511)/512)) $2 4
    1.50 +	store $((($size+15)/16)) $2 14
    1.51 +	echo -en "$3" | dd conv=notrunc bs=1 seek=YYY of=$2 count=ZZZ
    1.52  }
    1.53  
    1.54 -main $1 $2 2>/dev/null <<EOT
    1.55 +HELP="$(unix2dos <<EOT
    1.56 +Memtest86+ is an endless advanced memory diagnostic tool released under the
    1.57 +terms of the Gnu Public License (GPL).
    1.58 +
    1.59 +EOT
    1.60 +)"
    1.61 +main $1 ${2:-$1.packed} "${3:-$HELP}" 2>/dev/null <<EOT