kernel-gcc-export.sh
von rendegast- SNIPPET_DESC:
- korrigiert 38975
- SNIPPET_CREATION_TIME:
- 06.12.2015 12:39:17
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/bin/sh
- # 200908, squeeze: dash als /bin/sh, versteht zBsp kein 'select'
- #Sun Sep 28 11:37:30 CEST 2008
- # 20090212
- # 20100301
- # 201212, kernel 3.6-debian, XZ-compressed
- set | grep -i bash_version # bash oder dash?
- VMLINUZ="${1#/boot/}"
- KERNEL_VERSION="${VMLINUZ#vmlinuz-}"
- echo "$1" | egrep -q "^/boot/vmlinuz.*" || { beep; echo Erwarte '/boot/KERNEL' als Argument, dann der laufende "$(uname -r)"; KERNEL_VERSION="$(uname -r)"; }
- gcc_export() {
- # weitere Kandidaten BZIP2, LZMA, LZO.
- #
- KERNEL=/boot/vmlinuz-"$KERNEL_VERSION"
- POSGZ=$(xxd -c1 -l $((0x8000)) "$KERNEL" | grep -A3 ": 1f " | grep -B1 -A2 ": 8b " | grep -B2 -A1 ": 08 " | grep -B3 ": 00 " | awk '$2=="1f" {print $1}')
- POSXZ=$(xxd -c1 -l $((0x8000)) "$KERNEL" | grep -A3 ": fd " | grep -B1 -A2 ": 37 " | grep -B2 -A1 ": 7a " | grep -B3 ": 58 " | awk '$2=="fd" {print $1}')
- # soweit scheint nur eins davon ungleich non-zero
- [ "x$POSGZ" != "x" -a "z$POSXZ" = "z" ] && { POS="$POSGZ"; unzipper=gunzip; }
- [ "z$POSXZ" != "z" -a "x$POSGZ" = "x" ] && { POS="$POSXZ"; unzipper=unxz; }
- POS=${POS%:}
- KERNEL_CC_VERSION=$(dd if="$KERNEL" bs=$((0x$POS)) skip=1 2>/dev/null | $unzipper -c 2>/dev/null | strings | egrep -m1 -o "gcc version ..." | cut -d" " -f3)
- export KERNEL_CC="gcc-$KERNEL_CC_VERSION"
- }
- gcc_export
- echo $KERNEL_CC
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN