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.pswp.cn/web/64962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64962.shtml
英文地址,請注明出處:http://en.pswp.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液晶顯示屏驅動函…