如何应用内核补丁

Ser*_*nyy 7 patch kernel software-installation

我一直在从主线存储库安装内核- 那里很简单,只有*.deb文件,人们可以dpkg -i对它们进行简单的操作。但如何应用补丁0001-base-packaging.patch0002-debian-changelog.patch0003-configs-based-on-Ubuntu-4.4.0-0.10.patch手动?

Rap*_*ael 10

正如指出README主线

这些二进制包代表以下提交中主线或稳定 Linux 内核树的构建:

v4.4 (afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc)
Run Code Online (Sandbox Code Playgroud)

要获取构建它们的源,请获取以下提交:

git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.4
Run Code Online (Sandbox Code Playgroud)

并按以下顺序在顶部应用以下补丁:

0001-base-packaging.patch
0002-debian-changelog.patch
0003-configs-based-on-Ubuntu-4.4.0-0.10.patch
Run Code Online (Sandbox Code Playgroud)

这意味着只有当您从源代码而不是从*.deb.

如果您是从源代码构建它,那么这些是您需要遵循的步骤:

  1. 安装这些软件包:

    sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev
    
    Run Code Online (Sandbox Code Playgroud)
  2. 获取源代码:

    mkdir anyname; cd anyname
    git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.4
    
    Run Code Online (Sandbox Code Playgroud)
  3. 复制补丁文件。

  4. 切换到内核目录:

    cd v4.4
    
    Run Code Online (Sandbox Code Playgroud)
  5. 进行任何自定义更改。

  6. 应用补丁:

    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
    
    Run Code Online (Sandbox Code Playgroud)
  7. 制作:

    cp /boot/config-`uname -r` .config
    gedit .config
    
    make oldconfig
    make menuconfig
    
    make clean
    make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom
    
    Run Code Online (Sandbox Code Playgroud)
  8. 安装生成的 deb:

    sudo dpkg -i ../*.deb
    
    Run Code Online (Sandbox Code Playgroud)
  9. 更新GRUB并重启:

    sudo update-grub; sudo reboot
    
    Run Code Online (Sandbox Code Playgroud)