树莓派4B 安装preem-PT 实时系统那些坑

2023-11-05

拿到一个树莓派之后,最好uname -a ,看一下内核版本号,比如同样的树莓派4B ,不同出厂批次和时间,是有一定改动的,比如有些是4.14,4.19 ,而有些是5.4,5.15 等,较新的树莓派如果向下刷固件,比如用树莓派最新的4B 刷ubuntu18.04 ,会出现

解决方法可以参考:

树莓派 | “start4.elf: is not compatible” 问题解决_J1FengZ的博客-CSDN博客

但是,为了最大化树莓派的性能,自己选用了64bit 的raspiOS ,用树莓派官方刷机工具刷入最新的raspiOS , uname 内核版本是 5.15, 刷机完毕

二:安装实时内核补丁

目前,树莓派官方已经制作好两个版本的打入补丁的内核,需要我们下载下来交叉编译,省去了自己打补丁的步骤

内核地址/ 

 其他内核版本的暂时没有,所以得根据自己的系统内核,如果内核是4.14,4.19 ,32bit 系统那么恭喜,省略了打补丁步骤,可以直接参考如下网站:

四足机器人高算力、低成本主控第一步:给树莓派打上RT实时补丁

Raspberry Pi 4B: Real-Time System using Preempt-RT (kernel 4.19.y) - LeMaRiva Tech

但是,如果内核不是这两个,需要自己打补丁了,推荐使用64bit OS ,充分发挥硬件能力

详细步骤参考如下:

64bit RT Kernel Compilation for Raspberry Pi 4B . : 5 Steps - Instructables

注意:在这个步骤:

一定一定要选择自己的系统内核号,否则不兼容,导致开机卡在树莓LOGO 界面。

比如,我选择的是:

git clone ttps://github.com/raspberrypi/linux.git -b rpi-5.15.y

而补丁网站:

Index of /pub/linux/kernel/projects/rt/

选择自己的补丁型号:

 

wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.15/older/patch-5.15.36-rt41.patch.gz

编译方式是交叉编译;

补丁打入完成,开机,uname -a,那么自己系统的实时内核就可以用了

如果不想交叉编译,直接使用编译好的内核,可以从这下载:

链接:https://pan.baidu.com/s/1WyB3VfRSWjvDsd7IUVWICA 
提取码:7zg2

 

注意到: 树莓派通常支持两种实时内核方法,一种preemPT, 另一种是 xenomai,

关于这两个系统介绍,可以参考,

本文位草稿,继续填坑中

想要在preemPT 上创建高精度定时器,请参考linux posix 编程。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派4B 安装preem-PT 实时系统那些坑 的相关文章

  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • linux命令中括号的用途是什么[重复]

    这个问题在这里已经有答案了 我在 Linux 终端中运行以下命令 谁能告诉我 Linux 终端中括号和以下命令的用途是什么 echo GET HTTP 1 0 echo 主机 www google com echo 数控 www googl
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那

