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.csdn.net/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} += "${.utils.contains('DISTRO_FEATURES','sysvinit','${sysconfdir}/*', '', d)}"

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