diff options
Diffstat (limited to 'scripts/extract-ikconfig')
-rwxr-xr-x | scripts/extract-ikconfig | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/extract-ikconfig b/scripts/extract-ikconfig index 72997c353cb3..de233ff43c1c 100755 --- a/scripts/extract-ikconfig +++ b/scripts/extract-ikconfig | |||
@@ -17,6 +17,10 @@ dump_config() { | |||
17 | return | 17 | return |
18 | fi | 18 | fi |
19 | end=`$binoffset $file $IKCFG_ED 2>/dev/null` | 19 | end=`$binoffset $file $IKCFG_ED 2>/dev/null` |
20 | [ "$?" != "0" ] && end="-1" | ||
21 | if [ "$end" -eq "-1" ]; then | ||
22 | return | ||
23 | fi | ||
20 | 24 | ||
21 | start=`expr $start + 8` | 25 | start=`expr $start + 8` |
22 | size=`expr $end - $start` | 26 | size=`expr $end - $start` |
@@ -55,6 +59,8 @@ dump_config "$image" | |||
55 | GZHDR1="0x1f 0x8b 0x08 0x00" | 59 | GZHDR1="0x1f 0x8b 0x08 0x00" |
56 | GZHDR2="0x1f 0x8b 0x08 0x08" | 60 | GZHDR2="0x1f 0x8b 0x08 0x08" |
57 | 61 | ||
62 | ELFHDR="0x7f 0x45 0x4c 0x46" | ||
63 | |||
58 | # vmlinux.gz: Check for a compressed images | 64 | # vmlinux.gz: Check for a compressed images |
59 | off=`$binoffset "$image" $GZHDR1 2>/dev/null` | 65 | off=`$binoffset "$image" $GZHDR1 2>/dev/null` |
60 | [ "$?" != "0" ] && off="-1" | 66 | [ "$?" != "0" ] && off="-1" |
@@ -69,6 +75,14 @@ elif [ "$off" -ne "-1" ]; then | |||
69 | (dd ibs="$off" skip=1 count=0 && dd bs=512k) <"$image" 2>/dev/null | \ | 75 | (dd ibs="$off" skip=1 count=0 && dd bs=512k) <"$image" 2>/dev/null | \ |
70 | zcat >"$TMPFILE" | 76 | zcat >"$TMPFILE" |
71 | dump_config "$TMPFILE" | 77 | dump_config "$TMPFILE" |
78 | |||
79 | # check if this is simply an ELF file | ||
80 | else | ||
81 | off=`$binoffset "$image" $ELFHDR 2>/dev/null` | ||
82 | [ "$?" != "0" ] && off="-1" | ||
83 | if [ "$off" -eq "0" ]; then | ||
84 | dump_config "$image" | ||
85 | fi | ||
72 | fi | 86 | fi |
73 | 87 | ||
74 | echo "ERROR: Unable to extract kernel configuration information." | 88 | echo "ERROR: Unable to extract kernel configuration information." |