ubuntu20.04 安装 petalinux 2021.1
虚拟机环境
宿主机:win10
vmware 版本:VMware® Workstation 17 Pro
ubuntu版本 20.04 (如果用18.04的话, vscode 的remote SSH需要glibc
的版本过低,无法使用Remote SSH 插件。。。。)
安装虚拟机分了 300G 空间,可以根据ug1144的推荐即可。
https://old-releases.ubuntu.com/releases/20.04.1/ubuntu-20.04-desktop-amd64.iso
虚拟机和宿主机复制粘贴(没试过传文件,都是复制文本)
虚拟机设置共享文件夹:

sudo apt install update
sudo apt install -y open-vm-tools open-vm-tools-desktop
安装好后需要 reboot 才能实现宿主机往ubuntu中拷贝
vmware 设置好共享目录后需要:
sudo vim /etc/fuse.conf
取消注释(或添加)这一行
user_allow_other
保存后(没写入fstab,所以重启后需要重新运行下面的 vmhgfs-fuse 开头的命令):
sudo mkdir -p /mnt/hgfs
sudo chmod 777 /mnt/hgfs
sudo vmhgfs-fuse .host/<share-dir> /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000##eg:
sudo vmhgfs-fuse -o allow_other -o auto_unmount .host:/xilinx /mnt/hgfs
安装tftp服务
1. sudo apt-get install tftp-hpa tftpd-hpa xinetd
tftp-hpa 是客户端
tftpd-hpa 是服务器
2. sudo mkdir /tftpboot
3. sudo chmod -R 777 /tftpboot
4. sudo chown -R nobody /tftpboot
5. sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" # 这里是你的 tftpd-hpa 的服务目录,这个想建立在哪里都行TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" # 这里是选项,-c 是可以上传文件的参数, -s 是指定 tftpdhpa 服务目录,上面已经指定
6. sudo service tftpd-hpa restart
7. sudo /etc/init.d/xinetd restart
测试 tfpt 是否已通:
netstat -a | grep tftp
安装NFS服务
1. sudo apt-get update
2. sudo apt-get install nfs-kernel-server
3. sudo apt-get install nfs-common
4. mkdir -p /tftpboot/nfsroot
5. sudo vim /etc/exports
/tftpboot/nfsroot *(rw,sync,no_root_squash,no_subtree_check)
6. sudo exportfs -a
7. sudo service nfs-kernel-server start
8. showmount -e

Petalinux 工具下载(需要登录账号):
ubuntu需要安装的依赖:
https://adaptivesupport.amd.com/s/article/76526?language=en_US

依赖安装
修改 dash
sudo dpkg-reconfigure dash
选择 No

sudo apt install -y iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3
创建安装目录
sudo mkdir -p /opt/plx_2021.1
sudo chown $USER /opt/plx_2021.1
sudo chgrp $USER /opt/plx_2021.1
安装
mkdir -p /opt/plx_2021.1/plx
./petalinux-v2021.1-final-installer.run -d /opt/plx_2021.1/plx

验证安装
(source 环境变量后可以使用命令补全)
修改根文件系统配置

将 INITRAMFS/INITRD 镜像名称从 petalinux-initramfs-image 更改为 petalinux-image-minimal:
petalinux-config ---> Image Packaging Configuration ---> Root filesystem type --->(INITRD) $ petalinux-config ---> Image Packaging Configuration ---> INITRAMFS/INITRD Image Name (petalinux-image-minimal)
参考:AMD Customer Community
https://adaptivesupport.amd.com/s/article/76842?language=en_US
加快编译速度的设置
downloads包
tar -zxvf downloads_2021.1.tar.gz -C /opt/plx_2021.1/
解压后的文件路径/opt/plx_2021.1/downloads
解压 sstate 包
tar -zxvf sstate_aarch64_2021.1.tar.gz -C /opt/plx_2021.1/
解压后的文件路径
/opt/plx_2021.1/sstate_aaarch64_2021.1/aarch64
使用downloads

使用 sstate

