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