在WSL下配置与安装Petalinux 2020.2

作者:MarkusXu,本文转载自:CSDN博客

本文原文链接:https://blog.csdn.net/Markus_xu/article/details/112318842

前言
Petalinux需要被安装在Linux系统上,而我们平时使用也不能抛弃Windows,所以Linux一般是当做虚拟机或者是双系统安装在我们的电脑上。但是这样一来,需要双系统来回切换很是麻烦,用虚拟机又担心性能损耗,很不方便。

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。换句话说就是微软专门优化的一个Linux虚拟机。使用体验上正好解决了windows和Linux交互,以及兼顾了性能损耗的问题。

本文将在WSL2 Ubuntu18.04下配置Petalinux 2020.2,参考Petalinux。

一、WSL安装
WSL的安装比较傻瓜式,网上也有众多教程,本文只简略叙述。

打开控制面板中的程序与功能,启用“适用于Linux 的 Windows子系统”

去Microsoft Store下载Ubuntu 18.04LTS;**千万不能下20.04版本,不然无法安装Petalinux2020.2版本。**注:新版本入2021.1及以上,已支持20.04LTS

安装完成后点击启动,会自动配置ubuntu,让你输入你得用户名和密码,然后就可以正常登陆。

最后在windows下的powershell下输入wsl --list --verbose,查看WSL的版本是否为WSL2。

若不是,请参考WSL2安装与配置

其余的更新软件源之类的Ubuntu配置不在本文进行阐述。

二、Petalinux 2020.2安装
2.1 安装TFTP(可选)
TFTP作为一种简单的文件传输协议,在嵌入式开发中会经常使用到,而且后面我们在安装Petalinux工具时也会提示需要TFTP服务(否则会报警告),所以我们需要在Ubuntu上搭建TFTP服务器。需要安装tftp-hpa(客户端软件包,如果不用可不装)和tftpd-hpa软件包,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa

TFTP需要一个文件夹来存放文件,我们在根目录下新建一个/tftpboot目录做为TFTP文件存储目录,之所以使用该目录是因为后面使用的Petalinux工具默认使用该目录,省得我们每次建Petalinux工程的时候手动修改。创建/tftpboot目录命令如下:

sudo mkdir -p /tftpboot
sudo chmod 777 /tftpboot

这样就在根目录上创建了一个名为tftpboot的文件夹,路径为/tftpboot。需要注意的是我们要给tftpboot文件夹权限,否则的话后面在使用过程中会遇到问题。

最后配置TFTP。打开/etc/default/tftpd-hpa文件,将其内容修改如下:

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY就是我们上面创建的/tftpboot文件夹目录,以后我们就将所有需要通过TFTP传输的文件都放到该文件夹里面。

最后输入如下命令,重启TFTP服务器:

sudo service tftpd-hpa restart

至此,TFTP服务器就已经搭建好了。

2.2 安装依赖库以及软件
在安装Petalinux之前我们需要为Ubuntu系统安装一些必要的运行软件以及依赖库;,所以大家需要确保Ubuntu能够正常上网,打开Ubuntu Terminal终端执行以下命令:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm pax screen zlib1g-dev texinfo libtool autoconf libselinux1 bison flex libssl-dev libncurses5-dev gcc g++ net-tools

zlib1g:i386 在单独安装的时候会apt提示找不到,需要执行以下命令安装:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386

注:在UG1144 (v2020.2)中并无对所需依赖包的描述,此依赖包截取自2020.1或其更早期版本

2.3 安装Petalinux
Petalinux的安装位置可以任意指定,但是必须chown命令将安装目录的属主和属组更改为当前的用户名,使用chown命令:

sudo chown -R $USER:$USER <目录>`

本文将在/opt/pkg/petalinux/2020.2目录下安装Petalinux,执行代码如下:

sudo chown -R $USER:$USER /opt
mkdir -p /opt/pkg/petalinux/2020.2

切换到包含Petalinux安装包的目录,执行以下命令开始Petalinux的安装

./petalinux-v2020.2-final-installer.run --dir /opt/pkg/petalinux/2020.2

中途会有三次让你阅读软件许可协议,先按Enter进入,然后按q退出,输入y同意协议。

接下来经过一段时间的等待,可以看到安装顺利完成。

安装完成之后,我们还需要进行最后一个设置,petalinux工具需要主机系统的/bin/sh是bash,而Ubuntu默认的/bin/sh是dash,所以这里需要进行更改,如下:

sudo dpkg-reconfigure dash

结果如下图所示,选择“No”按下回车即可。

2.4 设置Petalinux环境变量
在正式使用petalinux工具之前,需要先运行petalinux安装目录下的settings.sh脚本文件设置petalinux工作环境。

一般默认情况下,我们使用bash作为登录shell,所以source脚本文件settings.sh对petalinux所需的运行环境进行配置,命令如下:

source settings.sh

需要注意的是该命令只对当前终端有效,重新打开终端后需要重新执行这一步。执行结果如下图所示:

鉴于每次打开终端使用Petalinux都需要设置相应的环境变量,我们为了方便,将设置Petalinux环境变量的命令设置成别名,这样我们使用起来就方便些。在终端输入如下命令:

echo "alias <输入你想要的别名>='source $PETALINUX/settings.sh'" >> ~/.bashrc

如:
echo "alias sptl='source $PETALINUX/settings.sh'" >> ~/.bashrc

以后只需要输入“别名”就可以完成环境配置。

三、交互体验优化
本文所使用的终端是Windows Terminal,微软商店中可以直接下载。

在Windows上安装VS Code后,可以在WSL的终端输入code .,即可用VS Code打开当前文件夹,代替了UI界面。

参考文章
[1] UG1144-petalinux-tools-reference-guide
[2] 3_启明星ZYNQ之Linux开发指南_V1.5.1