1. petalinux-v2018.2安装
1.1. 安装前准备
- 阅读《ug1144-petalinux-tools-reference-guide.pdf》的 Ch. 2: Setting up your Environment
- 将Ubuntu系统版本与petalinux版本的系统安装要求严格对应
- 请按照Table 2-1: Packages and Linux Workstation Environments中说明安装必要的命令行工具和软件库
- 准备Ubuntu安装镜像文件ubuntu-14.04.6-desktop-amd64.iso
特别注意linux系统版本
- 我曾经尝试在在Ubuntu 16.04中集成petalinux2018.2和petalinux2021.2,以失败告终。遇到的问题如下:
A. 在使用petalinux2021.2时,提示gcc版本比较低,要求gcc版本大于6,Ubuntu16.04默认gcc版本4.6。
B. 安装gcc6版本后,在使用时又提示当天的petalinux环境不支持当前系统 - 我曾经尝试在在Ubuntu 18.04中集成petalinux2018.2和petalinux2021.2,以失败告终。遇到的问题如下:
A. 在使用petalinux2018.2时,提示某两行脚本语法错误。最终查询结果是petalinux本身的命令行工具提示的语法错误,该命令行工具是个二进制文件,无法解决。
- 下载petalinux安装文件 petalinux-v2018.2-final-installer.run
1.2. 安装步骤
- 根据文档安装必要的工具库
sudo apt -y install tofrodos iproute2 gawk xvfb git make net-tools libncurses5-dev zlib1g-dev:i386 libssl-dev flex bison libselinux1 wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev screen pax gzip dpkg-dev
sudo apt install gnupg # 与上面一起安装提示找不到gnupg,上面执行完后在安装提示说已安装
sudo apt install tftpd
- 安装petalinux
# 准备安装目录、运行安装程序
chmod u+x petalinux-v2018.2-final-installer.run
mkdir -p ~/.bin/petalinux-v2018.2-final
./petalinux-v2018.2-final-installer.run ~/.bin/petalinux-v2018.2-final
#安装完成后执行下面两条命令
source ~/.bin/petalinux-v2018.2-final/settings.sh
petalinux-util --webtalk off
- 安装过程说明
执行完第二步“2.安装petalinux ”后就开始了安装过程,在安装过程中安装程序主要完成的工作如下:
A. 校验安装文件的校验和,例如: INFO: Checking installer checksum…
B. 加压缩安装文件,例如:INFO: Extracting PetaLinux installer…
C. 许可证协议,如下图,直接按下“Enter”键,然后,再按“q”退出即可
D. 连续三个许可证声明询问是否接受,每一项我们选择"y",进入许可证说明页面,然后按"q"键退出即可。许可证声明选则如下图。
E. 开始检测安装环境,进入自动安装流程,到这一步就不需要敢于,等待安装完成即可。
- 整个安装流程界面
harley@PetalinuxHost:~$ ./petalinux-v2018.2-final-installer.run .bin/petalinux-v2018.2-final/
INFO: Checking installer checksum...
INFO: Extracting PetaLinux installer...
LICENSE AGREEMENTS
PetaLinux SDK contains software from a number of sources. Please review
the following licenses and indicate your acceptance of each to continue.
You do not have to accept the licenses, however if you do not then you may
not use PetaLinux SDK.
Use PgUp/PgDn to navigate the license viewer, and press 'q' to close
Press Enter to display the license agreements
Do you accept Xilinx End User License Agreement? [y/N] > y
Do you accept Webtalk Terms and Conditions? [y/N] > y
Do you accept Third Party End User License Agreement? [y/N] > y
INFO: Checking installation environment requirements...
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "PetaLinux SDK Installation Guide" for its impact and solution
INFO: Installing PetaLinux...
INFO: Checking PetaLinux installer integrity...
INFO: Installing PetaLinux SDK to ".bin/petalinux-v2018.2-final//."
................................................................................................................................................................................................................................................................................INFO: Installing aarch64 Yocto SDK to ".bin/petalinux-v2018.2-final//./components/yocto/source/aarch64"...
PetaLinux Extensible SDK installer version 2018.2
=================================================
You are about to install the SDK to "/home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/aarch64". Proceed[Y/n]? Y
Extracting SDK................................done
Setting it up...
Extracting buildtools...
done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/aarch64/environment-setup-aarch64-xilinx-linux
INFO: Installing arm Yocto SDK to ".bin/petalinux-v2018.2-final//./components/yocto/source/arm"...
PetaLinux Extensible SDK installer version 2018.2
=================================================
You are about to install the SDK to "/home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/arm". Proceed[Y/n]? Y
Extracting SDK..............................done
Setting it up...
Extracting buildtools...
done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/arm/environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi
INFO: Installing microblaze_full Yocto SDK to ".bin/petalinux-v2018.2-final//./components/yocto/source/microblaze_full"...
PetaLinux Extensible SDK installer version 2018.2
=================================================
You are about to install the SDK to "/home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/microblaze_full". Proceed[Y/n]? Y
Extracting SDK.............................done
Setting it up...
Extracting buildtools...
done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/microblaze_full/environment-setup-microblazeel-v10.0-bs-cmp-re-mh-div-xilinx-linux
INFO: Installing microblaze_lite Yocto SDK to ".bin/petalinux-v2018.2-final//./components/yocto/source/microblaze_lite"...
PetaLinux Extensible SDK installer version 2018.2
=================================================
You are about to install the SDK to "/home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/microblaze_lite". Proceed[Y/n]? Y
Extracting SDK.............................done
Setting it up...
Extracting buildtools...
done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/harley/.bin/petalinux-v2018.2-final/components/yocto/source/microblaze_lite/environment-setup-microblazeel-v10.0-bs-cmp-re-ml-xilinx-linux
INFO: PetaLinux SDK has been installed to .bin/petalinux-v2018.2-final//.
- petalinux 2021.2使用问题
安装完成后检测测试petalinux安装环境是否可以正常使用。在加载petalinux开发环境脚本时,提示WARNING: /bin/sh is not bash!
,WARNING: No tftp server found
,如下图。
A. WARNING: /bin/sh is not bash!
官方文档说明petalinux要求默认的shell使用bash。
在Ubuntu的命令行中断输入sudo dpkg-reconfigure dash
,弹出“软件包设置对话框“,入下图,选择”否“,确认退出即可解决。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJkG7kXm-1650979895073)(vx_images/48611423247290.png)]
上图选择否后,Ubuntu系统就会将用户的shell由dash切换为bash,入下图
B. WARNING: No tftp server found
该警告不用理会,就是提示系统没有安装tftp server。tftp server是系统的文件服务器,petalinux在编译完工程生成的系统可执行程序会自动拷贝到tftp server的目录中,方便下载到设备。一般我们会在linux下编译,然后在window上进行可执行程序的部署工作。所以该条警告不用理会。
2. petalinux-v2021.2安装
2.1. 安装前准备
- 阅读petalinux 2021.2版本的《ug1144-petalinux-tools-reference-guide.pdf》的 Ch. 2: Setting up your Environment
- 准备Ubuntu安装镜像文件ubuntu-20.04.1-desktop-amd64.iso
- 下载petalinux安装文件 petalinux-v2021.2-final-installer.run
2.2. 安装必要命令行工具和软件库
安装的命令行工具和软件库《ug1144-petalinux-tools-reference-guide.pdf》没有直接给出,在Note:
里进行了说明,根据文档指示,找到链接下载Excel表格文件,里面列出了要安装的内容,在快速安装里给出了需要安装命令行工具和库,如下:
sudo apt-get install 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
命令行工具和软件库安装过程如下(部分截取):
harley@PetalinuxHost:~$ sudo apt-get install 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] harley 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,选中 'python-is-python2' 而非 'python'
注意,选中 'git' 而非 'git-core'
注意,选中 'pylint' 而非 'pylint3'
debianutils 已经是最新版 (4.9.1)。
debianutils 已设置为手动安装。
gzip 已经是最新版 (1.10-0ubuntu4)。
iproute2 已经是最新版 (5.5.0-1ubuntu1)。
iproute2 已设置为手动安装。
iputils-ping 已经是最新版 (3:20190709-3)。
iputils-ping 已设置为手动安装。
libselinux1 已经是最新版 (3.0-1build2)。
libselinux1 已设置为手动安装。
python3 已经是最新版 (3.8.2-0ubuntu2)。
python3 已设置为手动安装。
python3-pexpect 已经是最新版 (4.6.0-1build1)。
python3-pexpect 已设置为手动安装。
unzip 已经是最新版 (6.0-25ubuntu1)。
unzip 已设置为手动安装。
将会同时安装下列软件:
alsa-ucm-conf autotools-dev binutils binutils-common binutils-x86-64-linux-gnu blt cpp-9 dirmngr
dpkg-dev fakeroot g++ g++-9 gcc-10-base gcc-10-base:i386 gcc-9 gcc-9-base gcc-9-multilib git-man
gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gpgv lib32asan5
lib32atomic1 lib32gcc-9-dev lib32gcc-s1 lib32gomp1 lib32itm1 lib32quadmath0 lib32stdc++6 lib32ubsan1
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libasound2
libasound2-data libasound2-dev libatomic1 libbinutils libblkid-dev libblkid1 libc-dev-bin libc6
libc6:i386 libc6-dbg libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32 libcaca-dev
libcaca0 libcc1-0 libcrypt-dev libcrypt1:i386 libctf-nobfd0 libctf0 libegl-dev libegl1 liberror-perl
libexpat1 libexpat1-dev libfakeroot libffi-dev libfl-dev libfl2 libgcc-9-dev libgcc-s1
libgcc-s1:i386 libgl-dev libgl1 libgl1-mesa-dev libgles-dev libgles1 libgles2 libglib2.0-0
libglib2.0-bin libglib2.0-dev libglib2.0-dev-bin libglu1-mesa-dev libglvnd-dev libglvnd0 libglx-dev
libglx0 libgomp1 libidn2-0:i386 libitm1 liblsan0 libltdl-dev libmount-dev libmount1 libncurses-dev
libopengl-dev libopengl0 libpcre16-3 libpcre2-16-0 libpcre2-dev libpcre2-posix2 libpcre3-dev
libpcre32-3 libpcrecpp0v5 libpng-dev libpng-tools libpthread-stubs0-dev libpulse-dev
libpulse-mainloop-glib0 libpulse0 libpulsedsp libpython2-stdlib libpython2.7-minimal
libpython2.7-stdlib libpython3-dev libpython3.8 libpython3.8-dev libpython3.8-minimal
libpython3.8-stdlib libquadmath0 libsdl1.2debian libselinux1-dev libsepol1-dev libsigsegv2
libslang2-dev libssl1.1 libstdc++-9-dev libstdc++6 libtcl8.6 libtext-unidecode-perl libtk8.6
libtsan0 libubsan1 libunistring2:i386 libutempter0 libuuid1 libx11-6 libx11-dev libx32asan5
libx32atomic1 libx32gcc-9-dev libx32gcc-s1 libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++6
libx32ubsan1 libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl
linux-libc-dev m4 manpages-dev pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
python-pip-whl python2 python2-minimal python2.7 python2.7-minimal python3-astroid python3-dev
python3-distutils python3-gitdb python3-isort python3-lazy-object-proxy python3-lib2to3
python3-logilab-common python3-mccabe python3-setuptools python3-smmap python3-tk python3-wheel
python3-wrapt python3.8 python3.8-dev python3.8-minimal tex-common tk8.6-blt2.5 uuid-dev
x11proto-core-dev x11proto-dev x11proto-xext-dev xinetd xorg-sgml-doctools xtrans-dev zlib1g
建议安装:
autoconf-archive gnu-standards autoconf-doc gettext binutils-doc bison-doc blt-demo libarchive1
gcc-9-locales tor debian-keyring flex-doc g++-multilib g++-9-multilib gcc-9-doc gawk-doc gcc-doc
git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs
git-mediawiki git-svn parcimonie xloadimage scdaemon libasound2-doc glibc-doc glibc-doc:i386
locales:i386 libgirepository1.0-dev libglib2.0-doc libxml2-utils libtool-doc ncurses-doc libssl-doc
libstdc++-9-doc tcl8.6 tk8.6 gfortran | fortran95-compiler gcj-jdk libx11-doc libxcb-doc libxext-doc
libxml-sax-expatxs-perl m4-doc make-doc pavumeter pavucontrol paman paprefs ubuntu-sounds pylint-doc
python2-doc python-tk python2.7-doc binfmt-support python-git-doc python-jinja2-doc
python-setuptools-doc python3-nose tix python3-tk-dbg python3.8-venv python3.8-doc byobu | screenie
| iselect ncompress tar-scripts tar-doc debhelper texlive-base texlive-latex-base
texlive-plain-generic texlive-fonts-recommended xfonts-cyrillic
下列【新】软件包将被安装:
autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu bison blt
build-essential chrpath diffstat dpkg-dev fakeroot flex g++ g++-9 gawk gcc gcc-10-base:i386 gcc-9
gcc-9-multilib gcc-multilib git git-man lib32asan5 lib32atomic1 lib32gcc-9-dev lib32gcc-s1
lib32gomp1 lib32itm1 lib32quadmath0 lib32stdc++6 lib32ubsan1 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libasound2-dev libatomic1 libbinutils
libblkid-dev libc-dev-bin libc6:i386 libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32
libcaca-dev libcrypt-dev libcrypt1:i386 libctf-nobfd0 libctf0 libegl-dev libegl1-mesa liberror-perl
libexpat1-dev libfakeroot libffi-dev libfl-dev libfl2 libgcc-9-dev libgcc-s1:i386 libgl-dev
libgl1-mesa-dev libgles-dev libgles1 libglib2.0-dev libglib2.0-dev-bin libglu1-mesa-dev libglvnd-dev
libglx-dev libidn2-0:i386 libitm1 liblsan0 libltdl-dev libmount-dev libncurses-dev libncurses5-dev
libopengl-dev libopengl0 libpcre16-3 libpcre2-16-0 libpcre2-dev libpcre2-posix2 libpcre3-dev
libpcre32-3 libpcrecpp0v5 libpng-dev libpng-tools libpthread-stubs0-dev libpulse-dev
libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-dev libpython3.8-dev
libquadmath0 libsdl1.2-dev libsdl1.2debian libselinux1-dev libsepol1-dev libsigsegv2 libslang2-dev
libssl-dev libstdc++-9-dev libtcl8.6 libtext-unidecode-perl libtk8.6 libtool libtsan0 libubsan1
libunistring2:i386 libutempter0 libx11-dev libx32asan5 libx32atomic1 libx32gcc-9-dev libx32gcc-s1
libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++6 libx32ubsan1 libxau-dev libxcb1-dev
libxdmcp-dev libxext-dev libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl
libxml-sax-expat-perl libxml-sax-perl linux-libc-dev m4 make manpages-dev net-tools pax pylint
python-is-python2 python-pip-whl python2 python2-minimal python2.7 python2.7-minimal python3-astroid
python3-dev python3-distutils python3-git python3-gitdb python3-isort python3-jinja2
python3-lazy-object-proxy python3-logilab-common python3-mccabe python3-pip python3-setuptools
python3-smmap python3-tk python3-wheel python3-wrapt python3.8-dev screen socat tex-common texinfo
tftpd tk8.6-blt2.5 uuid-dev x11proto-core-dev x11proto-dev x11proto-xext-dev xinetd
xorg-sgml-doctools xterm xtrans-dev zlib1g:i386 zlib1g-dev
下列软件包将被升级:
alsa-ucm-conf cpio cpp-9 dirmngr gcc-10-base gcc-9-base gnupg gnupg-l10n gnupg-utils gpg gpg-agent
gpg-wks-client gpg-wks-server gpgconf gpgsm gpgv libasound2 libasound2-data libblkid1 libc6
libc6-dbg libcaca0 libcc1-0 libegl1 libexpat1 libgcc-s1 libgl1 libgles2 libglib2.0-0 libglib2.0-bin
libglvnd0 libglx0 libgomp1 libmount1 libpulse-mainloop-glib0 libpulse0 libpulsedsp libpython3.8
libpython3.8-minimal libpython3.8-stdlib libssl1.1 libstdc++6 libuuid1 libx11-6 pulseaudio
pulseaudio-module-bluetooth pulseaudio-utils python3-lib2to3 python3.8 python3.8-minimal tar wget
xz-utils zlib1g
升级了 54 个软件包,新安装了 179 个软件包,要卸载 0 个软件包,有 467 个软件包未被升级。
需要下载 136 MB 的归档。
解压缩后会消耗 506 MB 的额外空间。
您希望继续执行吗? [Y/n] Y
2.3. 安装petalinux-v2021.2
- 准备安装目录,
mkdir -p ~/.bin/petalinux-v2021.2-final
- 修改安装文件添加可执行权限,
chmod u+x petalinux-v2021.2-final-installer.run
- 运行安装程序,
./petalinux-v2021.2-final-installer.run -d ~/.bin/petalinux-v2021.2-final
- 安装程序开始执行
安装程序的执行流程如下:
A. 检测安装环境
B. 安装文件校验和验证、解压缩安装文件
C. LICENSE AGREEMENTS,按下“Enter”键,按“q”键退出即可
D. 连续2个license agreements,输入“y”按下“Enter”键,然后输入“q”键退出即可
E. 安装程序进入自动安装流程,无需人为干预等待结束即可
- 整个安装流程记录
harley@PetalinuxHost:~$ ./petalinux-v2021.2-final-installer.run -d ~/.bin/petalinux-v2021.2-final/
INFO: Checking installation environment requirements...
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "UG1144 PetaLinux Tools Documentation Reference Guide" for its impact and solution
INFO: Checking installer checksum...
INFO: Extracting PetaLinux installer...
LICENSE AGREEMENTS
PetaLinux SDK contains software from a number of sources. Please review
the following licenses and indicate your acceptance of each to continue.
You do not have to accept the licenses, however if you do not then you may
not use PetaLinux SDK.
Use PgUp/PgDn to navigate the license viewer, and press 'q' to close
Press Enter to display the license agreements
Do you accept Xilinx End User License Agreement? [y/N] > y
Do you accept Third Party End User License Agreement? [y/N] > y
INFO: Installing PetaLinux...
INFO: Checking PetaLinux installer integrity...
INFO: Installing PetaLinux SDK to "/home/harley/.bin/petalinux-v2021.2-final/."
INFO: Installing buildtools in /home/harley/.bin/petalinux-v2021.2-final/./components/yocto/buildtools
INFO: Installing buildtools-extended in /home/harley/.bin/petalinux-v2021.2-final/./components/yocto/buildtools_extended
INFO: PetaLinux SDK has been installed to /home/harley/.bin/petalinux-v2021.2-final/.
- petalinux 2021.2使用问题
安装完成后检测测试petalinux安装环境是否可以正常使用。在加载petalinux开发环境脚本时,提示WARNING: /bin/sh is not bash!
,WARNING: No tftp server found
。
A.WARNING: /bin/sh is not bash!
官方文档说明petalinux要求默认的shell使用bash。
在Ubuntu的命令行中断输入sudo dpkg-reconfigure dash
,弹出“软件包设置对话框“,入下图,选择”否“,确认退出即可解决。
上图选择否后,Ubuntu系统就会将用户的shell由dash切换为bash,入下图
B. WARNING: No tftp server found
该警告不用理会,就是提示系统没有安装tftp server。tftp server是系统的文件服务器,petalinux在编译完工程生成的系统可执行程序会自动拷贝到tftp server的目录中,方便下载到设备。一般我们会在linux下编译,然后在window上进行可执行程序的部署工作。所以该条警告不用理会。