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 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
16天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
43 1
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
59 0
Vanilla OS:下一代安全 Linux 发行版
|
18天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
18天前
|
搜索推荐 Linux
深入理解Linux操作系统的启动过程
本文旨在揭示Linux操作系统从开机到完全启动的神秘面纱,通过逐步解析BIOS、引导加载程序、内核初始化等关键步骤,帮助读者建立对Linux启动流程的清晰认识。我们将探讨如何自定义和优化这一过程,以实现更高效、更稳定的系统运行。
|
16天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
17天前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
19天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
22天前
|
消息中间件 安全 Linux
深入探索Linux操作系统的内核机制
本文旨在为读者提供一个关于Linux操作系统内核机制的全面解析。通过探讨Linux内核的设计哲学、核心组件、以及其如何高效地管理硬件资源和系统操作,本文揭示了Linux之所以成为众多开发者和组织首选操作系统的原因。不同于常规摘要,此处我们不涉及具体代码或技术细节,而是从宏观的角度审视Linux内核的架构和功能,为对Linux感兴趣的读者提供一个高层次的理解框架。
|
23天前
|
人工智能 安全 Linux
Linux操作系统的演变与未来趋势###
本文深入探讨了Linux操作系统从诞生至今的发展历程,分析了其开源模式对技术创新和IT行业的影响,并展望了Linux在未来技术生态中的角色。通过历史回顾、现状分析和未来预测,本文旨在为读者提供一个关于Linux操作系统全面而深入的视角。 ###
|
23天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
29 2