# HG changeset patch # User Pascal Bellard # Date 1406715848 -7200 # Node ID cb4d9f3aa7d8f473f7be5d325cbda62fc4b99b5b # Parent f53fe44e1e70a05e93e9653067e757de71146fe9 bootloader: fix multi initrd case diff -r f53fe44e1e70 -r cb4d9f3aa7d8 mirror-tools/slitaz/mirror/floppies/builder/bootloader --- a/mirror-tools/slitaz/mirror/floppies/builder/bootloader Thu Jun 26 09:27:03 2014 +0200 +++ b/mirror-tools/slitaz/mirror/floppies/builder/bootloader Wed Jul 30 12:24:08 2014 +0200 @@ -256,7 +256,7 @@ size=$(( ($(stat -c %s "$i") + $INITRDPAD - 1) & -$INITRDPAD )) [ -n "$DEBUG" ] && echo "initrd $i $size " 1>&2 initrdlen=$(( $initrdlen + $size )) - [ -n "$ADRSRD" ] || ADRSRD=$(( (($MEM * 0x100000) - $initrdlen) & -$INITRDALIGN )) + ADRSRD=$(( (($MEM * 0x100000) - $initrdlen) & -$INITRDALIGN )) store 32 $RamfsAdrOfs $(( $ADRSRD )) $bs initrd adrs store 32 $RamfsLenOfs $initrdlen $bs initrdlen done diff -r f53fe44e1e70 -r cb4d9f3aa7d8 mirror-tools/slitaz/mirror/floppies/floppies --- a/mirror-tools/slitaz/mirror/floppies/floppies Thu Jun 26 09:27:03 2014 +0200 +++ b/mirror-tools/slitaz/mirror/floppies/floppies Wed Jul 30 12:24:08 2014 +0200 @@ -1,31 +1,30 @@ #!/bin/sh -read32() +rd() { - dd if=kernel bs=1 skip=$((0x$1)) count=4 2> /dev/null | \ - hexdump -e '"" 1/4 "%d" "\n"' + echo $(od -j $((0x$1)) -N ${2:-4} -t u${2:-4} -An kernel) +} + +ds() +{ + dd count=$1 bs=${2:-512} 2>/dev/null } case "$1" in -extract) - dd bs=512 count=2 > kernel 2> /dev/null - setupsz=$(($(read32 1F1) & 255)) - dd bs=512 count=$(($setupsz - 1)) >> kernel 2> /dev/null - [ $(read32 228) -ne 0 ] && - dd bs=512 count=1 2> /dev/null | strings > cmdline - syssz=$(read32 1F4) - syssz=$(( ($syssz + 31) / 32 )) - dd bs=512 count=$syssz >> kernel 2> /dev/null - ramsz=$(read32 21C) - dd bs=512 count=$((($ramsz + 511) / 512)) of=rootfs 2> /dev/null - dd bs=1 seek=$ramsz count=0 of=rootfs 2> /dev/null +extract) ( + ds 1 + ds $(rd 1F1 1) + [ $(rd 228) -ne 0 ] && ds 1 | strings >cmdline + ds $(( ($(rd 1F4) +31) /32)) ) >kernel + ds $(( ($(rd 21C) +3) /4)) 4 >rootfs ;; *) cat </dev/null ||$j unlzma | cpio -idmu" + done esac