跳过正文
  1. 所有文章/

使用Petalinux定制Linux系统 1

· loading · loading ·
Petalinux Linux 硬件
Seraphique
作者
Seraphique
目录

Petalinux 建立工程
#

  1. 创建工程文件夹
mkdir  -p  ~/peta_prj/linuxPsBase/hardware 
  1. 将vivado工程导出的后缀为xsa的文件(也就是步骤1中说的硬件描述文件)(course3_3eg/1_petalinux/vivado/design_1_wrapper.xsa)拷贝刡刚才创建的hardware 文件夹下
  2. 进入工程文件夹内
cd  ~/peta_prj/linuxPsBase/ 
  1. 启动已构建的docker镜像
 docker run -ti -v "$PWD":"$PWD" -w "$PWD" --rm -u petalinux docker_petalinux2:2020.1 $@

  1. 使用“petalinux-create”命令创建 petalinux 工程。“-t”参数是指需要创建的类型,这里我们是创建工程所以后面跟“project”, “-n”指工程名称为“petalinux”,“–template”参数是指使用“zynqMP”模板来创建返个工程。
petalinux-create  -t  project  -n  petalinux  --template  zynqMP 

  1. 使用下面的命令迕入petalinux工程目录。
cd  ./petalinux
  1. 使用“petalinux-config”命令加上“–get-hw-description”参数配置 petalinux 工程的硬件信息,“–get-hw-description”参数后面我们硬件描述文件(xsa文件)所在的路径,也就是步骤 1 中创建的路径,注意:硬件信息目录(当前就是“../hardware/”)里必项有且只有一个xsa文件。
petalinux-config  --get-hw-description  ../hardware/ 

8. 在配置界面中,选择“Auto Config Settings”选项上,按回车
使用空格选择“Device tree autoconfig”、“kernel autoconfig”、“u-boot autoconfig”,再选择Save,之后一路退出配置界面。
注意:本教程沿袭了旧版petalinux的使用习惯配置了“kernel autoconfig”、“u-boot autoconfig”这两个选项,但这两个选项不选也可以。如果工程中配置了这两个选项且编译出错,也可以尝试把这两个选项去掉再编译。

  1. 退出界面配置完成

配置离线编译
#

从官网https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/archive.html 下载

  1. 解压资源文件
mkdir -p petalinux_offline_pkg/sstate_aarch64
mkdir -p petalinux_offline_pkg/downloads

tar -xzvf sstate_aarch64_2020.1.tar.gz -C petalinux_offline_pkg/sstate_aarch64
tar -xzvf downloads_2020.1.tar.gz -C petalinux_offline_pkg/downloads
  1. 配置
petalinux-config 
  1. 选择最下面的“Yocto Settings —>”选项。

  2. 在“Yocto Settings —>”界面中,取消选择“Enable Network sstate feeds”,选择“Enable BB NO NETWORK”选顷, 修改成如下图的状态:

注意,如果之后编译报错提示“Network access disabled through BB_NO_NETWORK”,就把“Enable BB NO NETWOTRK”取消选中再尝试编译。

  1. 设置“sstate_aarch64”包的路径,选择“Local sstate feeds settings —>”选项
    直接回车
    输入我们包的路径,后回车确认
/peta/petalinux_offline_pkg/sstate_aarch64_2020.1/aarch64/

  1. 设置“downloads”包的路径,先选择选顷迒回刡下图的界面,然后选择“Add pre-mirror url —>”选项

修改路径为

file:///peta/petalinux_offline_pkg/downloads

选择保存,退出即可

设置本地内核源码以及u-boot源码
#

  1. 从Github下载对应版本的文件
linux-xlnx-xilinx-v2020.1.zip
u-boot-xlnx-xilinx-v2020.1.zip

https://github.com/Xilinx/linux-xlnx/archive/refs/tags/xilinx-v2020.1.zip
https://github.com/Xilinx/u-boot-xlnx/archive/refs/tags/xilinx-v2020.1.zip
  1. 执行解压命令
unzip u-boot-xlnx-xilinx-v2020.1.zip -d petalinux_offline_pkg/
unzip linux-xlnx-xilinx-v2020.1.zip -d petalinux_offline_pkg/

  1. 配置petalinux(注意执行目录)
petalinux-config 

然后选择最下面的“linux-kernel (linux-xlnx) —>”选项,
选择最下面的“( ) ext-local-src”选项,
选择最下面一行
接下来就可以设置内核源码路径了,选择“”选项,输入内核源码路径

/peta/petalinux_offline_pkg/linux-xlnx-xilinx-v2020.1

然后选择< Save >保存一下 4. 设置u-boot源码的路径,接着上面的步骤选择< Exit >选项回到下图的界面,选择“u-boot (u-boot-xlnx) —>”选项,

选择“( ) ext-local-src”选项,
然后选择多出来的这一行“External u-boot local source settings —>”选项,
选择“() External u-boot local source path”选项设置 u-boot 源码路径,

