300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux 内核rt 给linux内核打实时补丁preempt_rt

linux 内核rt 给linux内核打实时补丁preempt_rt

时间:2020-04-18 03:42:05

相关推荐

linux 内核rt 给linux内核打实时补丁preempt_rt

下载内核和补丁

运行uname -a可以看到当前内核版本。

补丁地址: /pub/linux/kernel/projects/rt/ 从中选择一个与当前内核版本接近并且更新的补丁下载(系统启动时会自动选择版本更高的内核)

内核地址: /pub/linux/kernel/ 根据下载的补丁版本下载内核,内核版本要和补丁一致。

下面以linux-5.4.54内核与patch-5.4.54-rt32.patch补丁为例进行说明。

打补丁

$ sudo mkdir /usr/src/rt-preempt-linux

将下载的内核与补丁解压,先将解压后的补丁放到解压后的内核文件夹里面,然后再将内核文件夹放到刚创建的rt-preempt-linux文件夹里面。

$ sudo cp -r linux-5.4.54/ /usr/src/rt-preempt-linux/

然后运行以下命令打补丁。

$ cd /usr/src/rt-preempt-linux/linux-5.4.54

$ sudo patch -p1 < patch-5.4.54-rt32.patch

内核配置

继续在/usr/src/rt-preempt-linux/linux-5.4.54路径下执行指令

$ sudo make mrproper # 删除目录下残留的.o文件和其他从属文件

在boot文件夹下可以找到与当前内核版本匹配的config文件,例如:config-3.16.0-30-generic 。将其拷贝到当前目录/usr/src/rt-preempt-linux/linux-5.4.54 下并命名为.config。

$ sudo cp /boot/config-3.16.0-30-generic .config

安装几个必要的套件

$ sudo apt-get install libncurses5-dev flex bison

进入菜单配置界面,此时窗口必须足够大。

$ sudo make menuconfig

进入“General setup”

在"Preemption Model"中选择“Fully Preemptible Kernel(Real-Time)”

menuconfig_1.png

回到上一层,进入”Device Drivers”中,去掉“Staging drivers”

menuconfig_2.png

编译内核

下面的编译过程会比较费时,大约需要2个小时左右。

仍然在/usr/src/rt-preempt-linux/linux-5.4.54路径下执行指令

$ sudo make -jn

(n是要衍生的作业数,在实际中,每个处理器上一般衍生一个或两个作业。例如在一个双核处理器上可以使用$make -j4)

$ sudo make modules_install

$ sudo make install

$ cd /boot

$ sudo mkinitramfs -k -o initrd.img-5.4.54-rt32 5.4.54-rt32

最后重启就可以选择使用打过补丁的内核了,如果重启后找不到相应选项,再对/boot/grub/grub.cfg进行修改,修改方法可以上网查。

参考:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。