petalinux配置SD卡启动(2022.1版本)

注意:下面所有文件保持英文路径;安装过程需联网操作

注:如出现未找到命令的错误,请重新执行步骤8

ZYNQ-7000系列芯片运行Linux操作系统需要BOOT.BIN文件、image.ub文件和rootfs。

BOOT.BIN文件由fsbl.elf、bitstream和u-boot.elf(裸机elf程序)文件组成。fsbl.elf是由xilinx设计的,由OCM加载执行,有两个主要功能。第一是用于加载bitstream到PL,第二是根据BOOT.BIN文件组成,执行u-boot或是裸机elf程序。bitstream文件是FPGA的配置文件。裸机elf程序用于在不启动操作系统的情况下运行一些软件。u-boot.elf是一种bootloader程序,可以根据不同的硬件情况,在不同的场景下引导操作系统镜像的执行。

image.ub文件是由操作系统的镜像文件uImage和设备树文件dtb组成。uImage由压缩过的操作系统镜像zImage和一段由u-boot在引导时会读取的头image_header_t(64B)组成,这个头用于储存u-boot在引导系统时所要获取的一些信息。zImage由未压缩的内核镜像vmlinux和解压代码组成。在u-boot引导内核时,会解压zImage到内存中执行。

rootfs是linux的根文件系统,在linux系统启动过程中,必须要挂载这样一个根文件系统。我们的可执行程序以及所用到的库文件、linux系统的配置文件等,都会存储在这样一个根文件系统中。

Qspi型号:w25q256fvei

一、SD卡启动

  1. 安装ubuntu20.04虚拟机(至少配备200GB存储,建议250GB),安装过程及更换清华源操作略去
  2. 安装相应的库文件:

sudo apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386  \

libssl-dev flex bison chrpath socat autoconf libtool texinfo gcc-multilib \

libsdl1.2-dev libglib2.0-dev screen pax xterm build-essential net-tools libtinfo5 tftpd tftp openbsd-inetd vim

  1. 配置TFTP server:  sudo chmod 755 /etc/inetd.conf

sudo vim /etc/inetd.conf

                      单击i,在最后键入以下内容:

                     tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot

                      单击Esc,输入 :wq 保存退出

                      sudo mkdir /tftproot

                      sudo chmod 777 /tftproot

                      /etc/init.d/openbsd-inetd restart

                      netstat -an | more | grep udp

                      看到输出udp 0 0 0.0.0.0:69 0.0.0.0:* 即成功

reboot

  1. 以root权限启动新的shell:      sudo -s

创建文件放置的文件夹:         mkdir -p /opt/pkg/petalinux

指定目录所有权:               chown chengfei /opt/pkg/

将目录所属组更改为指定的组:   chgrp chengfei /opt/pkg/

                               chown chengfei /opt/pkg/petalinux/

                               chgrp chengfei /opt/pkg/petalinux/

                               exit

注:蓝色内容根据自己的虚拟机名称修改

  1. 将安装文件复制到创建的文件夹中,并进入对应文件夹。
  2. 给安装的文件赋予权限:    chmod 755 ./petalinux-v2022.1-04191534-installer.run

注: 切勿将安装程序权限更改为 CHMOD 775,否则将产生 BitBake 错误

  1. 开始安装:             ./petalinux-v2022.1-04191534-installer.run

注:回车查看协议后单击Q退出,Y确认

显示界面如下即为安装完成:

  1. 设置petalinux环境变量:       source /opt/pkg/petalinux/settings.sh

注:如出现图示报错,按顺序输入命令:     sudo rm /bin/sh

                                         sudo ln -s /bin/bash /bin/sh

                                         ls -l /bin/sh

    再次运行source指令

  1. 在documents下创建工作目录,命令如图所示:(勿在安装路径下创建工程文件)

  1. 进入刚刚创建的文件夹后,运行下面指令创建petalinux工程,并进入该工程文件。

          petalinux-create --type project --template zynq --name petalinux_prj

  1. 将SDK文件复制进虚拟机中,导入vivado的硬件描述语言到petalinux内,确保文件路径保证正确

