linux patch安装_RT Preempt Ubuntu 16.04 上实时内核编译和安装

151d535b55bd11d5db42204edacfd9d7.png

前言:

本文主要目的用于记录在UPboard编译实时内核过程,用以方便以后查看,需要的小伙伴也可以参考。

第一步 安装依赖:

sudo apt-get install build-essential bc curl ca-certificates fakeroot gnupg2 libssl-dev lsb-release libelf-dev bison flex

第二步 去如下网址根据系统自己内核下载自己系统对应版本(使用:uname -r 或者uname -a)

Index of /pub/linux/kernel/projects/rt/​www.kernel.org

dc6f8df81eeb6be69ec337ca8142b05b.png
实时内核版本参考

比如这里我的系统是4.13.13 所以我使用如下命令进行下载:

curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.13.13.tar.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.13.13.tar.sign
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.13/older/patch-4.13.13-rt5.patch.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.13/older/patch-4.13.13-rt5.patch.sign

第三步 解压编译内核

注意如果解压命令报错,说明下载错版本或者上述URL写错,请检查一下。

xz -d linux-4.13.13.tar.xz
xz -d patch-4.13.13-rt5.patch.xz
tar xf linux-4.13.13.tar
cd linux-4.13.13
patch -p1 < ../patch-4.13.13-rt5.patch

第四步 配置内核

make oldconfig
注意这里我们只需要选择第五项即可,输入数字5,后面全部enter即可。
Preemption Model
 1. No Forced Preemption (Server) (PREEMPT_NONE)

 2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)

 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT__LL) (NEW)

 4. Preemptible Kernel (Basic RT) (PREEMPT_RTB) (NEW)

 5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)

第五步 正式开始编译

这里可以根据自己的系统CPU核数选择对应的多线程数,这里有两个坑,编译内核所在位置一定要有超过30G,不然会内存不足,或者直接在一块空白移动硬盘上编译,这样保证成功性。

fakeroot make -j4 deb-pkg
这是一个非常漫长的过程,尤其是在Upboard上,需要大概四五个小时。

第六步 编译完毕后安装

编译完毕后会在编译路径的上一层路径生成一系列deb包,这个时候直接用下面命令全部安装

sudo dpkg -i *.deb
然后重启进行选择刚刚安装的rt5实时内核

第七步 验证

方式一:
uname -a ->会看到刚刚选择的内核
方式二:
cat /sys/kernel/realtime ->存在并且包含数字1

第八步 设置grub 默认内核启动

sudo vim /etc/default/grub
修改GRUB_DEFAULT=0 -> GRUB_DEFAULT="1>4"
第一个1 代表的是grub选择第二项 advanced options 第二个4 表示我们选择内核第四项,都是从0开始
这里如果不知道想选哪个内核编号可以使用如下命令进行查看:
cat /boot/grub/grub.cfg |grep menuentry
然后输入如下升级
sudo update-grub
如果没报错即可重启查看

最后 可能遇到问题和后续?

问题一,可能进不了grub?

答:这个时候直接注释/etc/default/grub 中的GRUB_HIDDEN_TIMEOUT=0,update-grub即可。

问题二,编译完毕后需要删除清除减小存储使用如下命令?

make mrproper

有一部分命令和图片没有更新,后续会更新进入这篇文档,欢迎大家交流学习。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值