PetaLinux工程的常用命令——petalinux-create

petalinux-create:此命令创建新的PetaLinux项目或组件。

注:有些命令我没用过,瞎翻译有可能会翻译错了,像是和fpgamanager相关的部分。

用法:

petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONENT_NAME>


必须参数:

-t, --type <TYPE>

可选类型:

* project : PetaLinux项目

* apps : Linux用户程序

* modules : Linux用户模块

-n, --name <COMPONENT_NAME>

为组件或项目指定名称。【对创建项目而言,该选项不一定需要提供】,如果在创建项目时指定了源BSP,则不需要指定名称。


可选参数:

-p, --project <PROJECT>

指定PetaLinux项目的完整路径。此选项【不适用于项目创建】。默认值是当前的Shell工作路径。

--force

强制覆盖现有组件目录。

-h, --help

显示函数用法。

--enable

此选项适用于【除项目之外】的所有类型。启用创建的组件

--static-pn

此选项用于指定使用fpgamanager_dtg创建的包名,以便在fpgamanager_dtg_dfx中使用。注意:这仅支持versal和zynqmp。

--srcuri

此选项用于指定来自项目外部的源文件。这将把指定的文件复制到配方文件目录中,并添加到.bb文件中的SRC_URI变量中。指定多个带空格的文件。

--tmpdir

用于创建项目时,将一个本地驱动器路径指定为TMPDIR位置。

默认情况下TMPDIR不能在NFS下。默认情况下,当项目在NFS上时,petalinux将在/tmp下设置TMPDIR。您可以使用--tmpdir选项将自己的本地驱动器设置为TMPDIR PATH。


用于创建项目的可选参数:

--template <TEMPLATE>

versal-net|versal|zynqMP|zynq|microblaze

用户需要选用上述枚举指定项目模板。

-s|--source <SOURCE>

指定一个PetaLinux BSP作为项目源。


用于创建用户程序可选参数:

--template <TEMPLATE>

<c|c++|autoconf|install>

c: C语言程序(默认)

c++: C++程序

autoconf: autoconf程序

install: 仅安装数据

fpgamanager: 将.dtbo、.bin、shell.json和.xclbin文件打包到rootfs中,支持versal、zyntmp和zynq。

fpgamanger_dtg: 提取.xsa文件并将.dtbo、.bin/.pdi、shell.json和.xclbin文件打包到rootfs中,支持versal、zyntmp和zynq。

fpgamanager_dtg_dfx: 提取DFX部分的.xsa文件,并将.dtbo、.bin/.pdi和shell.json文件打包到根目录中。仅支持versal和zynqmp。

fpgamanager_dtg_csoc: 提取经典soc部分的.xsa文件,并将.dtbo、.bin/.pdi和shell.json文件打包到根目录中。仅支持versal。

-s, --source <SOURCE>

有效的源名称格式:

*.tar.gz, *.tgz, *.tar.bz2, *.tar,

*.zip, app source directory


用于创建模块的可选参数:

(无)


创建项目的例子:

使用一个PetaLinux的BSP包创建项目:

$ petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP>

使用PetaLinux的BSP包创建项目并指定TMPDIR路径:

$ petalinux-create -t project -s <PATH_TO_PETALINUX_PROJECT_BSP> --tmpdir <TMPDIR PATH>

使用模板创建项目并指定TMPDIR路径:

$ petalinux-create -t project -n <PROJECT> --template <TEMPLATE> --tmpdir <TMPDIR PATH>

使用模板创建项目:

对于microblaze项目,

$ petalinux-create -t project -n <PROJECT> --template microblaze

对于zynq项目,

$ petalinux-create -t project -n <PROJECT> --template zynq

对于zynqMP项目,

$ petalinux-create -t project -n <PROJECT> --template zynqMP

对于versal项目,

$ petalinux-create -t project -n <PROJECT> --template versal

对于versal-net项目,

$ petalinux-create -t project -n <PROJECT> --template versal-net


创建应用程序的例子:

创建并启用应用程序:

$ petalinux-create -t apps -n myapp --enable

名为"myapp"的应用将使用C语言程序模板创建在以下路径:

<PROJECT>/project-spec/meta-user/recipes-apps/myapp

使用远程源创建应用程序:

$ petalinux-create -t apps -n myapp --enable --srcuri http://example.tar.gz

$ petalinux-create -t apps -n myapp --enable --srcuri git://example.git\;protocol=https

