0
点赞
收藏
分享

微信扫一扫

编译安装linux内核+实时补丁

凉夜lrs 2022-01-05 阅读 77

(一)安装所需软件

sudo apt update
sudo apt install libncurses5-dev openssl libssl-dev build-essential pkg-config libc6-dev bison flex libelf-dev zlibc minizip libidn11-dev libidn11

(二)下载linux内核及实时补丁,版本必须对应。

下载实时内核补丁:patches-5.2.21-rt15.tar.gz

下载linux内核:linux-5.2.21.tar.gz

解压命令查看:https://blog.csdn.net/zlf19910726/article/details/122316448

(三)打实时补丁
 

#!/bin/sh
# patches.sh
cat ./patches/series | while read line
do
patch -p1 < ./patches/$line
done

gedit patches.sh

cp -R  ./patches ./patches.sh  ./linux-5.2.21/

cd ./linux-5.2.21/

sh ./patches.sh

(四)配置

查看帮助,注意不是make --help

make help

Now you can use this config as the default to configure the build:

make olddefconfig
make menuconfig

The second command brings up a terminal interface
in which you can configure the preemption model.
Navigate with the arrow keys to
General Setup > Preemption Model
and select Fully Preemptible Kernel (Real-Time).
[make olddefconfig]没有图形界面,
[make menuconfig]通过图形界面配置。
都选择完全抢占实时内核。其他默认。

(五)编译

首先运行

(1)fakeroot make -j4 deb-pkg

提示:如果编译结束后,给内核打deb格式包的时候报错:recipe for traget 'deb-pkg' failed.
则去到你现在编译这个目录下 ctrl+h 显示隐藏文件,
找到并且修改 .config 文件,
把 CONFIG_MODULE_SIG_ALL、CONFIG_MODULE_SIG_KEY、CONFIG_SYSTEM_TRUSTED_KEYS 三项注释掉,
编译时系统会自动生成一次性密钥来加密。
把 CONFIG_DEBUG_INFO=y 去掉,不然新内核带巨量debug信息占用硬盘磁盘空间。
重新运行 make -j4 deb-pkg,
注意命令前不加fakeroot,不加fakeroot,
不要使用sudo,不要使用sudo。

(2)make -j4 deb-pkg

最后,你已准备好安装新创建的包。
edda@edda-test:~/文档/zhenglf/kernel/5.2.21/linux-5.2.21$ ll ../
总用量 398208
drwxrwxr-x 4 edda edda 4096 14 21:54 ./
drwxrwxr-x 4 edda edda 4096 15 09:40 ../
drwxrwxr-x 27 edda edda 4096 14 21:51 linux-5.2.21/
-rw-rw-r-- 1 edda edda 5872 1月 4 21:54 linux-5.2.21-rt15_5.2.21-rt15-1_amd64.buildinfo
-rw-rw-r-- 1 edda edda 2935 1月 4 21:54 linux-5.2.21-rt15_5.2.21-rt15-1_amd64.changes
-rw-rw-r-- 1 edda edda 988483 1月 4 19:23 linux-5.2.21-rt15_5.2.21-rt15-1.diff.gz
-rw-rw-r-- 1 edda edda 1183 1月 4 19:23 linux-5.2.21-rt15_5.2.21-rt15-1.dsc
-rw-rw-r-- 1 edda edda 172577245 1月 4 19:17 linux-5.2.21-rt15_5.2.21-rt15.orig.tar.gz
-rw-rw-r-- 1 edda edda 164540395 12月 31 14:54 linux-5.2.21.tar.gz
-rw-r--r-- 1 edda edda 11494108 1月 4 21:52 linux-headers-5.2.21-rt15_5.2.21-rt15-1_amd64.deb
-rw-r--r-- 1 edda edda 56710580 1月 4 21:54 linux-image-5.2.21-rt15_5.2.21-rt15-1_amd64.deb
-rw-r--r-- 1 edda edda 1059968 1月 4 21:52 linux-libc-dev_5.2.21-rt15-1_amd64.deb
drwxrwxr-x 2 edda edda 28672 1217 2019 patches/
-rw-rw-r-- 1 edda edda 313902 1月 4 15:33 patches-5.2.21-rt15.tar.gz
-rw-rw-r-- 1 edda edda 97 1月 4 15:39 patches.sh
edda@edda-test:~/文档/zhenglf/kernel/5.2.21/linux-5.2.21$

(六)安装

sudo dpkg -i ../linux-headers-5.2.21-rt15_5.2.21-rt15-1_amd64.deb ../linux-image-5.2.21-rt15_5.2.21-rt15-1_amd64.deb

(七)修改grub
 

编辑/etc/default/grub文件,改动三处:

"GRUB_TIMEOUT_STYLE=hidden" 注释掉(在前面加上“#”)。

"GRUB_TIMEOUT" 的值改为“15”。

"GRUB_CMDLINE_LINUX_DEFAULT" 的值改为“text”。

sudo update-grub

(八)重新启动进入实时内核

重新启动后选择【高级选项】或者【Advaced options for Ubuntu】,选择相应的内核。

举报

相关推荐

0 条评论