petalinux2017.4对linux4.9.0打实时补丁

准备工作:

1.windows:安装vivado 2017.4,xilinx sdk 2017.4

2.ubuntu16.04:安装petalinux 2017

3.黑金ax7020,sd卡

一、准备linux内核的操作系统

1.1 Petalinux配置

Petalinux使用教程-CSDN博客非常详细,可以参考

 1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件,将*.sdk 文件夹复制到 ubuntu 系统下,给 petalinux 使用。;

2. 运行 source <petalinux 安装路径>/settings.sh,设置 Petalinux 运行环境

source /opt/pkg/petalinux/2018.3/settings.sh

3. 通过 petalinux-create -t project 创建 petalinux 工程;

petalinux-create -t project --template zynq -n <proj_name>

<proj_name>改成工程名

4. 将 hdf 文件导入到 petalinux 工程当中并配置 petalinux 工程;

 petalinux-config --get-hw-description <hdf文件路径>

5. 配置 Linux 内核;

petalinux-config -c kernel 

6. 配置 Linux 根文件系统;

petalinux-config -c rootfs

7. 配置设备树文件;

我的是黑金AX7020开发板,修改四个网口:

/include/ "system-conf.dtsi"/ {model = "Zynq ALINX Development Board";compatible = "alinx,axi eth", "xlnx,zynq-7000";usb_phy0: usb_phy@0 {compatible = "ulpi-phy";#phy-cells = <0>;reg = <0xe0002000 0x1000>;view-port = <0x0170>;drv-vbus;};};&usb0 {	usb-phy = <&usb_phy0>;
};&sdhci0 {u-boot,dm-pre-reloc;
};&uart1 {u-boot,dm-pre-reloc;
};&flash0 {compatible = "micron,m25p80", "w25q256", "spi-flash";
};&gem0 {phy-handle = <&ethernet_phy>;ethernet_phy: ethernet-phy@1 {reg = <1>;device_type = "ethernet-phy";};
};&axi_ethernet_0 {local-mac-address = [00 0a 35 00 03 22];  phy-handle = <&phy1>; xlnx,has-mdio = <0x1>;  phy-mode = "rgmii";  mdio {  phy1: phy@1 {  device_type = "ethernet-phy";  reg = <1>;  };};		
};&axi_ethernet_1 {local-mac-address = [00 0a 35 00 03 23];  phy-handle = <&phy2>; xlnx,has-mdio = <0x1>;  phy-mode = "rgmii";  mdio {  phy2: phy@1 {  device_type = "ethernet-phy";  reg = <1>;  };};		
};&axi_ethernet_2 {local-mac-address = [00 0a 35 00 03 24];  phy-handle = <&phy3>; xlnx,has-mdio = <0x1>;  phy-mode = "rgmii";  mdio {  phy3: phy@1 {  device_type = "ethernet-phy";  reg = <1>;  };};		
};&axi_ethernet_3 {local-mac-address = [00 0a 35 00 03 25];  phy-handle = <&phy4>; xlnx,has-mdio = <0x1>;  phy-mode = "rgmii";  mdio {  phy4: phy@1 {  device_type = "ethernet-phy";  reg = <1>;  };};		
};

8. 编译整个工程;

petalinux-build 

该命令将生成设备树 DTB 文件、fsbl 文件、U-Boot 文件,Linux 内核和根文件系统映像。

编译完成后,生成的映像将位于工程的 images 目录下。

9. 使用 petalinux-package --boot 制作 BOOT.BIN 启动文件;

petalinux-package --boot --fsbl --fpga --u-boot --force

若出现fsbl后找不到文件,添加/images/linux下的fsbl文件

二、对linux4.9.0打实时内核补丁Preempt-RT

2.1 下载实时补丁

下载linux内核对应版本的实时补丁,例如我的linux内核为4.9.0,下载补丁为patch-4.9-rt1.patch.xz

https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patch-4.9-rt1.patch.xz

2.2 对内核源码打补丁

将petalinux工程类似目录下的内核文件拷贝出来到桌面

 内核源码对应kernel-source

​​

将补丁文件patch-4.9-rt1.patch.xz拷贝到桌面上的kernel-source文件夹内部,执行命令

xzcat ./patch-4.9-rt1.patch.xz | patch -p1

执行完成,无报错即可

2.3 重新执行内核配置

回到petalinux工程目录执行

petalinux-config -c kernel

若有问题,回到第一节激活petalinux环境

按照下面的目录找到General setup中选择Preemption model,并更改选项为如下,保存。

三、启动有实时补丁的linux内核

发现有PREEMPT 字样

本文有参考

在Petalinux中加入Real-time 补丁

ALinx 7010使用PetaLinux(2021.2)+Preempt-RT构建实时平台_petalinux2021.2教程-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven 教程之 pom.xml 详解

Maven 教程之 pom.xml 详解 pom.xml 简介 什么是 pom POM 是 Project Object Model 的缩写,即项目对象模型。 pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。 pom 配置一览 <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi

Golang的缓存一致性策略

Golang的缓存一致性策略 一致性哈希算法 在Golang中&#xff0c;缓存一致性策略通常使用一致性哈希算法来实现。一致性哈希算法能够有效地解决缓存节点的动态扩容、缩容时数据重新分布的问题&#xff0c;同时能够保证数据访问的均衡性。 一致性哈希算法的核心思想是将节点的哈希…

【机器学习:一、机器学习简介】

机器学习是当前人工智能领域的重要分支&#xff0c;其目标是通过算法从数据中提取模式和知识&#xff0c;并进行预测或决策。以下从 机器学习概述、有监督学习 和 无监督学习 三个方面进行介绍。 机器学习概述 机器学习定义 机器学习&#xff08;Machine Learning&#xff0…

蓝桥杯JAVA--003

需求 2.代码 public class RegularExpressionMatching {public boolean isMatch(String s, String p) {if (p.isEmpty()) {return s.isEmpty();}boolean firstMatch !s.isEmpty() && (s.charAt(0) p.charAt(0) || p.charAt(0) .);if (p.length() > 2 && p…

被催更了,2025元旦源码继续免费送

“时间从来不会停下&#xff0c;它只会匆匆流逝。抓住每一刻&#xff0c;我们才不会辜负自己。” 联系作者免费领&#x1f496;源&#x1f496;码。 三联支持&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 更多内容敬请期待。如有需要源码可以联系作者免…

WebRTC的线程事件处理

1. 不同平台下处理事件的API&#xff1a; Linux系统下&#xff0c;处理事件的API是epoll或者select&#xff1b;Windows系统下&#xff0c;处理事件的API是WSAEventSelect&#xff0c;完全端口&#xff1b;Mac系统下&#xff0c;kqueue 2. WebRTC下的事件处理类&#xff1a; …

关于Zotero

1、文献数据库&#xff1a; Zotero的安装 Zotero安装使用_zotero只能安装在c盘吗-CSDN博客 2、如何使用zotero插件 我刚下载的时候就结合使用的是下面的这两个博主的分享&#xff0c;感觉暂时是足够的。 Zotero入&#x1f6aa;基础 - 小红书 Green Frog申请easyscholar密钥…

企业三要素如何用PHP实现调用

一、什么是企业三要素&#xff1f; 企业三要素即传入的企业名称、法人名称、社会统一信用代码或注册号&#xff0c;校验此三项是否一致。 二、具体怎么样通过PHP实现接口调用&#xff1f; 下面我们以阿里云为例&#xff0c;通过PHP示例代码进行调用&#xff0c;参考如下&…

Go 语言中强大的配置管理库—Viper

Viper 是 Go 语言中强大的配置管理库&#xff0c;广泛用于云原生和微服务开发中。它支持多种配置文件格式&#xff08;如 YAML、JSON、TOML 等&#xff09;、环境变量、命令行参数以及远程配置管理。 Viper 的主要功能 1. 支持多种格式的配置文件&#xff1a; • YAML、JSON…

鸿蒙-封装loading动画

import { AnimatorOptions, AnimatorResult } from "kit.ArkUI" export enum SpinImageType { RedLoading, WhiteLoading } Component export struct SpinImage { Prop type?: SpinImageType Prop url?: string State animatedValue: number 0 …

今日复盘103周五(189)

1、早上&#xff0c;看了一下二手书里的十种主要游戏类型的相关内容。 其实收获不大&#xff0c;主要是引发思考。 2、白天&#xff0c;持续多日的模式1的白模原型关卡结束&#xff0c;开始转做准正式资源的关卡&#xff0c; 但进度低于预期。 并不是改改参数那么简单轻松&a…

OJ随机链表的复制题目分析

题目内容&#xff1a; 138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a; 这道题目&#xff0c;第一眼感觉非常乱&#xff0c;这是正常的&#xff0c;但是我们经过仔细分析示例明白后&#xff0c;其实也并不是那么难。现在让我们一起来分析分析…

uc/os-II 原理及应用(一) 嵌入式实时系统基本概念

基于嵌入式实时操作系统μCOS-II原理及应用(第2版)-任哲 自行网上寻找资源。 计算机系统的中分为计算机硬件系统与计算机软件系统&#xff0c;计算机软件系统由上到下分为&#xff0c;应用软件&#xff0c;系统软件&#xff0c;操作系统;操作系统一般在计算机软件的最低层&…

C++ 并发专题 - std::promise 和 std::future 介绍

一&#xff1a;概述 std::promise 和 std::future 是C标准库的两种工具&#xff0c;主要用于实现线程之间的异步通信。它们属于C并发库的一部分&#xff0c;提供了一种安全&#xff0c;优雅的方式来在线程之间传递结果或状态。 二&#xff1a;std::promise 介绍 std::promise …

【Multisim用74ls92和90做六十进制】2022-6-12

缘由Multisim如何用74ls92和90做六十进制-其他-CSDN问答 74LS92、74LS90参考

【UE5 C++课程系列笔记】21——弱指针的简单使用

目录 概念 声明和初始化 转换为共享指针 打破循环引用 弱指针使用警告 概念 在UE C 中&#xff0c;弱指针&#xff08;TWeakPtr &#xff09;也是一种智能指针类型&#xff0c;主要用于解决循环引用问题以及在不需要强引用保证对象始终有效的场景下&#xff0c;提供一种可…

数据库知识汇总2

一. 范式 定义&#xff1a;范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式&#xff1b; 一个低一级范式的关系模式&#xff0c;通过模式分解&#xff08;schema decomposition&#xff09;可以转换为若干个高一…

C# 设计模式(结构型模式):桥接模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;桥接模式 在软件设计中&#xff0c;我们经常会遇到系统的变化频繁&#xff0c;或者需要灵活扩展功能的场景。这时&#xff0c;桥接模式&#xff08;Bridge Pattern&#xff09;便显得尤为重要。桥接模式是一个结构型…

Flash Attention V3使用

Flash Attention V3 概述 Flash Attention 是一种针对 Transformer 模型中注意力机制的优化实现&#xff0c;旨在提高计算效率和内存利用率。随着大模型的普及&#xff0c;Flash Attention V3 在 H100 GPU 上实现了显著的性能提升&#xff0c;相比于前一版本&#xff0c;V3 通…

【51单片机零基础-chapter6:LCD1602调试工具】

实验0-用显示屏LCD验证自己的猜想 如同c的cout,前端的console.log() #include <REGX52.H> #include <INTRINS.H> #include "LCD1602.h" int var0; void main() {LCD_Init();LCD_ShowNum(1,1,var211,5);while(1){;} }实验1-编写LCD1602液晶显示屏驱动函…