关于RK3568 Linux内核打实时补丁RT Preempt介绍

【前言】在工业产品中使用操作系统,一般都需要使用实时性较强的操作系统,而众所周知,linux系统是基于时间片划分的非实时系统,其实时性难以满足工业化对时效性的要求,因此很多应用场景中无法使用linux操作系统。当然这一局限性已经有所改善,目前linux社区已经增加了众多版本的实时补丁,只要给linux内核打上实时补丁,其实时性会得到大幅度提升。“实时补丁”的主要工作就是针对Linux系统的优先级倒置、自旋锁等问题进行改进,以达到实时操作系统的要求。

1、环境说明

1.1、硬件平台:M3568-4GF16GLI-T(RK3568)

1.2、Linux内核版本:Linux4.19.193

2、下载RT Preempt补丁

Index of /pub/linux/kernel/projects/rt/icon-default.png?t=N7T8https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/

根据实际的Linux内核版本下载对应的RT Preempt补丁。博主使用的Linux内核版本为4.19.193,故在这里我们下载的补丁文件为:patch-4.19.193-rt81.patch.gz。(当然也可以下载其它压缩格式的文件)

3、打补丁操作

3.1、解压补丁包

输入以下命令解压你刚下载的补丁包:

        gunzip patch-4.19.193-rt81.patch.gz

3.2、将RT补丁打进内核文件

将解压出来的补丁文件patch-4.19.193-rt81.patch.gz复制到SDK包中的kernel目录中。

随后执行如下指令:

sudo patch -p1 < patch-4.19.193-rt81.patch

至此完成打补丁工作。

注意:直接从官网下载的补丁包,打入RK3568内核后,会出现很多错误,其原因是有些修改并未patch进内核源码中,详情请参见第6节。

4、配置并编译Linux内核

在kernel目录下,执行make ARCH=arm64 menuconfig 进入内核menuconfig菜单执行前需保证内核根目录下的.config是arm64架构

进入   > General setup > Preemption Model

选择   (X) Fully Preemptible Kernel (RT) 

保存配置文件。

执行make ARCH=arm64 savedefconfig,导出配置文件,其命名为defconfig,用defconfig文件复制至arch/arm64/configs/rockchip_linux_defconfig文件(此处要根据你的实际情况去替换,博主的内核配置文件为arch/arm64/configs/rockchip_linux_defconfig)。

使用 ./build.sh kernel指令去编译内核。(瑞芯微官方提供的内核编译脚本)

5、测试linux的实时性

前面我们已经生成了实时的linux内核镜像,接下来我们把实时内核烧写到开发板上,进行实时性性能测试。这里需要引入一个测试linux性能的工具cyclictest。

5.1、获取cyclict

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值