什么样的发行版用什么样的内核,ubuntu的内核当然用ubuntu的方式来定制最合适。ubuntu的内核源代码用git管理,其仓库位于launchpad,要获得内核树需要安装git。
先建一个工作目录,打开终端,输入: cd Downloads mkdir BuildKernel
切换到工作目录: cd BuildKernel
安装git: sudo apt install git
开始下载内核仓库: git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.16.9
这个命令最终会在当前目录新建一个名为v4.16.9的子目录,并包含所需的内核源代码。正确完成克隆的输出看起来像下面这样: remote: Counting objects: 7059560, done. remote: Compressing objects: 100% (1289911/1289911), done. remote: Total 7059560 (delta 6002977), reused 6773778 (delta 5723362) Receiving objects: 100% (7059560/7059560), 1.60 GiB | 6.80 MiB/s, done. Resolving deltas: 100% (6002977/6002977), done. Checking out files: 100% (61358/61358), done.
git比https更快、更稳定,不过,如果9146端口被防火墙屏蔽,退而求其次,也可以使用https: git clone https://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.16.9
再到下面给出的web页面下载7个补丁: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16.9/ 0001-base-packaging.patch 0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch 0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch 0004-adhoc-from-__future__-import-syncconfig.patch 0005-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch 0006-debian-changelog.patch 0007-configs-based-on-Ubuntu-4.16.0-4.5.patch
建一个存放补丁的文件夹,将下载好的补丁全部保存到这个文件夹: mkdir -p ubuntu-patches/v4.16.9-patches
开始编译之前,需要确认内核树所在的分区有大约50g的多余空间,并安装相关软件包: sudo apt install libudev-dev libpci-dev libelf-dev binutils-dev sudo apt install asciidoc kernel-wedge kexec-tools sudo apt install bison flex libssl-dev libncurses5-dev sudo apt build-dep linux
进入内核树根: cd v4.16.9
为内核打上ubuntu的补丁,按0001-0007的数字由小到大的顺序打完7个补丁,有其他非官方补丁的在此也应该一起打上: git am < ~/Downloads/BuildKernel/ubuntu-patches/v4.16.9-patches/0001-base-packaging.patch
没开通ID的输入: patch -p1 < ~/Downloads/BuildKernel/ubuntu-patches/v4.16.9-patches/0001-base-packaging.patch
初始化debian文件: fakeroot debian/rules clean
编辑配置: make editconfigs
这个命令调用menuconfig来配置内核,看到其显示的内核版本是4.17.0-rc5,说好的4.16.9呢?不管了,由它去。
开始编译: fakeroot debian/rules clean DEB_BUILD_OPTIONS=parallel=4 fakeroot debian/rules binary-headers binary-generic binary-perarch
处理器核心多的可以将命令中的“4”改成更大的数字,以加速编译过程,此命令执行完会生成11个包。 如果需要低延时的内核,则输入: fakeroot debian/rules clean DEB_BUILD_OPTIONS=parallel=4 fakeroot debian/rules binary
该命令将生成57个包,耗时是前面命令的两倍。 安装新内核: sudo dpkg -i linux-headers*.deb linux-image*.deb linux-modules*.deb linux-libc-dev*.deb
更换到新的低延时内核看看,软重启: sudo kexec -l /boot/vmlinuz-4.16.9-041609-lowlatency --initrd=/boot/initrd.img-4.16.9-041609-lowlatency --reuse-cmdline sudo kexec -e
检查运行状态: uname -rs dpkg --get-selections | grep linux dmesg | less
相关主题 |