# How to apply kernel patches

I've been installing kernels from mainline repository - all simple there, just *.deb files, one can do simple dpkg -i on them. But how can one apply the patches 0001-base-packaging.patch , 0002-debian-changelog.patch, 0003-configs-based-on-Ubuntu-4.4.0-0.10.patch manually ?

As stated in README at mainline:

These binary packages represent builds of the mainline or stable Linux kernel tree at the commit below:

v4.4 (afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc)


To obtain the source from which they are built fetch the commit below:

git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.4


and apply the following patches on top in the order below:

0001-base-packaging.patch
0002-debian-changelog.patch
0003-configs-based-on-Ubuntu-4.4.0-0.10.patch


This means that you need to apply those patches only if you are building your kernel from source and not from *.deb.

In case if you are building it from source, then these are the steps you need to follow:

1. Install these packages:

sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev

2. Get the source code:

mkdir anyname; cd anyname

3. Copy the patches files.

4. Change to kernel directory:

cd v4.4

5. Make any custom changes.

6. Apply patches:

patch -p1 < ~/anyname/0001-base-packaging.patch
patch -p1 < ~/anyname/0002-debian-changelog.patch
patch -p1 < ~/anyname/0003-configs-based-on-Ubuntu-4.4.0-0.10.patch

7. Make:

cp /boot/config-uname -r .config
gedit .config

make oldconfig

make clean
make -j getconf _NPROCESSORS_ONLN deb-pkg LOCALVERSION=-custom

8. Install generated deb:

sudo dpkg -i ../*.deb

9. Update GRUB and reboot:

sudo update-grub; sudo reboot

• So in short, if I'm using the *.deb files, patches are already there ? – Sergiy Kolodyazhnyy Jan 24 '16 at 5:53
• @Serg - Yes! right. – Raphael Jan 24 '16 at 5:55
• I do not think the package list is complete. For example, and as of kernel 4.3 libssl-dev is needed. – Doug Smythies Jan 25 '16 at 16:30
• After oldconfig runs, the config is much different then the one provided by the mainline kernel (eg: extracting boot/config-xxxx from linux-image-xxxx.deb). It would be desirable to have identical config vs. the one that shipped. – kevinf Feb 11 '16 at 20:19