ubuntu22.04 安装petalinux 2023.2

该文章已生成可运行项目,

ubuntu22.04 安装petalinux 2023.2

从安装到配置到所需的petalinux过程踩了很多坑,主要是一些配置跟以前不太一样,网上的教程有点老旧,简单记录一下整个过程。

需要注意的点
首先需要注意的是安装用户不能使用root用户安装,需要使用 /bin/sh 为“bash”。
使用命令查看ubuntu是dash还是bash命令:ls -l /bin/sh。如果是dash则使用 sudo dpkg-reconfigure dash命令更改默认的系统 shell /bin/sh更改(选择“否”,更改完再用查看一下是否更改成功)。

安装环境

sudo apt update 
sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential zlib1g:i386 screen pax gzip

xilinx官网下载petalinux安装工具
petalinux安装程序

下载petalinux-v2023.2-10121855-installer.run文件,导入到ubuntu20.04中。
接着就是直接赋予该文件权限

sudo chmod 777 petalinux-v2023.2-10121855-installer.run

接着运行

./petalinux-v2023.2-10121855-installer.run

运行过程中可能会报错说有一些库没有安装,就使用sudo apt install将缺失的库安装上就行

安装过程中需要同意一些条款,参考https://blog.youkuaiyun.com/sudaroot/article/details/119089398
点q退出阅读,点y同意条款就行。


鉴于该参考网址需要开vip,我重新装了petalinux-v2024.1-05202009-installer.run,在这里补充一下安装条款的操作:
注意不要使用root用户登录,license条款一直按enter键,q退出阅读,

在这里插入图片描述

接着输入y同意
在这里插入图片描述
安装SDK路径,直接采用默认路径,也就是当前文件夹,enter就行
在这里插入图片描述

建议建一个文件夹存放petalinux-v2023.2-10121855-installer.run,会在该目录下安装petalinux

petalinux的使用建立boot.bin

每次打开窗口的时候都要source以下setting.sh,具体自行百度。

source /home/ling/Petalinux/settings.sh

创建一个项目

petalinux-create --type project --template zynqMP --name mycard

会创建一个mycard文件夹,进入该文件夹

cd mycard

导入硬件描述

petalinux-config --get-hw-description=

后面加上硬件描述的xsa文件的路径例如我使用的:
petalinux-config --get-hw-description=/home/ling/Petalinux/BOOTs
我将xsa文件仿真BOOTs文件下,不需要将xsa的后缀改成以前的hdf。
在这里插入图片描述
直接使用键盘的左右上下键移动光标,移动到save就点一下回车就保存,再到exit位置点一下回车就退出。

运行build

petalinux-build

build一次没有问题后就是更改设备树文件,文件路径如下:
/home/ling/Petalinux/BOOTs/mycard/project-spec/meta-user/recipes-bsp/device-tree/files
将其中的system-user.dtsi改成自己想要的描述就行,改完后再petalinux-build一下就行。

打包boot.bin在/home/ling/Petalinux/BOOTs/mycard/images/linux下运行

petalinux-package --boot --u-boot --format BIN --fsbl --fpga system.bit  

运行完成后将/home/ling/Petalinux/BOOTs/mycard/images/linux路径下的BOOT.bin、image.ub、 Image三个文件放在sd卡里面,板卡使用sd卡启动就能运行。

启动后的用户名为:petalinux
输入用户名后会让自己创建一个密码。

去除用户登录的
debug-tweaks 路径跟以前的不太一样,如下:
petalinux-config -c rootfs
Image Features 中就能找到debug-tweaks ,点y将其勾选上就行
在这里插入图片描述

自启动

参考 Petalinux设置自启动程序或自启动脚本详解

app自启动的方式跟以前不一样,需要增加myapp-init.service文件,其脚本如下:

[Unit]
Description=myapp-init
  
[Service]
ExecStart=/usr/bin/myapp-init
StandardOutput=journal+console
  
[Install]
WantedBy=multi-user.target

bb文件的也跟以前不一样,myapp-init.bb文件如下:

#this file is the myapp-init recipe.
  
SUMMARY = "Simple myapp-init application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
  
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
  
SRC_URI = "file://myapp-init \
        file://myapp-init.service \
"
  
S = "${WORKDIR}"
  
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
  
inherit update-rc.d systemd
  
