当前位置: 首页 > news >正文

【Linux】PetaLinux开发

使用Xilinx的PetaLinux工具编译用于Zynq7020的Linux.

部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    一般开发流程

2    离线编译过程

3    系统根文件系统的配置:

4    常用Petalinux设置

5    各步操作可生成的文件

5.1    编译任意东西

5.2    编译bootloader

5.3    编译U-Boot

5.4    编译设备树

5.5    打包boot

6    设置Flash启动

7    错误解决

7.1    Bitbake Server错误

7.2    Bitbake Fetch错误

7.3    空间不足错误

7.4    启动时Kernel panic

7.5    启动时卡在等待root device附近

7.6    共享文件夹文件nobody权限的问题(VirtualBox相关)

7.7    编译到某步骤就卡住

7.8    Flash相关

7.8.1    vitis无法写入

7.8.2    Flash无法加载

7.8.3    无法加载内核


1    一般开发流程

        一般的设计流程如下:

        1.通过Vivado创建硬件平台,得到xsa文件;

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

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

        4.使用petalinux-config --get-hw-description,将xsa文件导入到petalinux工程当中并配置petalinux工程;

        5.使用petalinux-config -c kernel配置Linux内核,默认情况下会在线下载文件编译,如下图。

        2023.1版本的PetaLinux的默认Linux内核为6.1.5,一般不要手动更改内核版本,不过这也比较困难。

        关于离线编译和修改内核,可以参考:使用Petalinux定制Linux系统 — ZYNQ 7000开发平台FPGA教程 1.0 文档https://ax7020-20231-v101.readthedocs.io/zh-cn/latest/7020_S4_RSTdocument_CN/05_%E4%BD%BF%E7%94%A8Petalinux%E5%AE%9A%E5%88%B6Linux%E7%B3%BB%E7%BB%9F_CN.html        6.使用petalinux-config-c rootfs配置Linux根文件系统,一般不需要修改;

        7.配置设备树文件;

        8.使用petalinux-build编译整个工程;

        编译过程也需要连接网络:

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

        10.制作SD启动卡,将BOOT.BIN和image.ub以及根文件系统部署到SD卡中;

        11.将SD卡插入开发板,并将开发板启动模式设置为从SD卡启动;

        12.开发板连接串口线并上电启动,串口上位机打印启动信息,登录进入Linux系统。


2    离线编译过程

        (1)到Xilinx官网下载arm sstate-cache和Downloads;

        (2)petalinux-config -> Yocto Settings -> 

                ① 取消Enable Network sstate feeds(可不取消,有时候还是得联网);

                ② 使能Enable BB NO NETWORK;

                ③ Local sstate feeds settings -> 改为arm sstate-cache解压后的路径;

                ④ Add pre-mirror url -> 改为file://<Downloads解压后的路径>;


3    系统根文件系统的配置:

        INITRD 类型的根文件系统每次重新启动 linux 系统都是全新的、未改动过的,也就是说启动系统后进行的所有修改掉电后就全部丢失了,再次重新启动还是之前未修改过的根文件系统,选择“EXT4”可以将根文件系统放在 SD 卡、eMMC 的 ext4 分区,这样启动系统后进行的所有修改掉电后就不会丢失了。

        petalinux-config --get-hw-description [xsa_dir]

        Image Packaging Configuration  --->  Root filesystem type

        

        Petalinux的EXT4模式的硬盘挂载情况:

        PetaLinux的INITRD模式下的硬盘挂载情况:


相关文章:

【Linux】PetaLinux开发

使用Xilinx的PetaLinux工具编译用于Zynq7020的Linux. 部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 一般开发流程 2 离线编译过程 3 系统根文…...

【计算机网络网络层深度解析】从IP协议到路由优化

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心实验实现实验1&#xff1a;IPv6地址配置实验2&#xff1a;OSPF路由配置实验3&#xff1a;NAT转换验证 运行…...

第 12 届蓝桥杯 C++ 青少组中 / 高级组省赛 2021 年真题

一、选择题 第 1 题 题目:下列符号中哪个在 C++ 中表示行注释 ( )。 A. ! B. # C. ] D. // 正确答案:D 答案解析: 在 C++ 中,//用于单行注释(行注释),从//开始到行末的内容会被编译器忽略。选项 A(!)、B(#)、C(])均无注释功能,其中#常用于预处理指令(如#inclu…...

【quantity】5 derive_more库 2.0 版介绍

derive_more 是一个 Rust 过程宏库&#xff0c;旨在通过派生宏自动生成常见 trait 的实现&#xff0c;减少样板代码。2.0 版本带来了多项改进和新特性。 主要特性 1. 支持的 Trait 派生 derive_more 2.0 支持派生以下 trait&#xff1a; 基本操作 trait: Display - 格式化显…...

