#!/bin/bash # -- This script uses Bash extensions # Installation into /tmp for later scp-ing. # You do not need to be a root for this. # Run this from your build directory. # VERSION = 2 # PATCHLEVEL = 4 # SUBLEVEL = 2 # EXTRAVERSION = -ac3 # EXTRAVERSION =-ac3 # KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) # No workie because 1. spaces around '=', 2. line feeds are eaten # eval $(egrep "^VERSION *= *|^PATCHLEVEL *= *|^SUBLEVEL *= *|^EXTRAVERSION *= *" Makefile) readmakefile () { while read key equ val; do # Woops, no space after the equal sign if [[ "$val" == "" && "$equ" == "=?*" ]]; then val=${equ:1} equ="=" fi if [ "$equ" = "=" ]; then case "$key" in VERSION) VERSION="$val" ;; PATCHLEVEL) PATCHLEVEL="$val" ;; SUBLEVEL) SUBLEVEL="$val" ;; EXTRAVERSION) EXTRAVERSION="$val" ;; esac fi done echo ${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION} } # # main() # set -e KID=$(readmakefile < Makefile) KARCH=$(readlink include/asm | awk -F- '{ print $2}') if [ "$KARCH" = "i386" ]; then ARCH=i386 elif [ "$KARCH" = "s390" ]; then ARCH=s390 elif [ "$KARCH" = "s390x" ]; then ARCH=s390 else echo "Unknown architecture $KARCH" >&2 exit 1 fi BOOTDIR=/tmp MODROOT=/tmp/mod echo "Collecting $KID ..." INSTALL_MOD_PATH=$MODROOT make modules_install # makes /tmp/mod as needed echo "Copying $KID to $BOOTDIR for $KARCH ..." #if [ "$PATCHLEVEL" != "6" ]; then # Not needed on 2.6, we have kallsyms. cp vmlinux $BOOTDIR/vmlinux-$KID #fi cp System.map $BOOTDIR/System.map-$KID if [ "$ARCH" = "s390" ]; then cp arch/$KARCH/boot/image $BOOTDIR/vmlinuz-$KID else cp arch/$KARCH/boot/bzImage $BOOTDIR/vmlinuz-$KID fi (cd $MODROOT/lib/modules && tar cf - $KID) | gzip -c > /tmp/modules.tgz-$KID echo "Done with $KID"