linux作为一个通用操作系统,更注重综合的性能表现,对于一些系统响应时间确定性/实时性要求严格的场合并不能满足。为了在追求系统实时性的同时又能够利用到linux生态丰富的软件资源、我们可以从硬件、系统内核、系统配置、应用等各个层面对其进行优化。
这篇文章主要是关于如何为CentOS/Ubuntu更新为实时内核,网络上关于给内核打实时补丁和安装方面的文章可以搜索到很多,其过程大同小异,下面一张图汇总一些关键点。
编译安装
在完成编译后使用make install命令安装,其调用的链条就像下面这张图画的一样,会先到arch/x86/boot目录执行install.sh,然后到/sbin/顺序执行installkernel和new-pkg-install,在new-pkg-install中会使用dracut制作initramfs。
手动安装内核
通常make install之后新内核已经出现在grub的启动项,如果重启之后没有新内核启动项,可以查看/boot/grub2/grub.cfg,也可以使用grub2-mkconfig看看是否可以检测到有新内核。在检测不到的情况下可以自行添加启动项。
安装nvidia驱动
在linux安装nvidia驱动比较坑,需要先禁用nouveau驱动,再init 3进入命令行安装,如果系统有多个内核,每个版本的内核都需要安装。
在运行过nvidia-xxx.run之后,nvidia驱动的源码应该已经出现在/usr/src目录,进入nvidia根目录make->make modules_install,nvidia的几个文件就会安装到/lib/modules/$(uname -r)/kernel/driver/video路径下,之后使用dracut制作initramfs并cp到/boot路径,重启。