0
点赞
收藏
分享

微信扫一扫

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

凉夜lrs 2022-01-05 阅读 79

(一)安装所需软件

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 1月   4 21:54 ./
drwxrwxr-x  4 edda edda      4096 1月   5 09:40 ../
drwxrwxr-x 27 edda edda      4096 1月   4 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 12月 17  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 条评论