我想激活Linux内核的PREEMPTion功能。要做到这一点,我应该下载匹配我正在使用的内核版本和我编译的正确补丁(如here所述)。我所拥有的内核版本是 Linux版本4.9.0 (只需从命令行输入uname -a
并在/proc/version
中双重检查。
在linux kernel页面(可以为此目的下载补丁的地方)我找不到我正在使用的完全匹配的版本。我应该使用哪一个?
此外,如果您对如何正确地做一些建议,我们将不胜感激!
我的另一个问题是:我是否可以继续使用我开发的相同应用程序,如果可能的话,改进或降低性能?那我正在开发的驱动程序呢?或第三部分设备驱动程序?
更新:
我正在使用配备四核ARM 53的Xilinx Zynq Ultrascale +。使用的主板是Xilinx的zcu102。
内核的源文件来自here,文件系统是Linaro
答案 0 :(得分:1)
答案 1 :(得分:1)
这是有关如何使用Petalinux 2019.1在ZCU102上安装PREEMPT_RT的信息:
从the Xilinx website下载并安装Petalinux 2019.1
创建项目:petalinux-create -t project -s xilinx-zcu102-v2019.1-final.bsp
将PREEMPT_RT补丁http://cdn.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patch-4.19-rt1.patch.gz解压缩到 project-spec / meta-user / recipes-kernel / linux / linux-xlnx / 目录
编辑文件 project-spec / meta-user / recipes-kernel / linux / linux-xlnx _%。bbappend 并添加
SRC_URI_append = " file://patch-4.19-rt1.patch"
确保在项目文件 project-spec / meta-user / conf / layer.conf
中,元用户层的优先级为7。配置项目:petalinux-config
配置内核以启用全面的抢先支持:petalinux-config -c kernel
内部版本:petalinux-build
生成BOOT.BIN文件:petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --u-boot images/linux/u-boot.elf