zynq操作系统:Linux打实时补丁preempt_rt

简介: Linux打实时补丁preempt_rt

1下载内核和补丁

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

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

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

下面以linux-4.14.0内核(xilinx)与patch-4.14.0-rt1.patch补丁为例进行说明。

2.打补丁

  将解压后的补丁放到解压后的内核文件夹里面

  patch -p1 < patch-4.14-rt1.patch

  patch -R -p1 < patch-4.14-rt1.patch(卸载补丁)

3.内核配置

  1.安装几个必要的套件

  sudo apt-get install libncurses5-dev flex bison

  2.然后设置内核抢占模式

  Preemption Model

  Fully Preemptible Kernel(Real-Time

config - Linux/arm 4.14.0 Kernel Configuration> Kernel Features -
- Kernel Features.
Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters are hotkeys. Pressing <Y>
includes<N> excludes, <M> modularizes features. Press <Esc><Esc> to exit,<?> for Help, </> for Search. Legend: [*] built-in []
↑(=)-
(4) Maximum number of CPUs(2-32)_ * _ Support for hot-pluggable CPUs
Support for the Arm Power State Coordination Interface (PSCI) Preemption Model (Fully Preemptible Kernel (RT)) ---> Timer frequency (100 Hz) --->
[ ] Compile the kernel in Thumb-2 mode
[*] Runtime patch udiv/sdiv instructions into aeabi {u}idiv().*_ Use the ARM EABI to compile the kernel
[] Allow old ABI binaries to run with this kernel (EXPERIMENTA[*] High Memory Support↓(+)
Select> < Exit >  < Help >  Save >  < Load >  
<
Hx--1024
.config - Linux/arm 4.14.0 Kernel Configuration→ Kernel Features
Preemption Model
Use the arrow keys to navigate this window or press the
hotkey of the item you wish to select followed by the <SPACE BAR>,Press <?> for additional information about this
()  No Forced Preemption (Server) 
() Voluntary Kernel Preemption (Desktop)
( ) Preemptible Kernel (Low-Latency Desktop)
Preemptible Kernel (Basic RT)(x) Fully Preemptible Kernel (RT)
Select> < Help >  
Hx--1024

  注意:由于Linux的版本不同,位置可能不一样,直接/在menuconfig里面不知道什么原因时搜索Preemption Model时搜不到的,怀疑没有编写进kconfig,所以可以查询到配置页面的kconfig文件,先判断有没有将执行语句编写进去,可以加一句容易搜索的测试用于定位

  vim Kconfig.preempt

5 1 config UCAS TEST
bool "ucas test" config PREEMPT NONE
bool "No Forced Preemption (Server)"
9
help
1日
This is the traditional Linux preemption model, geared towards throughput. It will still provide good latencies most of the time. but there are no auarantees and occasional lonaer delavs are possible.
14
5 Select this option if you are building a kernel for a server or 
26
scientific/computation system, or if you want to maximize the raw processing power of the kernel, irrespective of scheduling
18
10  latencies.  Hx--1024  

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

  make menuconfig

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

Device Drivers
Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus----). Highlighted letters are hotkeys. Pressing <Y>
includes,<N> excludes,<M> modularizes features. Press <Esc><Esc> to exit,<?> for Help,</> for Search. Legend: [*] built-in [ ]
A(a)-
[*] virtio drivers --->
Microsoft Hyper-V guest support ---> Xen driver support ---><M> Greybus support ---> i ] staging drivers ---.
.*. x86 Platform Specific Device Drivers --->
[1platform support for Goldfish virtual devices -...<M> platform support for chrome hardware (transitional)
<Select>  < Exit >  < Help >  < Save >  <Load >Hx--1024

  4.编译内核重启

root@zynq:~# cd root@zyng:/# ls
bin boot root@zyng:/# cd mnt dev etc home.lib media mnt proc run sbin
root@zynq:/mnt# ls
1.txt
root@zynq:/mnt# uname -r
4.14.0-rtl-xilinx
rootdzynq:/mnt# uname -a
Linuxzyng4.14.0-rt1-xilinx#1 SMP PREEMPT RT Fri Ju1 2319:40:37 PDT 2021 root@zynq:/mnt#
Xterm by subscribing to the professional edition here:http://mobaxterm.mobatek.net

  查看内核版本 妥了!



相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
21
分享
相关文章
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
【Linux】冯诺依曼体系与操作系统理解
本文深入浅出地讲解了计算机体系的两大核心概念:冯诺依曼体系结构与操作系统。冯诺依曼体系作为现代计算机的基础架构,通过中央处理器、存储器和输入输出设备协同工作,解决了硬件性能瓶颈问题。操作系统则是连接硬件与用户的桥梁,管理软硬件资源,提供运行环境。文章还详细解析了操作系统的分类、意义及管理方式,并重点阐述了系统调用的作用,为学习Linux系统编程打下坚实基础。适合希望深入了解计算机原理和技术内幕的读者。
97 1
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
81 18
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
97 10
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
212 1
Linux 操作系统
在 Linux 中,UID(用户 ID)是标识用户身份的重要概念。UID 唯一标识每个用户,通过 UID 可区分不同用户类别:UID 0 为超级用户,1-999 为系统用户,1000 及以上为普通用户。因此,正确选项为:UID 标识用户、可区分用户类别、普通用户 UID 大于 1000。
|
5月前
|
Linux 操作系统的诞生与发展历程
步探索与准备: 1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。通过学习,他逐渐不能满足于minix系统的现有性能,并开始酝酿开发一个新的免费操作系统。
169 8
Linux 操作系统的诞生与发展历程
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
323 10
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
799 23
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
245 2
OS Copilot-操作系统智能助手-Linux新手小白的福音
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问