Petalinux快速入门向导 (5) 第四章.PetaLinux常见问题

  • Post author:
  • Post category:linux




  1. 一键离线安装PetaLinux依赖包


1.1

网络安装

安装PetaLinux时,需要安装PetaLinux依赖的Linux软件包。对于Ubuntu,可以执行下面命令,安装所有软件包:



sudo apt-get install -y python tofrodos iproute2 gawk xvfb gcc git 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 libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen

执行上述命令,对于Ubuntu来说,需要有网络连接。如果已经执行了上述命令,软件包已经下载到/var/cache/apt/archives, 下一次就可以离线安装。

1.2


所有软件包生成索引

在/var/cache/apt/archives, 执行命令



dpkg-scanpackages . | gzip -9c > Packages.gz

为所有软件包生成索引。

1.3


拷贝文件

将Packages.gz, 和/var/cache/apt/archives下所有的软件包拷贝到一个目录,比如/xilinxtool/download/linux/ubuntu-16.04-sw-packages/。

1.4


修改仓库文件

再把下列内容添加仓库文件 /etc/apt/sources.list开始处。



# PetaLinux software package



deb [trusted=yes] file:///xilinxtool/download/linux/ubuntu-16.04-sw-packages/ ./

1.5


刷新软件库

再刷新软件库,执行上述命令



apt update

之后就能依靠本地软件源,离线安装PetaLinux依赖包

2.


编译器怎么独立安装

编译器是在PetaLinux编译过程中实时生成的,路径位于

./build/tmp/sysroots-components/x86_64/gcc-cross-aarch64

./build/tmp/sysroots-components/x86_64/gcc-cross-aarch64/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-gcc

将这个目录复制到/opt目录下,并加入path路径

编译时加入以下两个参数即可

make ARCH=arm CROSS_COMPILE=aarch64-xilinx-linux-

3.


PetaLinux下如何修改设备树

PetaLinux在导入xsa文件时,会根据硬件配置自动生成dts,自动生成的dts位于

components/plnx_workspace/device-tree/device-tree

但是这个目录下的文件不能直接修改,修改内容会被系统自动覆盖,导致无法生效。用户可以修改的设备树文件位于

project-spec/meta-user/recipes-bsp/device-tree/files

ps端的设备添加在system-user.dtsi,pl端的设备添加在pl-custom.dtsi。一般情况我们只需修改这两个文件即可。

4.


创建自己的bsp包

4.1


BSP打包

BSP对于团队和客户之间的分发非常有用。定制的PetaLinux项目可以通过bsp交付给下一个级别的团队或外部客户。

在创建BSP之前,假设你已经针对你的硬件平台已经定制了一套Linux系统。按以下步骤来进行打包BSP。

在你的petalinux工程目录之外运行以下命令:

petalinux-package –bsp -p <plnx-proj-root> –output my.bsp

就可以在你当前目录下看到生成的BSP包。

4.2


BSP的使用

对于其他开发人员提供的BSP包,不用重新为硬件平台来建立linux系统的配置信息。利用BSP来建立petalinux工程的命令如下:

petalinux-create -t project -s my.bsp

5.


image.ub打包问题

(注意不同的版本可能稍有差异,这里以2020.1为例,2019.2也适用)

mkimage来分析image.ub

先安装sudo apt install u-boot-tools

然后mkimage -l images/linux/image.ub

可以看出image.ub包含了内核、设备树和根文件系统

6.


如何生成不包含rootfs的image.ub

petalinux-config

把根文件的类型选为ext4,

7.


用jtag命令行烧写flash

7.1


概述

program_flash脚本位于vitis安装目录的bin目录下,例如C:\Xilinx\Vitis\2019.2\bin\

详细信息可以参考官方的文档ug908-vivado-programming-debugging.pdf

查看jtag

program_flash -jtagtargets

7.2


用jtag命令行烧写qspi flash

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi-x4-dual_stacked -target_name  jsn-DLC9LP-00000000000000-5ba00477-0 -url tcp:localhost:3121

7.3


用jtag命令行烧写nand flash

program_flash% -f BOOT.bin -fsbl fsbl.elf -flash_type nand-x8 -target_name  jsn-DLC9LP-00000000000000-5ba00477-0 -url tcp:localhost:3121

7.4


烧写时加载的uboot.bin路径(安装路径根据具体安装不同略有不同)

C:\Xilinx\Vitis\2019.2\data\xicom\cfgmem\uboot

7.5 PL编程参考

Mpsoc系列


Solution ZynqMP PL Programming – Xilinx Wiki – Confluence

Zynq7000系列


Solution Zynq PL Programming With FPGA Manager – Xilinx Wiki – Confluence

8.


Ethernet开发参考


PS and PL based Ethernet in Zynq MPSoC – Xilinx Wiki – Confluence



版权声明:本文为aatu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。