Ubuntu18.04安装实时内核Preempt-RT

文章目录

    • 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 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.16.18.tar.gz
  • 补丁下载地址:here,我下载的是patch-4.16.18-rt12.patch.gz
    内核版本要和补丁版本保持一致

5. 解压缩

  • 将第四步下载的两个文件解压缩,并将patch文件拷贝到内核文件夹中
  • 在/usr/src中新建文件夹rt-preempt-linux,并把linux-4.16.18文件夹拷贝到这个文件夹当中:
sudo mkdir /usr/src/rt-preempt-linux     
sudo mv linux-4.16.18 /usr/src/rt-preempt-linux/    #注意要在linux-4.16.18路径下执行该语句,否则找不到文件

6. 打补丁

cd /usr/src/rt-preempt-linux/linux-4.16.18/
sudo patch -p1 

7. 配置内核

  • 第一步:首先执行以下指令:
cd /usr/src/rt-preempt-linux/linux-4.16.18/
sudo make mrproper # 删除目录下残留的.o文件和其他从属文件
  • 第二步:将 /boot文件夹下的config-4.15.0-208-generic文件拷贝到linux-4.16.18目录中
  • 第三步:sudo cp /boot/config-4.15.0-208-generic .config #对应你自己的内核版本
  • 第四步:开始配置
1. 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键取消选择

记住要保存

  • 第五步: sudo gedit .config
将语句:   CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
替换成:   CONFIG_SYSTEM_TRUSTED_KEYS=""

8. 编译内核

sudo make -j12
sudo make modules_install 
sudo make install  

9. 校验结果

cd /boot
ls

查看/boot 目录下是否有生成的rt核心,发现boot中已经有initrd.img-4.16.18-rt12文件了,用这个生成内存镜像文件:

sudo mkinitramfs -k -o initrd.img-4.16.18-rt12 4.16.18-rt12

10. 重启

reboot
uname -r

检查当前内核版本号,若为linux-4.16.18-rt12,则说明实时内核安装成功。

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

重启系统即可。

你可能感兴趣的:(linux,实时系统,preempt-rt)