Qt编译报错:Unexpected compiler version, expected Clang 18.0.0 or newer——Qt安装MSVC编译器

截止到本人所使用的Qt6.6.3为止&#xff0c;Qt尚不支持MSVC2022编译器的默认编译器配制。所以&#xff0c;在Qt构建套件中使用MSVC编译器的话&#xff0c;可能仍需要调整Visual Studio版本&#xff0c;或者手动设置MSVC编译器。 如果你的系统安装的是Visual Studio2022&#x…...

(转)角色与动画的性能优化 | UnrealFest演讲干货

八、蓝图 8.1. Tick 优化的重点关注对象——Tick事件。在不需要的情况下&#xff0c;请默认关闭Tick。 在蓝图中Actor上关掉还不行&#xff0c;Component也需要关掉。 在CPP中&#xff0c;我们可以从PrimaryActorTick或PrimaryComponentTick中关闭Tick。 如果需要Tick&…...

小程序云开发-环境配置

如果点 云开发 没有反应&#xff0c;需要修改软件安装目录不要有中文&#xff0c;但软件名可以是中文&#xff1a; 首次使用&#xff0c;会送1个月的云开发&#xff0c;配置后要等10分钟以后&#xff0c;才可以使用 如果不能选择环境&#xff0c;关掉重新打开一次。 然后记…...

【c++】【STL】priority_queue详解

目录 priority_queue的作用priority_queue的接口构造函数emptysizetoppushpopswap priority_queue的实现仿函数&#xff08;函数对象&#xff09;是什么&#xff1f;向上调整算法&#xff08;adjustup&#xff09;向下调整算法&#xff08;adjustdown&#xff09;迭代器构造pus…...

C语音中的三元运算符

一、三元运算符的基本语法​ 三元运算符&#xff0c;也被称为条件运算符&#xff0c;是 C 语言中唯一有三个操作数的运算符。它的语法格式为&#xff1a;condition ? expression1 : expression2。从语法结构可以看出&#xff0c;三元运算符由一个条件表达式和两个普通表达式组…...

C++模板知识

目录 引言 一、非类型模板参数 二、类模板的特化 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;函数模板特化 &#xff08;三&#xff09;类模板特化 1. 全特化 2. 偏特化 &#xff08;四&#xff09;类模板特化应用示例 三、模板的分离编译 …...

MCP 探索:微软 Microsoft MarkItDown MCP ,可把 Word、Excel 等转换成 MarkDown 格式

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 MCP 探索:微软 Microsoft MarkItDown MCP ,可把 Word、Excel 等转换成 MarkDown 格式…...

文本中地理位置提取方法—正则和NLP模型

这里写目录标题 一、提取地址列后12个字二、正则表达式删除不需要的文本三、保留关键字并删除之后的字四、相似度计算&#xff0c;查重五、去重 大量的文本中识别数据&#xff0c;要充分考虑效率和准确率。本文的方案是通过正则和NLP门址模型联合识别的方案。 首先利用现有粗略…...

AI大模型-RAG到底能做些什么?

RAG常见的应用场景&#xff0c;有以下几个方面&#xff1a; 1.智能客服系统&#xff1a;比如电商领域&#xff0c;对客户提出的常见问题&#xff0c;进行自动回复。减少人力成本。 2.人力资源管理&#xff1a;一个新的员工&#xff0c;入职一家大型公司&#xff0c;公司中有各…...

【算法基础】冒泡排序算法 - JAVA

一、算法基础 1.1 什么是冒泡排序 冒泡排序是一种简单直观的比较排序算法。它重复地走访待排序的数列&#xff0c;依次比较相邻两个元素&#xff0c;如果顺序错误就交换它们&#xff0c;直到没有元素需要交换为止。 1.2 基本思想 比较相邻元素&#xff1a;从头开始&#xf…...

Nginx搭建test服务器

创建test域名 进入阿里云添加解析 创建域名&#xff1a;test.xxxxx.com 服务器复制项目代码 新建目录&#xff0c;Git拉取项目代码&#xff0c;安装上插件包 修改配置文件&#xff0c;启动测试服务 修改配置文件“服务器接口” 开启服务pm2 start app.js --name "t…...

依赖倒置原则

当然可以&#xff01;这次我们来详细讲解 依赖倒置原则&#xff08;DIP: Dependency Inversion Principle&#xff09;&#xff0c;它是 SOLID 五大设计原则中的压轴&#xff0c;也是最关键的“架构型原则”。 我将从&#xff1a; 什么是依赖倒置原则&#xff08;定义&#x…...