petalinux-config --get-hw-description <此处填写工程对应的SDK文件完整路径>

      在弹窗内进行如下操作:

Subsystem AUTO Hardware Settings -> SD/SDIO Settings -> Primary SD/SDIO 选择为ps7_sd_0 (这里可以选择优先哪个SD卡启动)

Subsystem AUTO Hardware Settings -> Flash Settings 中确定是否包含有bootenv分区

Image Packaging Configuration -> Root filesystem type 选择EXT4(SD/eMMC/SATA/USB)

    注意:2019版本后的petalinux移除了Advanced bootable images选项,如需更改启动配置,如primary sd->primary flash,需在步骤12中进行修改。

  1. 输入 petalinux-config -c u-boot ;配置u-boot内核启动方式。

选择Boot options -> Boot media -> Support for booting from SD/EMMC;

boot options->boot media->support for booting from qspiflash

device drivers->pci support/nvm express device support

device drivers->pci support->Xilinx AXI Bridge for pci express

退出并保存

  1. 安装kernel,配置linux内核:                petalinux-config -c kernel

找到Device Drivers->NVME Support->NVM Express block device,

device drivers->pci support->pci express port bus support

然后save,exit

  1. (如已有现成文件系统,可直接进行步骤15)

配置根文件系统:             petalinux-config -c rootfs

同上操作勾选 Filesystem Packages->base->util-linux->util-linux/ util-linux-blkid/ util-linux-fdisk/ util-linux-mount/ util-linux-mkfs        (5个)

以及Filesystem Packages->base->e2fsprogs/e2fsprogs-mke2fs       (2个)

以及Filesystem Packages->console->utils->pciutils->pciutils/ pciutils-ids/ pciutils-dev/libpci

以及Filesystem Packages->console->utils->vim->vim

以及Filesystem Packages->console->tools->parted->parted

以及Filesystem Packages->utils->dosfstools->dosfstools

  1. 编译等:                    petalinux-build

     等待一段时间后出现下图所示即为完成编译。

  1. 打包信息,生成对应boot文件:   petalinux-package --boot --u-boot --fpga --force
  2. 插入SD卡读卡器,将SD卡连接到linux系统中,./linux/images中的BOOT.BIN/image.ub

/boot.scr文件复制到FAT32格式的BOOT分区;(如未进行步骤14,可直接跳过后续,进行步骤18)在rootfs分区,打开终端,输入

sudo rm -r ./*

sudo cp -r ./images/linux/rootfs.tar.gz /media/chengfei/rootfs/ ./

sudo tar -xzvf ./rootfs.tar.gz

sudo rm -r rootfs.tar.gz

sudo chown root:root /media/chengfei/rootfs/usr/bin/sudo

sudo chmod 4755 /media/chengfei/rootfs/usr/bin/sudo

  1. 在赛灵思官网下载vivado Linux自解压Web安装程序2022.1版本,在终端输入以下命令

sudo chmod +x Xilinx_Unified_2022.1_1014_8888_Lin64.bin

sudo sh ./Xilinx_Unified_2022.1_1014_8888_Lin64.bin

根据步骤安装vivado ML standard

安装完成后,在安装目录下打开终端,输入以下命令

vim ~/.bashrc

在页面最下方单击i,复制以下命令:

source ./Vivado/2022.1/settings64.sh

source ./Vitis_HLS/2022.1/settings64.sh

单击ESC,输入  :wq  并回车。继续在终端输入指令 source .bashrc

cd ./Vivado/2022.2/data/xicom/cable_drivers/lin64/install_script/install_drivers

sudo ./install_drivers

安装JTAG驱动完成

  1. 连接串口,波特率设置为115200;板子模式设置为SD卡启动,插入SD卡,开启板子电源。
  2. 若rootfs做了修改,第一次启动需要设置密码,账号默认为petalinux,按提示设置密码即可。
  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Take Me To Infinity787

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值