Petalinux安装

1. petalinux-v2018.2安装

1.1. 安装前准备

  1. 阅读《ug1144-petalinux-tools-reference-guide.pdf》的 Ch. 2: Setting up your Environment
  • 将Ubuntu系统版本与petalinux版本的系统安装要求严格对应
  • 请按照Table 2-1: Packages and Linux Workstation Environments中说明安装必要的命令行工具和软件库
  1. 准备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本身的命令行工具提示的语法错误,该命令行工具是个二进制文件,无法解决。
  1. 下载petalinux安装文件 petalinux-v2018.2-final-installer.run

1.2. 安装步骤

  1. 根据文档安装必要的工具库
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
  1. 安装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 
  1. 安装过程说明

执行完第二步“2.安装petalinux ”后就开始了安装过程,在安装过程中安装程序主要完成的工作如下:
A. 校验安装文件的校验和,例如: INFO: Checking installer checksum…
B. 加压缩安装文件,例如:INFO: Extracting PetaLinux installer…
C. 许可证协议,如下图,直接按下“Enter”键,然后,再按“q”退出即可
在这里插入图片描述

D. 连续三个许可证声明询问是否接受,每一项我们选择"y",进入许可证说明页面,然后按"q"键退出即可。许可证声明选则如下图。
在这里插入图片描述

E. 开始检测安装环境,进入自动安装流程,到这一步就不需要敢于,等待安装完成即可。

  1. 整个安装流程界面
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//.
  1. 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. 安装前准备

  1. 阅读petalinux 2021.2版本的《ug1144-petalinux-tools-reference-guide.pdf》的 Ch. 2: Setting up your Environment
  2. 准备Ubuntu安装镜像文件ubuntu-20.04.1-desktop-amd64.iso
  3. 下载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

  1. 准备安装目录,mkdir -p ~/.bin/petalinux-v2021.2-final
  2. 修改安装文件添加可执行权限,chmod u+x petalinux-v2021.2-final-installer.run
  3. 运行安装程序,./petalinux-v2021.2-final-installer.run -d ~/.bin/petalinux-v2021.2-final
  4. 安装程序开始执行
    安装程序的执行流程如下:
    A. 检测安装环境
    在这里插入图片描述

B. 安装文件校验和验证、解压缩安装文件 在这里插入图片描述
C. LICENSE AGREEMENTS,按下“Enter”键,按“q”键退出即可
在这里插入图片描述

D. 连续2个license agreements,输入“y”按下“Enter”键,然后输入“q”键退出即可
在这里插入图片描述

E. 安装程序进入自动安装流程,无需人为干预等待结束即可
在这里插入图片描述

  1. 整个安装流程记录
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/.
  1. 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上进行可执行程序的部署工作。所以该条警告不用理会。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值