PostgreSQL 的 VACUUM 与 VACUUM FULL 详解

PostgreSQL 的 VACUUM 与 VACUUM FULL 详解 一、基本概念对比 特性VACUUMVACUUM FULL定义常规维护操作&#xff0c;清理死元组激进重组操作&#xff0c;完全重写表数据锁级别不阻塞读写(共享锁)排他锁(阻塞所有操作)空间回收只标记空间为可用&#xff0c;不返还OS空间返还操作…...

SQL面试题——留存分析之使用bitmap 计算留存

使用bitmap 计算留存 之前我们说过,留存分析其实在企业数据分析中,是很基础但是也很重要的,留存分析可以反映产品的发展是否健康,是否可持续发展,之前我们介绍过,可以看看之前的文章 SQL面试题——留存分析 因为使用工具的限制,所以我们实现方式也会有所不同,之前我们…...

P2415集合求和 题解

P2415 集合求和 题解 公式推导&#xff1a; 设集合有 n 个元素&#xff0c;记为 a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1​,a2​,…,an​。 每个子集要么包含某个元素&#xff0c;要么不包含。 我们固定某个元素 a k a_k ak​&#xff0c;再从剩下的 n − 1 n -…...

【2025年五一数学建模竞赛】C题 完整论文 模型建立与求解

目录 2025年五一数学建模竞赛 C题完整论文&#xff1a;建模与求解 Matlab代码一、问题重述二、模型假设与符号说明2.1 模型基本假设2.2 符号说明 问题一&#xff1a;预测博主新增关注数问题二&#xff1a;预测用户的新关注行为问题三&#xff1a;预测用户在线状态及互动博主问题…...

wpf 输入框 在输入时去除水印

wpf ScrollViewer 在输入数据时去除水印 在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;ScrollViewer控件通常用于显示滚动内容。如果你想在ScrollViewer中使用数据输入&#xff08;例如文本输入&#xff09;&#xff0c;并且希望在输入时去除水…...

数字智慧方案5857丨智慧机场解决方案与应用(53页PPT)(文末有下载方式)

资料解读&#xff1a;智慧机场解决方案与应用 详细资料请看本解读文章的最后内容。 随着科技的飞速发展&#xff0c;智慧机场的建设已成为现代机场发展的重要方向。智慧机场不仅提升了旅客的出行体验&#xff0c;还极大地提高了机场的运营效率。本文将详细解读沃土数字平台在…...

C语言-指针(二)

一级指针 一级指针指的是存储了变量地址的指针 一级指针的变量类型是 类型 * 一级指针的类型与变量的类型有些不同 例&#xff1a;int * p 前面的int * 是该地址的类型 int a 0; int * p a; 这里的指针 p 就是一级指针 二级指针 指针变量也是变量因此也会有地…...

React 组件prop添加类型

给函数的props做注解 import { useState } from reacttype Props { className:string,title?:string } // 自定义一个Button组件 function Button(props:Props){// 解构出classname\const {className} propsreturn <button className{className}>点击我</button&g…...

Spring Boot中集成Guava Cache或者Caffeine

一、在Spring Boot(1.x版本)中集成Guava Cache 注意&#xff1a; Spring Boot 2.x用户&#xff1a;优先使用Caffeine&#xff0c;性能更优且维护活跃。 1. 添加依赖 在pom.xml中添加Guava依赖&#xff1a; <dependency><groupId>com.google.guava</groupId&…...

全感官交互革命:当 AI 大模型学会 “看、听、说、创”

引言&#xff1a;从 “文字对话” 到 “全感官体验”&#xff0c;AI 正在重塑人类认知边界 当 AI 不再局限于文本对话&#xff0c;而是能 “看懂” 图像、“听懂” 语音、“生成” 视频&#xff0c;并将这些模态无缝融合时&#xff0c;一场关于人机交互的革命已然开启。DeepSe…...

Linux 库文件详解

Linux 库文件详解 一、库文件概述 库文件是预先编译好的方法的集合&#xff0c;它为程序员提供了一种方便的方式来复用代码。在 Linux 系统中&#xff0c;主要有两种类型的库文件&#xff1a;静态库和共享库。 静态库&#xff08;.a 文件&#xff09; 使用静态库&#xff0…...

蒙特卡罗方法(Monte Carlo Method)​​:基于随机采样的数值计算与模拟技术