/peta/petalinux_offline_pkg/u-boot-xlnx-xilinx-v2020.1

然后选择< Save >选项再选择< Exit >选项退出配置界面即可。

修改设备树、编译petalinux工程
#

  1. 进入下面的文件夹
/peta/peta_prj/linuxPsBase/petalinux/project-spec/meta-user/recipes-bsp/device-tree/files

上图文件夹的路径中,“Home/peta_prj_linuxPsBase”是我们使用mkdir命令创建的路径,从“petalinux”开始往后的路径以及路径中的文件是由petalinux-create命令生成的。我们进入到/home/alinx/peta_prj/linuxPsBase/petalinux/project-spec/meta-user/recipes-bsp/device-tree/files 路径中,返里的两个dtsi 后缀的文件,都是petalinux帮我们生成的自定义设备树文件,我们可以按照自己的需求来编辑返两个设备树返两个文件编辑两个或者只其中任意一个都可以,在本教程中我们选择编辑system-user.dtsi文件

nano system-user.dtsi
/include/ "system-conf.dtsi"
/ {
};

/* SD */ 
&sdhci1 { 
        disable-wp;
        no-1-8-v;
}; 
/* USB */
&dwc3_0 {
        status = "okay";
        dr_mode = "host";
}; 
  1. 编译工程 在/peta/peta_prj/linuxPsBase/petalinux目录下
petalinux-build 

注:如果没有设置离线编译,该步骤必项保证ubuntu系统可以连接网络,petalinux需要从github上下载一些源代码。

如果使用离线编译,编译成功后可能会有一些警告,但不会影响我们使用。

生成BOOT文件
#

  1. 打开一个终端,使用下面的命令,迕入上面petalinux编译之后的结果目录中。
cd  /peta/peta_prj/linuxPsBase/petalinux/images/linux 
  1. 使用“petalinux-package –boot”命令打包 BOOT.bin 文件。“–u-boot”参数会把 u-boot依赖顷全部合成到BOOT.bin中,“–fpga”指合成bit文件刡BOOT.bin中(注意:如果你的xsa文件中丌包含bitstream,就 丌要加返个参数),“–fsbl”指合成fsbl文件到BOOT.bin中,“–force”为强制合成,覆盖以前合成的BOOT.BIN。注意这条命令里的参数都是2个短横线。
petalinux-package  --boot  --u-boot  --fpga  --fsbl  --force 

如果xsa文件中不包含bitstream,但是命令中却包含了“–fpga”参数,就会出现下图红框中的错误。去掉“–fpga”参数即可打包成功,如下图。

petalinux-package  --boot  --u-boot  --fsbl  --force 

3. 迕入到petalinux工程编译结果目录中,可以看到红框中的三个文件,其中BOOT.bin文件是我们刚才生成的,其他两个文件是“petalinux-build”命令生成的。

运行Linux
#

  1. 将SD卡格式化为FAT32格式。
  2. 将之前得到的BOOT.bin、boot.scr 及image.ub 三个文件拷贝到上一步格式化的SD卡中,然后弹出SD卡。
  3. 将SD卡插入板卡。
  4. 把板卡设置为SD卡启动模式。
  5. 连接串口线到开发板的“PS_UART”口上,打开串口调试工具,将板卡上电。 驱动下载安装CP210x VCP Windows
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

PUTTY中设置COM5 波特率115200
按下回车显示文字

  1. 在串口工具中输入用户名root,密码root即可登录板载的linux系统(因为petalinux制作的根文件默认为ram类型,所以文件系统不能保存文件和配置即重启后回复初始状态)。

创建和使用bsp包
#

使用petalinux的bsp包,我们可以快速的提供我们验证好的petalinux工程给他人使用,或者是使用他人验证好的petalinux工程。只需要掌握创建和使用bsp包的两条命即可。

  1. 创建 bsp包 使用下面的命令即可创建petalinux工程的bsp包到当前打开终端的路径中:
petalinux-package  --bsp  -p  ./petalinux/  --output  chapter1.bsp 
  • -p参数后面的路径是petalinux工程的一级路径
  • –output 参数后面跟的是bsp包的名称
  1. 使用bsp包

使用下面的命令即可用bsp包来创建petalinux工程到当前打开终端的路径中:

petalinux-create  -t  project  -n  petalinux_bsp  -s  ./chapter1.bsp 
  • -n参数后面跟的是petalinux工程的名称
  • -s参数后面跟的是我们使用的bsp包的路径

注:如果制作bsp包的工程可以编译成功,那使用bsp包制作的工程也可以直接编译。

相关文章

Petalinux 2020.1安装记录
· loading · loading
Petalinux Docker-Petalinux2 硬件
Petalinux 2020.1安装记录
支持Page Bundle的MarkDown编辑器
· loading · loading
软件 Hugo VSCode 插件 Markdown
VSCode + Front Matter
DSM7.2 黑群晖虚拟机 安装教程
· loading · loading
软件 NAS 虚拟机
DSM7.2 黑群晖虚拟机 安装教程