保留 uboot kernel 源码
vim project-spec/meta-user/conf/petalinuxbsp.conf
RM_WORK_EXCLUDE += "u-boot-xlnx"
RM_WORK_EXCLUDE += "linux-xlnx"
kernel: <petalinux_project>/build/tmp/work-shared/zynqmp-generic/kernel-source
uboot: <petalinux_project>/build/tmp/work/zynqmp_generic-xilinx-linux/u-bootxlnx/v2021.01-xilinx-v2021.1+gitAUTOINC+41fc08b3fe-r0/git
tftp下载 Image, system.dtb, 挂载nfs文件系统
uboot 中设置
//设置bootcmd
setenv bootcmd 'tftpboot 0x00200000 Image; tftpboot 0x00100000 system.dtb; booti 0x00200000 - 0x00100000'
//设置 bootargs
//说明:setenv bootargs console=ttyPS0,115200 root=/dev/nfs rw nfsroot=<NFS服务器IP>:<NFS共享路径>,v3,tcp ip=<开发板IP>:<NFS服务器IP>:<网关IP>:<子网掩码>:<主机名>:<网卡>:off
//板子ip:192.168.1.99, ubuntu ip:192.168.1.101。 nfs目录 /share/nfsroot
//将 petalinux 编译的 rootfs.tar.gz 解压。 tar -zxf rootfs.tar.gz -C /share/nfsroot
setenv bootargs console=ttyPS0,115200 root=/dev/nfs rw nfsroot=192.168.1.101:/share/nfsroot,tcp,vers=3 earlyprintk ip=192.168.1.99:192.168.1.101:192.168.1.1:255.255.255.0::eth0:off保存设置
saveenv
tftp 下载Image, system.dtb, rootfs.cpio.gz.u-boot
setenv bootcmd \
'tftpboot 0x00200000 Image; \
tftpboot 0x00100000 system.dtb; \
tftpboot 0x04000000 rootfs.cpio.gz.u-boot; \
booti 0x00200000 0x04000000 0x00100000'
或者使用压缩格式的 Image.gz
setenv ipaddr 192.168.1.99
setenv serverip 192.168.1.101
setenv netmask 255.255.255.0
setenv gatewayip 192.168.1.1
=================================setenv nfsroot /share/nfsroot
setenv nfsoptions rw,nolock,tcp,vers=3setenv kernel_comp_addr_r 0x08000000 # 内核解压临时缓冲区
setenv kernel_comp_size 0x10000000 # 256MB缓冲区setenv bootcmd \
'tftpboot 0x00200000 Image.gz; \
tftpboot 0x00100000 system.dtb; \
setenv bootargs console=ttyPS0,115200 root=/dev/nfs nfsroot=192.168.1.101:/share/nfsroot,${nfsoptions} ip=192.168.1.99:192.168.1.101:192.168.1.1:255.255.255.0::eth0:off earlyprintk; \
booti 0x00200000 - 0x00100000'saveenv
好了,一切就绪,可以随时修改 kernel, dtb , rootfs 之旅了。放弃 sd 卡拷贝来拷贝去吧。。。
ERROR: Failed to Kconfig project
如果 petalinux-config 失败可能是由于没有安装 libtinfo5 没有安装
INFO] Generating Kconfig for project
package require hsi FAILED:
invalid command name "hsi::create_dt_node"
while executing
"hsi::create_dt_node -help"
(in namespace eval "::hsi::help" script line 6)
invoked from within
"namespace eval ::hsi::help {
variable version 0.1
::xsdb::setcmdmeta {hsi create_dt_node} categories {hsi}
::xsdb::setcmdmeta {hsi create..."
(file "/opt/plx2021.1/pxl/tool/xsct/scripts/xsct/hsi/hsihelp.tcl" line 25)
invoked from within
"source /home/g/petalinux/tools/xsct/scripts/xsct/hsi/hsihelp.tcl"
("package ifneeded hsi::help 0.1" script)ERROR: Failed to generate /home/aba/00-prj/15eg/build/misc/config/Kconfig.syshw
ERROR: Failed to Kconfig project
sudo apt install -y libtinfo5
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)