​​核心思想​​ 蒙特卡罗方法通过​​随机采样​​和​​统计模拟​​解决数学、物理、工程等领域的复杂问题&#xff0c;其核心是利用​​大数定律​​——当样本量足够大时&#xff0c;样本均值会收敛于期望值。 ​​关键特点​​&#xff1a; ​​无维度诅咒​​&#x…...

HTTPS协议:更安全的HTTP

目录 1. 前言 2. HTTP 与 HTTPS&#xff1a;安全的分水岭 2.1 HTTP 的安全隐患 2.2 HTTPS 的安全提升 3. HTTPS 的核心概念 3.1 加密三剑客&#xff1a;对称加密、非对称加密与哈希算法 3.2 SSL/TLS 握手过程&#xff1a;建立安全通道的关键步骤 3.3 数字证书&#xff…...

Flutter BottomNavigationBar 详解

目录 一、引言 二、BottomNavigationBar 的基本用法 三、主要属性 1. 基本配置 2. 导航项配置 3. 导航类型选择 四、高级功能实现 1. 结合 PageView 实现滑动切换 2. 添加徽章提示 3. 自定义凸起按钮&#xff08;FAB融合&#xff09; 4. 渐变背景实现 五、自定义 B…...

吴恩达深度学习作业 RNN模型——字母级语言模型

一. 简单复习一下RNN RNN RNN适用于处理序列数据&#xff0c;令是序列的第i个元素&#xff0c;那么就是一个长度为的序列&#xff0c;NLP中最常见的元素是单词&#xff0c;对应的序列是句子。 RNN使用同一个神经网络处理序列中的每一个元素。同时&#xff0c;为了表示序列的…...

数字时代,如何为个人信息与隐私筑牢安全防线?

首席数据官高鹏律师团队编著 在当今数字化时代&#xff0c;个人信息和隐私保护至关重要。我们在享受数字生活带来的便利时&#xff0c;也面临着个人信息泄露、隐私被侵犯的风险。下面将从先进技术和法律途径两个方面&#xff0c;探讨如何严格保护个人信息和隐私。 一、先进技…...

javascript交换值最好三种

