diff options
Diffstat (limited to 'kernel/update_kernel')
-rwxr-xr-x | kernel/update_kernel | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/kernel/update_kernel b/kernel/update_kernel deleted file mode 100755 index 9c2145e21..000000000 --- a/kernel/update_kernel +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash - -ALL_KERNELS="all.kernels" -RPMS=/export/Mandrake/RPMS - -ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'` - - -# move stuff to this new "kernel" directory -if [ ! -d all.kernels ]; then - if [ -d ../all.kernels ]; then - mv ../all.kernels . - rm -rf ../all.modules - else - # make sure "all.kernels" directory exists - mkdir all.kernels - fi -fi - -function create_marfile() { - marfile=$1 - shift - $GIBASEDIR/mdk-stage1/mar/mar -c $marfile $* -} - -function build_kernel_is_26() { - uname -r | grep -q '^2\.6' -} - -function kern_version() { - if echo $1 | grep -q ^2.4; then - version=24 - objects="*.o" - else - version=25 - objects="*.ko" - fi -} - -function create_modules() { - kernel_path=$1 - kern=$2 - echo "Updating modules in '`pwd`' for kernel '$kern'" - kern_version $kern - find $kernel_path/lib/modules/ -name "$objects" -exec cp -f {} . \; - if [ $version -eq 24 ]; then - /sbin/depmod-24 -F $kernel_path/boot/System.map* -e *.o | perl -pe 's/\\\n//' \ - | perl -ne 's/\.o//g; s/[ \t]+/ /g; print if /: /' > modules.dep - else - cp $kernel_path/lib/modules/*/modules.dep . - perl -ni -e 's|/\S+/([^/]+)\.k?o(\.gz)|$1|g; print if /: /' modules.dep - fi - perl -pi -e 's/((plip|ppa|imm): parport)/$1 parport_pc/' modules.dep - - if build_kernel_is_26; then - /sbin/modinfo $objects | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!' > modules.description - else - /sbin/modinfo-$version -f '%{filename} %{description}\n' $objects | perl -lne 'print "$1\t$2" if /(.*?)\.k?o "(.*)"/' > modules.description - fi -} - -function create_modules_mar() { - kern_version $kern - - if [ $version -eq 24 ]; then - echo -n "stripping $kern: " - $GIBASEDIR/kernel/strip_modules *.o 2>/dev/null - echo "done" - else - echo "don't strip on 2.6 since it breaks modules" - fi - - if [ -z "$MOVE" ]; then - echo -n "packdrake $kern: " - ls $objects | packdrake -b9s "modules.cz" 400000 - echo "done" - mv modules.cz ../modules.cz-$kern - fi - for i in $images; do - eval "modules=\$${i}_modules_raw" - modules_with_deps=`perl -I $GIBASEDIR/kernel $GIBASEDIR/kernel/dependencies.pl $version modules.dep $modules` - eval "create_marfile ${i}_modules.mar $modules_with_deps" - done - echo -} - -function install_kernel() { - rpm=$1 - - ver=$(rpm -qp --qf '%{name}' $rpm 2>/dev/null | perl -pe 's/kernel(-(BOOT))?-((\.?[0-9]+){3})\.(.*)/$3-$5$2/') - [ -n "$ver" ] || return - - if [ -n "$2" ]; then - [ -d $ALL_KERNELS/$ver ] && return - main_ver=$2 - echo Removing previous kernel $ALL_KERNELS/$main_ver* - rm -rf $ALL_KERNELS/$main_ver* - fi - - rm -rf $ALL_KERNELS/$ver - echo "Installing kernel $ver" - mkdir -p $ALL_KERNELS/$ver - rpm2cpio $rpm | (cd $ALL_KERNELS/$ver ; cpio -id) - - find $ALL_KERNELS/$ver -type f -name "*.o.gz" -o -name "*.ko.gz" | xargs gunzip - - # will get back when make_boot_img is called - for dir in /tftpboot /var/lib/tftpboot; do - rm -f $dir/{vmlinuz,network.rdz,all.rdz} - done -} - -[ -e $ALL_KERNELS/.main ] && main=$(cat $ALL_KERNELS/.main) - -if [ "$1" = "--move" ]; then - MOVE=1 - shift -fi - -if [ "$ARCH" == "ia64" ] || [ "$ARCH" == "ppc" ]; then - name=kernel -else - name=kernel-BOOT -fi - -if [ -n "$1" ]; then - #- allow specifying a kernel file on commandline (./update_kernel /RPMS/kernel-2.4.22.10mdk-1-1mdk.i586.rpm) - install_kernel $1 -else - install_kernel $RPMS/kernel-BOOT-2.4*.rpm 2.4 - install_kernel $RPMS/kernel-BOOT-2.6*.rpm 2.6 -fi - -[ -n "$main" -a -e $ALL_KERNELS/$main ] || { - cd $ALL_KERNELS - main=$(echo 2.6* | sed 's/.* //') - [ -e "$main" ] || main=$(echo 2.4* | sed 's/.* //') - [ -e "$main" ] || { echo "no kernel installed in $ALL_KERNELS"; exit 1; } - echo "Choosing $main" - echo $main > .main - cd .. -} - - -if [ "$ARCH" == "i386" ]; then - for i in $ALL_KERNELS/*/boot/vmlinuz*; do - #disable any existing resolution!!! - /usr/sbin/rdev -v $i 65535 #788 #785 - done -fi - - -GIBASEDIR=`pwd`/.. - -rm -rf all.modules ; mkdir all.modules -for i in $ALL_KERNELS/*; do - kern=`basename $i` - ( - mkdir all.modules/$kern - cd all.modules/$kern - - create_modules ../../$i $kern - ) || exit 1 -done -cp -f all.modules/$main/modules.description . - -l=`MOVE=$MOVE perl modules.pl images` || exit 1 -eval $l - -for i in $ALL_KERNELS/*; do - kern=`basename $i` - ( - cd all.modules/$kern - - if [ "$kern" = "$main" ]; then - create_modules_mar ../../$i $kern - else - echo "$kern ($main)" - create_modules_mar ../../$i $kern 2>/dev/null - fi - ) || exit 1 -done - - -./check_mar.pl |