$ petalinux-create -t apps -n myapp --enable --srcuri https://example.tar.gz

创建一个FPGA管理器应用程序,将.dtsi和.bit安装到根目录的(/lib/formance/xlinx)中:

$ petalinux-create -t apps --template fpgamanager -n gpio --enable

将创建一个名为 "gpio" 的应用程序,它使用了 fpgamanager_custom 类来构建 .dtbo、.bin 和 shell.json 文件,这些文件将被安装到目标设备上。

使用本地源文件创建应用程序:

$ petalinux-create -t apps --template fpgamanager -n gpio --enable --srcuri "<path>/pl.dtsi <path>/system.bit <path>/shell.json"

这将创建一个名为 "gpio" 的应用程序,并将 pl.dtsi、system.bit 和 shell.json 文件添加到 SRC_URI 变量中,并且这些文件会被复制到 files 目录下。

创建一个FPGAmanager_dtg应用程序来提取xsa,并将.dtsi和.bit文件安装到根目录下的(/lib/formance/xlinx)中:

$ petalinux-create -t apps --template fpgamanager_dtg -n gpio --enable --srcuri "<path>/gpio.xsa <path>/shell.json"

这将创建一个名为 "gpio" 的应用程序,该应用程序使用fpgamanager_dtg 类创建,并且将 gpio.xsa 和 shell.json 文件添加到 SRC_URI 变量中,随后这些文件会被复制到 files 目录下。

创建一个FPGAmanager_tg_dfx应用程序来提取xsa,并将.dtsi和.pdi安装到根目录的(/lib/formance/xlinx)中:

要创建fpgamanager_dtg_dfx,我们应该使用以下命令使用fpgamanager_dtg模板创建STATIC应用程序:

$ petalinux-create -t apps --template fpgamanager_dtg -n static-app --enable --srcuri "<path>/static.xsa <path>/shell.json"

使用fpgamanager_dtg_dfx创建RP/RM应用程序:

$ petalinux-create -t apps --template fpgamanager_dtg_dfx -n rprm-app --enable --srcuri "<path>/rprm.xsa <path>/shell.json" --static-pn "static-app"

上述命令将使用fpgamanager_dtg_dfx类创建"rprm app"应用程序,"static-app"将作为依赖项添加到"rprm apps"中。

创建一个FPGAmanager_dtg_csoc应用程序来提取xsa并将.dtsi和.pdi安装到根目录下的(/lib/formance/xlinx)中
使用fpgamanager_dtg_csoc创建RP/RM应用程序:

$ petalinux-create -t apps --template fpgamanager_dtg_csoc -n rprm-app --enable --srcuri "<path>/rprm.xsa <path>/shell.json"

上述命令将使用fpgamanager_dtg_csoc类创建"rprm app"应用程序。csoc应用程序将使用基本xsa作为静态xsa来生成rprm dtbo文件。


创建模块的例子:

创建一个模块并启用它:

$ petalinux-create -t modules -n mymodule --enable

名为"mymodule"的模块将被使用下述路径的模板创建:

<PROJECT>/project-spec/meta-user/recipes-modules/mymodule

使用源创建模块:

$ petalinux-create -t modules -n mymodule --enable --srcuri "<path>/mymoudle.c <path>/Makefile"

相关推荐
致奋斗的我们3 分钟前
RHCE的学习(7)
linux·服务器·网络·学习·redhat·rhce·rhcsa
昨天今天明天好多天41 分钟前
【Linux】ClickHouse 部署
linux·服务器·clickhouse
taolichao3041 分钟前
架设一台NFS服务器,按照要求配置
linux·运维·服务器
程序员yt42 分钟前
2025秋招八股文--服务器篇
linux·运维·服务器·c++·后端·面试
2301_8107301043 分钟前
RHCSA基础命令整理1
linux·运维·服务器
Chris-zz1 小时前
Linux:磁盘深潜:探索文件系统、连接之道与库的奥秘
linux·网络·c++·1024程序员节
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(1)驱动梗概
linux·c语言·arm开发·驱动开发·嵌入式硬件
lishing61 小时前
Linux驱动开发(2):第一个内核模块
linux·运维·驱动开发
从后端到QT2 小时前
ubuntu编译ffmpeg
linux·运维·ubuntu
Teamol20202 小时前
求助帖:ubuntu22.10 auto install user-data配置了为何还需要选择语言键盘(如何全自动)
linux·ubuntu·1024程序员节