随机推荐

  • 史上最全 App功能测试点分析

    1 2测试周期 测试周期可按项目的开发周期来确定测试时间 一般测试时间为两三周 即 15个工作日 根据项目情况以及版本质量可适当缩短或延长测试时间 正式测试前先向主管确认项目排期 1 3测试资源 测试任务开始前 检查各项测试资源 产品功能需
  • [k8s]笔记01

    1 k8s是什么 k8s是一套自动化容器运维的开源平台 2 k8s可以做什么 能在物理机或虚拟集群上调度和运行程序容器 快速精准地部署应用程序 即时伸缩应用程序 无缝展现新特征 限制硬件用量仅为所需资源 3 k8s概念 1 Cluster集
  • java8新特性从入门到应用 第二章 Streams数据流

    java8新特性从入门到应用 第二章 Stream 数据流 特点介绍 Stream组成 源 中间操作 筛选与切片 映射 排序 Stream的终止操作 查找与匹配 归约 收集 Collector 接口API 此流非彼流 估计第一眼看到这个标题
  • springboot定时任务出错 Unexpected use of scheduler.

    最近在使用springboot的定时器写定时任务时 项目启动就会报以下的错误 java lang IllegalStateException Unexpected use of scheduler 困扰了很久 因为以前也写过定时器 但没遇到
  • 北大硕士7年嵌入式学习经验分享

    大家现在状态是怎么样的 这几年技术进步怎么样 职场晋升 管理水平有没有提升 欢迎留言 本文内容来自于知乎 觉得内容很不错 分享给大家 下文的我代表的是原作者 作者 梦人亦冷 链接 https www zhihu com question 3
  • ip地址0.0.0.0与127.0.0.1的区别

    最近在项目开发中发现一个奇怪的问题 当服务器与客户端在同一台机器上时 用服务器ip 本地主机ip 192 168 1 xxx 127 0 0 1以及0 0 0 0都能登陆服务器 于是找点资料研究一下 其实 最开始是发现服务器ip填0能登陆成
  • MyBatis框架搭建及教程(详解)

    MyBatis文章目录 Mybatis框架的搭建以及使用教程 目录 简介 一 MyBatis框架搭建步骤 1 1 配置XML 1 2 编写MyBatis框架核心配置文件 1 3 创建实体类 1 4 创建Mapper接口 1 5 创建SQL映
  • doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析

    原创转载请注明出处 源码版本 5 7 14 在MYSQL使用innodb的时候我们有时候会看到如下报错 ERROR 1146 42S02 Table test test1bak doesn t exist 首先总结下原因 缺少frm文件 i
  • Mybatis映射文件中动态sql语句

    目录 Mybatis映射文件深入 动态sql语句 官方文档中动态sql 动态SQL之if 测试示例if 动态sql之foreach 测试示例foreach sql片段的抽取 Mybatis映射文件深入知识小结 Mybatis映射文件深入 动
  • 分段,分页与段页式存储管理

    一 分页存储管理 1 基本思想 用户程序的地址空间被划分成若干固定大小的区域 称为 页 相应地 内存空间分成若干个物理块 页和块的大小相等 可将用户程序的任一页放在内存的任一块中 实现了离散分配 1 等分内存 页式存储管理将内存空间划分成等
  • Go 定时器(timer)

    创建一个定时器 package main import fmt time func main timer time NewTimer time Second 3 3秒定时器 fmt Printf timertype timer fmt Pr
  • Mysql 8配置驱动

    1 依赖的注入 spring datasource url jdbc mysql localhost 3306 你的数据库名 useUnicode true characterEncoding utf 8 serverTimezone As
  • SpringBoot中的注解@SpringBootApplication和(@Configuration......)

    以下选自官方的文档 这里写链接内容 Many Spring Boot developers always have their main class annotated with Configuration EnableAutoConfig
  • Ping报文分析

    打开Windows虚拟 执行ipconfig的操作 用Kali执行Ping操作 并用Kali自带wireshark分析 可以看到Ping报文发送的是ICMP数据报文 通过网上查阅资料可知 ICMP报头格式 ICMP报文包含在IP数据报中 I
  • yolov5使用

    参考网址 https zhuanlan zhihu com p 501798155 源码下载及使用 release下载source及pt文件 yolov5s pt https github com ultralytics yolov5 ta
  • c# 连接Oracle数据库必须安装客户端吗

    以下方案在oracle9 10上测试通过 其他版本恕不一一测试 复制以下几个文件 从oracle xe 10g中提取的 到应用程序根目录即可 若有使用tns 请再建立tnsnames ora文件 oci dll ociw32 dll ora
  • 【Excel VBA】得到最后数据的行数

    纲举目张 得到最后数据的行数 说明 代码 code 解析 拓展 得到最后数据的行数 说明 在编写代码时我们时常用到的是 取得数据表的最后一行数据所在的行号 这样在编写循环语句时就不用猜着自定义终止值 代码 code Dim FinalRow
  • Vue 的实用开发技巧

    文章目录 v for 中使用 key 何时使用何种key 所以使用 index 作为 key 需要满足 哪何时使用 id 作为 key 呢 v if v else if v else 中使用 key 使用条件 例子 v for 和 v if
  • 共享DLL中使用MFC 和在静态库中使用MFC

    使用VS2008 在项目属性中有一项MFC的使用 有三种设置 1 使用标准Windows库 2 在共享DLL中使用MFC 3 在静态库中使用MFC 第一种顾名思义 第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中 所以EX
  • 树莓派4B 安装preem-PT 实时系统那些坑

    拿到一个树莓派之后 最好uname a 看一下内核版本号 比如同样的树莓派4B 不同出厂批次和时间 是有一定改动的 比如有些是4 14 4 19 而有些是5 4 5 15 等 较新的树莓派如果向下刷固件 比如用树莓派最新的4B 刷ubunt