Some packages you might want to have on the system prior to building the new kernel:
apt-get install wget fakeroot kernel-package gcc libncurses5-dev bc ca-certificates pkg-config make flex bison build-essential autoconf automake
Choose the kernel you want to build Debian packages for from here:
https://www.kernel.org
Please make sure you read here :
https://www.kernel.org/category/faq.html
and here:
https://www.kernel.org/category/releases.html
and know the difference between "Mainline,Stable and Longterm" with regards to kernel versions.
Then you could look up the kernel version changes in here:
http://kernelnewbies.org/LinuxChanges
http://kernelnewbies.org/LinuxVersions
http://kernelnewbies.org/Linux_3.15
For the purpose of this tutorial I have chosen kernel version 3.15.1
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.15.1.tar.xz
tar xfJ linux-3.15.1.tar.xz
cd linux-3.15.1
If you will be updating/installing the new kernel on the same machine that you will be building it, you could do:
yes "" | make oldconfig
If you will be updating/installing the new kernel on a different machine than the one that you are building it - it is better to do:
make defconfig
More about these differences and the implications of it you can read here:
https://www.kernel.org/doc/makehelp.txt
and here
https://www.kernel.org/doc/index-old.html#Using_an_existing_configuration
make defconfig - Set all options to default values
make allnoconfig - Set all yes/no options to "n"
make allyesconfig - Set all yes/no options to "y"
make allmodconfig - Set all yes/no options to "y" and all "yes/module/no" options to "m"
make randconfig - Set each option randomly (for debugging purposes).
make oldconfig - Update a .config file from a previous version of the kernel to work with the current version.
Then we do:
make clean && \above
make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom KDEB_PKGVERSION=3.15.1
make -j `getconf _NPROCESSORS_ONLN`means that if you have 4 CPUs it will start 4 kernel make jobs in parallel - provides for much faster building.
Now in the directory above
cd ..you should have the new kernel.deb packages for the same architecture as the machine that you just build it on - example 64 bit
drwxrwxr-x 25 root root 4.0K Jul 7 14:40 linux-3.15.1
-rw-r--r-- 1 root root 76M Jun 16 16:54 linux-3.15.1.tar.xz
-rw-r--r-- 1 root root 9.9M Jul 7 14:40 linux-headers-3.15.1-custom_3.15.1_amd64.deb
-rw-r--r-- 1 root root 6.1M Jul 7 14:40 linux-image-3.15.1-custom_3.15.1_amd64.deb
-rw-r--r-- 1 root root 979K Jul 7 14:40 linux-libc-dev_3.15.1_amd64.deb
install as follows and then reboot:
dpkg -i linux-headers-3.15.1-custom_3.15.1_amd64.deb linux-image-3.15.1-custom_3.15.1_amd64.deb linux-libc-dev_3.15.1_amd64.deb
So only the commands themselves - as easy as one two three...:
apt-get install wget fakeroot kernel-package gcc libncurses5-dev bc ca-certificates pkg-config make flex bison build-essential autoconf automake
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.15.1.tar.xz
tar xfJ linux-3.15.1.tar.xz
cd linux-3.15.1
yes "" | make oldconfig
make clean && \
make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-NewKernel KDEB_PKGVERSION=3.15.1
cd ..
dpkg -i linux-headers-3.15.1-custom_3.15.1_amd64.deb linux-image-3.15.1-custom_3.15.1_amd64.deb linux-libc-dev_3.15.1_amd64.deb
as easy as that...
No comments:
Post a Comment