Revision 33bbd1de pc-bios/optionrom/signrom.sh
b/pc-bios/optionrom/signrom.sh | ||
---|---|---|
31 | 31 |
size=$(( $x * 512 - 1 )) |
32 | 32 |
|
33 | 33 |
# now get the checksum |
34 |
nums=`od -A n -t u1 -v "$1"` |
|
34 |
nums=`od -A n -t u1 -v -N $size "$1"`
|
|
35 | 35 |
for i in ${nums}; do |
36 | 36 |
# add each byte's value to sum |
37 |
sum=`expr $sum + $i`
|
|
37 |
sum=`expr \( $sum + $i \) % 256`
|
|
38 | 38 |
done |
39 | 39 |
|
40 |
sum=$(( $sum % 256 )) |
|
41 |
sum=$(( 256 - $sum )) |
|
40 |
sum=$(( (256 - $sum) % 256 )) |
|
42 | 41 |
sum_octal=$( printf "%o" $sum ) |
43 | 42 |
|
44 | 43 |
# and write the output file |
Also available in: Unified diff