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.csdn.net/sudaroot/article/details/119089398
点q退出阅读,点y同意条款就行。

建议建一个文件夹存放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文件就行。

  • 25
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值