文章目录
- 1. 安装环境
- 2. 安装依赖包
- 3. 查看内核版本
- 4. 下载新的内核和对应的Preempt-RT补丁
- 5. 解压缩
- 6. 打补丁
- 7. 配置内核
- 8. 编译内核
- 9. 校验结果
- 10. 重启
- 11. 测试
- 12. 调整分辨率
1. 安装环境
- Ubuntu18.04
- 内核版本:4.15.0-208
2. 安装依赖包
sudo apt-get update
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install build-essential libncurses5-dev bison flex libssl-dev
sudo apt-get install kernel-package
sudo apt install autoconf automake libtool net-tools
sudo apt-get install build-essential flex libelf-dev libc6-dev-amd64 binutils-dev libdwarf-dev
不然后面编译会各种报错
3. 查看内核版本
uname -r
我的内核版本为4.15.0-208
4. 下载新的内核和对应的Preempt-RT补丁
- 内核下载地址:here,我下载的是linux-4.19.72.tar.gz
- 补丁下载地址:here,我下载的是patch-4.19.72-rt25.patch.gz
内核版本要和补丁版本保持一致
5. 解压缩
- 将第四步下载的两个文件解压缩,并将patch文件拷贝到内核文件夹中
- 在/usr/src中新建文件夹rt-preempt-linux,并把linux-4.19.72文件夹拷贝到这个文件夹当中:
sudo mkdir /usr/src/rt-preempt-linux
sudo mv linux-4.19.72 /usr/src/rt-preempt-linux/ #注意要在linux-4.19.72路径下执行该语句,否则找不到文件
6. 打补丁
cd /usr/src/rt-preempt-linux/linux-4.19.72/
sudo patch -p1 <patch-4.19.72-rt25.patch
7. 配置内核
cd /usr/src/rt-preempt-linux/linux-4.19.72/
sudo make mrproper # 删除目录下残留的.o文件和其他从属文件
- 第二步:将 /boot文件夹下的config-4.15.0-208-generic文件拷贝到linux-4.19.72目录中
- 第三步:sudo cp /boot/config-4.15.0-208-generic .config #对应你自己的内核版本
- 第四步:开始配置
1. General setup/Processor type and features ---> Preemption Model ---> Fully Preemptible Kernel(RT)
2. Kernel hacking ---> compile-time checks and complier options ----> warn for stacks frames larger than ---> 4096
3. Device Drivers ---> [] staging drivers #按n键取消选择
记住要保存
将语句: CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
替换成: CONFIG_SYSTEM_TRUSTED_KEYS=""
8. 编译内核
sudo make -j12
sudo make modules_install
sudo make install
结尾提示done说明安装成功
9. 校验结果
cd /boot
ls
查看/boot 目录下是否有生成的rt核心,发现boot中已经有initrd.img-4.19.72-rt25文件了,用这个生成内存镜像文件:
sudo mkinitramfs -k -o initrd.img-4.19.72-rt25 4.19.72-rt25
10. 重启
reboot
uname -r
检查当前内核版本号,若为linux-4.19.72-rt25,则说明实时内核安装成功。
11. 测试
sudo apt-get install rt-tests
sudo cyclictest -t 5 -p 80 -n ##us显示
#sudo cyclictest -t 5 -p 80 -N ##ns显示
12. 调整分辨率
在更换实时内核后,由于当前显卡不支持该实时内核(实际上第一次安装Ubuntu系统时,当时的内核版本已经和显卡自动匹配了),会出现屏幕分辨率不正常的现象,影响我们后续的使用。由于我的系统安装的是集成显卡,不是N卡,所以通过更新N卡驱动的方法对有集成显卡的系统并不适用,下面介绍我自己修改成功的一种方法。
- 修改/etc/default/grub文件,打开文件:
sudo gedit grub
- 找到设置#GRUB_GFXMODE=640x480,并修改成:GRUB_GFXMODE=“自己显示器支持的分辨率” (去掉前面的#)
- 保存刚刚修改的grub文件,并使用命令行更新grub:
sudo update-grub
重启系统即可。
关于Preempt-RT的使用,参见wiki.linuxfoundation.org
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)