代码 1. 位运算(性能高&#xff0c;但只能用于整数) var a15; var b32; console.log(a) //15 console.log(b) //32 a a ^ b; b a ^ b; a a ^ b; console.log(a) //32 console.log(b) //152. 数组结构(性能高&#xff0c;但要ES6) var a15; var b32; console.log(…...

C++-Lambda表达式

目录 1.什么是 Lambda&#xff1f; 2.例子&#xff1a;打印每个元素&#xff08;和 for_each 一起用&#xff09; 3.捕获外部变量&#xff08;Capture&#xff09; 3.1. 捕获值&#xff08;拷贝&#xff09;&#xff1a;[] 3.2. 捕获引用&#xff1a;[&] 3.3. 指定捕…...

逻辑回归的多分类实战:以鸢尾花数据集为例

文章目录 引言&#xff1a;从二分类到多分类一、多分类问题无处不在二、One-vs-All策略揭秘1. 核心思想2. 数学表达 三、鸢尾花分类完整实现1. 环境准备2. 数据加载与探索3. 数据预处理4. 模型训练与评估5. 决策边界可视化 四、关键参数解析五、总结 引言&#xff1a;从二分类到…...

[面试]SoC验证工程师面试常见问题(一)

SoC验证工程师面试常见问题(一) 摘要:在面试 SoC 验证工程师职位时,面试官通常会重点考察候选人对 SystemVerilog 和 UVM (Universal Verification Methodology) 的掌握程度,因为这两者是现代 IC 验证的核心技能。以下是可能会被问到的常见问题,涵盖 SystemVerilo…...

传统银行服务和 区块链支付无缝融合的一种解决方案

Dragonfly Capital 的合伙人 Alex Pack 曾表示:“DeFi 的目标是重构全球银行体系,并打造开放且无须许可的经营环境。”在 DeFi 的金融世界中,加密资产架构在区块链上,通过各个协议实现资产之间的高效转移和价值的实时流通,如 Metamask 钱包的自托管,Uniswap 的资产交易,…...

大语言模型能力评定探讨

有标准答案的评估&#xff08;选择题&#xff09; 评估语言模型能力的基本思路是准备输入和标准答案&#xff0c;比较不同模型对相同输入的输出 由于AI答题有各种各样答案&#xff0c;因此现在是利用选择题考察。 有一个知名的选择题的基准叫做Massive Multitask Language Und…...

解构区块链身份认证:从ID到零知识证明的实战指南

引言 在数字经济高速发展的今天&#xff0c;数字身份已成为个人与数字世界交互的核心凭证。传统中心化身份系统存在数据孤岛、隐私泄露、单点故障等痛点&#xff0c;而区块链技术凭借​​去中心化、不可篡改、可追溯​​的特性&#xff0c;为数字身份验证提供了革命性解决方案…...

IntelliJ IDEA 使用教程

文章目录 一、创建项目二、创建模块三、创建包四、创建类五、编写代码六、运行代码注意 一、创建项目 二、创建模块 【File】->【New】->【Module…】 三、创建包 【helloword】->【右击 src】->【New】->【Package】 四、创建类 【helloword】->【s…...

HBM的哪些事

命令操作 这也许是DDR往HBM演进的一些奇淫技巧。 本篇内容属于杂谈&#xff0c;关于HBM的奇淫技巧&#xff0c;随后出专题介绍。...

C++ std::initializer_list 详解

std::initializer_list 是 C11 引入的一个轻量级模板类&#xff0c;用于支持花括号初始化列表&#xff08;{1, 2, 3}&#xff09;的语义。它允许函数或构造函数接受任意长度的同类型初始化列表&#xff0c;是实现统一初始化&#xff08;{} 语法&#xff09;的核心组件。 1. 基本…...

网络原理 - 13(HTTP/HTTPS - 4 - HTTPS)

目录 HTTPS 是什么 不得不的策略 - 应对“运营商劫持” “加密” 是什么 分类 对称加密 非对称加密 HTTPS 工作原理 1&#xff09;引入对称加密 2&#xff09; 引入非对称加密 中间人攻击 引入证书 证书的验证过程 完&#xff01; HTTPS 是什么 HTTPS 也是一个应…...

当MCP撞进云宇宙:多芯片封装如何重构云计算的“芯“未来?

当MCP撞进云宇宙:多芯片封装如何重构云计算的"芯"未来? 2024年3月,AMD发布了震撼业界的MI300A/B芯片——这颗为AI计算而生的"超级芯片",首次在单封装内集成了13个计算芯片(包括3D V-Cache缓存、CDNA3 GPU和Zen4 CPU),用多芯片封装(Multi-Chip Pac…...

Kotlin Flow流

一 Kotlin Flow 中的 stateIn 和 shareIn 一、简单比喻理解 想象一个水龙头&#xff08;数据源&#xff09;和几个水杯&#xff08;数据接收者&#xff09;&#xff1a; 普通 Flow&#xff08;冷流&#xff09;&#xff1a;每个水杯来接水时&#xff0c;都要重新打开水龙头从…...

虚拟局域网(VLAN)实验(Cisco Packet Tracer)-路由器、交换机的基本配置

好的&#xff0c;我们来根据你提供的文档&#xff0c;一步步地在 Cisco Packet Tracer 中完成这个跨交换机划分 VLAN 的实验。 实验目标: 配置两台交换机 SW1 和 SW2&#xff0c;划分 VLAN 10 和 VLAN 20&#xff0c;配置 Trunk 链路&#xff0c;并测试同 VLAN 和跨 VLAN 的连…...

【论文速递】2025年09周 (Robotics/Embodied AI/LLM)

目录 LLM-Microscope&#xff1a;揭示标点符号在Transformers的上下文中的隐藏作用英文摘要中文摘要 SurveyX&#xff1a;通过大型语言模型实现学术调查自动化英文摘要中文摘要 数学推理的自我奖励校正英文摘要中文摘要 VideoGrain&#xff1a;调整时空关注以进行多元透明视频编…...

自主机器人模拟系统

一、系统概述 本代码实现了一个基于Pygame的2D自主机器人模拟系统&#xff0c;具备以下核心功能&#xff1a; 双模式控制&#xff1a;支持手动控制&#xff08;WASD键&#xff09;和自动导航模式&#xff08;鼠标左键设定目标&#xff09; 智能路径规划&#xff1a;采用改进型…...

DeepSeek构建非农预测模型:量化关税滞后效应与非线性经济冲击传导

AI分析&#xff1a;非农数据前瞻与关税影响的滞后性 根据AI模型对多维度经济指标的交叉验证&#xff0c;4月非农就业报告或呈现“增速放缓但未失速”的特征。当前市场共识预期为新增就业13.3万人&#xff08;前值22.8万&#xff09;&#xff0c;失业率维持4.2%&#xff0c;时薪…...

前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive

一、计算属性(computed) 计算属性&#xff08;Computed Properties&#xff09;是 Vue 中一种特殊的响应式数据&#xff0c;它能基于已有的响应式数据动态计算出新的数据。 计算属性有以下特性&#xff1a; 自动缓存&#xff1a;只有当它依赖的响应式数据发生变化时&#xff…...