Kernel Recompile.sh

  • Upload
    ed-sena

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

  • 8/2/2019 Kernel Recompile.sh

    1/6

    #!/bin/bash

    #Scriptthatdownloadsthesourceandrecompilesthecurrentkernel,#enablingthesupportforHIGHMEM64G##Author:EdSena###Steps:# 1)ReadparametersfromSTDIN# 2)Switchdirectoryto/usr/src# 3)Download(andinstall)necessarypackages# 4)Changekernel'sABIversion# 5)EnableHIGHMEM64Gsupportonthekernel# 6)Rebuildtheconfigurationfiles# 7)(Optional)Createabackupoftheconfiguredkernelsource# 8)Kernelrecompile# 9)(Optional)Kernelinstalation# 10)Changekernel'sABIversiononlinux-ubuntu-modules# 11)Recompilelinux-ubuntu-modules# 12)(Optional)Installlinux-ubuntu-modules# 13)Changekernel'sABIversiononlinux-restricted-modules# 14)Recompilelinux-restricted-modules# 15)(Optional)Installlinux-restricted-modules

    # 16)Moveallcreatedfilesintoanewsub-directory# 17)Cleanunecessariesfiles

    functionreadArgs{readKernelRecompileKERNEL=$?

    if[$KERNEL-eq1];thenreadKernelInstallation

    fireadFlavourreadModulesMODULES=$?

    if[$MODULES-eq1];thenif[$KERNEL-eq1];thenKERNEL_INSTALL=1

    fireadModulesInstallation

    fiMODULES_INSTALL=$?echo"Currentkernel=$KRELEASE"echo"Currentversion=$KVERSION"echo"WilluseKNEWFLAVOUR=$KNEWFLAVOUR"echo"Willinstallkernel=$KERNEL_INSTALL"echo"Willcompilemodules=$MODULES"echo"Willinstallmodules=$MODULES_INSTALL"

    ask"ArethissettingsOK?"if[$?-ne1];then

    readArgsreturn$?

    fi}

    functionreadKernelRecompile{ask"Doyouwanttorecompilethekernel"return$?

  • 8/2/2019 Kernel Recompile.sh

    2/6

    }

    functionreadFlavour{ask"Doyouwanttochangethekernelflavour"if[$?-ne0];then

    readValue"Typetheflavourthatwillbeusedontherecompiledkernel/modules""KNEWFLAVOUR";

    return$?else

    KNEWFLAVOUR=$KFLAVOURfireturn1;

    }

    functionreadKernelInstallation{ask"Doyouwanttoinstallthekernelatercompiling?"KERNEL_INSTALL=$?;

    }

    functionreadModules{echoecho"Torecompilethelinux-ubuntu-modulesandlinux-restriced-modules,

    thisscriptwillneedtoinstallthenewkernelimageandthenewkernelhearders"

    ask"Doyouwanttorecompilethemodules?"return$?}

    functionreadModulesInstallation{ask"Doyouwanttoinstallthemodulesatercompiling?"return$?

    }

    functionreadValue{echo;echo$1;read-p"--->"$2;

    }

    functionconfirm{echo;read-p"$1(y|[n]|q)?"OK;case"$OK"in

    [qQ])echoecho"Aborted."exit1;

    ;;

    [nN])

    $2return$?;

    ;;esac

    }

    functionask{echo;read-p"$1(y|[n]|q)?"OK;case"$OK"in

  • 8/2/2019 Kernel Recompile.sh

    3/6

    [qQ])echoecho"Aborted."exit1;

    ;;

    [yY])return1;

    ;;

    else)return0;

    ;;esac

    }

    functiondownloadFiles{apt-getbuild-deplinux-image-$KNAMEif[$MODULES-eq1];then

    apt-getbuild-deplinux-ubuntu-modules-$KRELEASE-genericapt-getbuild-deplinux-restricted-modules-$KRELEASE-generic

    fi

    apt-getsourcelinux-image-$KNAME

    if[$MODULES-eq1];thenapt-getsourcelinux-ubuntu-modules-$KRELEASE-genericapt-getsourcelinux-restricted-modules-$KRELEASE-generic

    fi# apt-getinstalllibqt3-mt-dev}

    functionchangeKernelFlavour{cd/usr/src/linux-$KVERSION#mvdebian/config/i386/config.genericdebian/config/i386/config.$KNEWFLA

    VOURfinddebian/abi-name$KFLAVOUR-execdirmv$KFLAVOUR$KNEWFLAVOUR\;finddebian/abi-name$KFLAVOUR.modules-execdirmv$KFLAVOUR.modules$K

    NEWFLAVOUR.modules\;mvdebian/controldebian/control.origmvdebian/control.stubdebian/control.stub.origseds/-$KRELEASE-generic/-$KNEWNAME/debian/control.orig>debian/contro

    lseds/-$KRELEASE-generic/-$KNEWNAME/debian/control.stub.orig>debian/c

    ontrol.stub}

    functionchangeUbuntuModulesFlavour{cd/usr/src/linux-ubuntu-modules-$KVERSION-$KVERSIONmvdebian/controldebian/control.origmvdebian/control.stubdebian/control.stub.orig

    seds/-$KRELEASE-generic/-$KNEWNAME/debian/control.orig>debian/control

    seds/-$KRELEASE-generic/-$KNEWNAME/debian/control.stub.orig>debian/control.stub}

    functionchangeRestrictedModulesFlavour{cd/usr/src/linux-restricted-modules-$KVERSIONmvdebian/control.stub.indebian/control.stub.in.origmvdebian/d-i/kernel-versions.indebian/d-i/kernel-versions.in.orig

  • 8/2/2019 Kernel Recompile.sh

    4/6

    mvdebian/rulesdebian/rules.origseds/-@@ABIVER@@-generic/-@@ABIVER@@-$KNEWFLAVOUR/debian/control.stub.

    in.orig>debian/control.stub.inseds/generic/$KNEWFLAVOUR/debian/d-i/kernel-versions.in.orig>debian/

    d-i/kernel-versions.insed"s/\(flavours:=.*\)generic.*/\1$KNEWFLAVOUR)/"debian/rules.orig>

    debian/ruleschmod+xdebian/rulesdebian/rulesdebian/control

    }

    functiongroupStuff{BUILDDIR=/usr/src/build-$KNEWNAMEmkdir-p$BUILDDIRif[$KERNEL-eq1];then

    mvlinux-image-$KNEWNAME*.deblinux-image-debug-$KNEWNAME*.deblinux-headers-*$KNEWNAME*.deb$BUILDDIR

    fiif[$MODULES-eq1];then

    mvlinux-ubuntu-modules-$KNEWNAME*.deb*-restricted-*-$KNEWNAME*.*deb$BUILDDIR

    fi}

    functioncleanUp{rm-rflinux-restricted-modules-*rm-rflinux-ubuntu-modules-*rm-rflinux[_-]$(uname-r|sed's/\(.*\)-[0-9]*-generic/\1/')*rm*.udebmv*.debbuild-$KNEWNAME/other

    }

    KNAME=$(uname-r)KNAME="2.6.28-14-generic"KFLAVOUR=$(echo$KNAME|sed-r's/.+\-([^-]+)$/\1/')KRELEASE=$(echo$KNAME|sed-r's/(\-[^-]+)$//')KVERSION=$(echo$KRELEASE|sed-r's/(\-[^-]+)$//')

    #Step01readArgs

    KNEWNAME=$KRELEASE-$KNEWFLAVOUR

    #Step02cd/usr/src

    #Step03downloadFiles

    #Step04

    if[$KNEWFLAVOUR!=$KFLAVOUR];thenchangeKernelFlavour

    fi

    if[$KERNEL-eq1];then

    #Step05rm-rfdebian/config/i386/*sed's/\#CONFIG_HIGHMEM64Gisnotset/CONFIG_HIGHMEM64G=y/'/boot/confi

    g-$KNAME|sed's/CONFIG_HIGHMEM4G=y/\#CONFIG_HIGHMEM4Gisnotset/'>debian/c

  • 8/2/2019 Kernel Recompile.sh

    5/6

    onfig/i386/config.$KNEWFLAVOUR

    #Step06chmod+xdebian/scripts/misc/splitconfig.plchmod+xdebian/scripts/misc/oldconfigdebian/rulesupdateconfigs

    #Step07#backupNewKernel

    #Step08#CONCURRENCY_LEVEL=4AUTOBUILD=1NOEXTRAS=1debian/rulesbinary-$KNEWFLA

    VOURCONCURRENCY_LEVEL=4AUTOBUILD=1NOEXTRAS=1skipabi=trueskipmodule=true

    debian/rulesbinary-$KNEWFLAVOUR

    #Step09if[$KERNEL_INSTALL-eq1];then

    dpkg-i../linux-image-$KNEWNAME*.deblinux-headers-$KNEWNAME*.deb

    fi

    fi

    if[$MODULES-eq1];then

    # #Step10# if[$KNEWFLAVOUR!="generic"];then# changeUbuntuModulesFlavour# fi## #Step11# CONCURRENCY_LEVEL=4AUTOBUILD=1NOEXTRAS=1debian/rulesbinary-debsflavours=$KNEWFLAVOUR## if[$MODULES_INSTALL-eq1];then

    # #Step12# dpkg-i../linux-ubuntu-modules-$KNEWNAME*.deb# fi

    #Step13if[$KNEWFLAVOUR!="generic"];then

    changeRestrictedModulesFlavourfi

    #Step14CONCURRENCY_LEVEL=4AUTOBUILD=1NOEXTRAS=1debian/rulesbinary-debsflav

    ours=$KNEWNAME

    if[$MODULES_INSTALL-eq1];then#Step15dpkg-i../*-restricted-*-$KNEWNAME*.deb

    fifi

    #Step16groupStuff

  • 8/2/2019 Kernel Recompile.sh

    6/6

    #Step17#cleanUp