INITSCRIPT_NAME = "myapp-init"
INITSCRIPT_PARAMS = "start 99 S ."
  
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "myapp-init.service"
SYSTEMD_AUTO_ENABLE:${PN} = "enable"
  
do_install() {
        if ${.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
                install -d ${D}${sysconfdir}/init.d/
                install -m 0755 ${WORKDIR}/myapp-init ${D}${sysconfdir}/init.d/
        fi
  
        install -d ${D}${bindir}
        install -m 0755 ${WORKDIR}/myapp-init ${D}${bindir}/
        install -d ${D}${systemd_system_unitdir}
        install -m 0644 ${WORKDIR}/myapp-init.service ${D}${systemd_system_unitdir}
}
  
FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','${sysconfdir}/*', '', d)}"

更改后出现petalinux-build一下,更改image.ub文件就行。

本文章已经生成可运行项目
Petalinux 是 Xilinx 提供的一套用于嵌入式 Linux 系统开发的工具链,特别适用于基于 Zynq UltraScale+ MPSoC 和 Zynq-7000 SoC 的平台。它简化了嵌入式 Linux 系统的构建、配置和部署流程,支持从硬件设计导入到最终系统镜像生成的全流程开发。以下是一些常见的 Petalinux 使用、配置及问题解决方面的技术要点: ### 3.1 Petalinux 工程创建与配置 Petalinux 支持通过硬件描述文件(如 `.xsa` 文件)自动导入硬件设计信息,并基于此创建嵌入式 Linux 工程。创建工程的基本命令如下: ```bash petalinux-create --type project --template zynq --name my_project ``` 在创建工程后,可以通过以下命令导入硬件设计: ```bash petalinux-config --get-hw-description=../vivado_project/ --oldconfig ``` 此命令会从 Vivado 项目中提取硬件描述,并配置 Petalinux 工程以匹配目标平台的硬件特性[^1]。 ### 3.2 内核与设备树配置 Petalinux 允许用户通过图形化界面配置 Linux 内核和设备树。使用以下命令进入内核配置界面: ```bash petalinux-config -c kernel ``` 设备树的配置可以通过修改 `project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi` 文件实现。设备树是连接硬件描述与操作系统的关键组件,必须准确反映目标平台的硬件配置。 ### 3.3 用户空间应用与库的添加 Petalinux 支持通过 BitBake 配方添加用户空间应用程序和库。例如,若需添加 Qt5 支持,可以通过创建自定义配方或修改 `project-spec/meta-user/conf/petalinuxbsp.conf` 文件来启用 Qt5 支持。此外,也可以通过以下命令添加预定义的软件包: ```bash petalinux-config --enable-rootfs ``` 在配置界面中选择所需的软件包,如 `qt5`, `tslib` 等。 ### 3.4 文件系统构建与镜像生成 Petalinux 使用 Yocto 项目构建根文件系统。构建完成后,生成的镜像包括 `BOOT.BIN`(包含 FSBL 和比特流)、`image.ub`(内核和设备树的打包文件)以及 `rootfs.tar.gz`(根文件系统)。构建命令如下: ```bash petalinux-build ``` 构建完成后,使用以下命令生成启动镜像: ```bash petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot ``` ### 3.5 常见问题与解决方法 - **硬件描述导入失败**:确保 `.xsa` 文件路径正确,并且 Vivado 工程已正确导出硬件描述。使用 `petalinux-config --get-hw-description` 命令时,需确认 Petalinux 版本与 Vivado 版本兼容。 - **构建过程中出现依赖错误**:检查 `petalinuxbsp.conf` 文件中的配置是否正确,特别是与 SDK 和工具链相关的路径设置。 - **设备树编译失败**:检查 `system-user.dtsi` 文件中是否存在语法错误,确保节点名称和属性与硬件描述一致。 - **无法启动系统**:确认 `BOOT.BIN` 和 `image.ub` 文件是否正确生成,并且 SD 卡或 QSPI 启动介质的格式化方式符合目标平台要求。 ### 3.6 调试与日志 Petalinux 提供了多种调试手段,包括串口日志输出、JTAG 调试以及通过 `petalinux-boot` 命令进行网络启动调试。例如,使用 JTAG 启动内核的命令如下: ```bash petalinux-boot --jtag --kernel ``` 此外,系统运行时的日志可以通过串口终端(如 `minicom` 或 `screen`)查看,帮助定位启动失败或驱动加载问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值