首先从http://cn.ubuntu.com/download/下载ubuntu 17.04 amd64版并安装好。
一、解压Ubuntu内核包
1,在kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.12下载文件:
linux-image-4.11.12-041112-generic_4.11.12-041112.201707210350_amd64.deb
2,$ dpkg -x linux-image-4.11.12-041112-generic_4.11.12-041112.201707210350_amd64.deb ./xyz
这样做的目的是获取解压linux-image-4.11.12-041112-generic_4.11.12-041112.201707210350_amd64.deb后xyz/boot目录下的v4.11.12版内核的配置文件config-4.11.12-041112-generic
二、下载Ubuntu内核源码
$git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack -b v4.11.12
三、下载Preempt Rt补丁
到https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/下载patch-4.11.12-rt14.patch.xz
四、打补丁
$xzcat ../patch-4.11.12-rt14.patch.xz | patch -p1
由于Ubuntu提供的内核是已被Ubuntu开发者修改过的,并不是kernel.org下的vanilla内核,所以打实时补丁时可能会出现一些”FAILED”的情况,这时就需对照出现”FAILED”的地方,查找patch-4.11.12-rt14.patch相关代码手工修改。这里没有出现"FAILED"。
五、配置
1,$cp xyz/boot/config-4.11.12-041112-generic .config
2,$make menuconfig
Processor type and features —>
Preemption Model (Fully Preemptible Kernel (RT)) —>
(X) Fully Preemptible Kernel (RT)
六、编译
$make -j4
$make modules
[或者(代替以上2个步骤):
$fakeroot make -j8 deb-pkg
在上级目录生成以下包:
linux-4.11.12-rt14+_4.11.12-rt14+-1_amd64.changes
linux-4.11.12-rt14+_4.11.12-rt14+-1.debian.tar.gz
linux-4.11.12-rt14+_4.11.12-rt14+-1.dsc
linux-4.11.12-rt14+_4.11.12-rt14+.orig.tar.gz
linux-firmware-image-4.11.12-rt14+_4.11.12-rt14+-1_amd64.deb
linux-headers-4.11.12-rt14+_4.11.12-rt14+-1_amd64.deb
linux-image-4.11.12-rt14+_4.11.12-rt14+-1_amd64.deb
linux-image-4.11.12-rt14+-dbg_4.11.12-rt14+-1_amd64.deb
linux-libc-dev_4.11.12-rt14+-1_amd64.deb
]
七、替换
sudo make moudules_install
sudo make install
[或者(代替以上2个步骤):
$sudo dpkg -i linux-headers-4.11.12-rt14+_4.11.12-rt14+-1_amd64.deb
$sudo dpkg -i linux-image-4.11.12-rt14+_4.11.12-rt14+-1_amd64.deb
]
sudo reboot
八、验证
重启后执行uname -a 命令,查看内核版本。