zl程序教程

您现在的位置是:首页 >  系统

当前栏目

ZYNQ - 嵌入式Linux开发 -04- petalinux和Xilinx_SDK2018.3安装

2023-09-14 09:13:04 时间

写在前面

本文主要介绍了关于Petalinux的安装的过程记录,在安装过程中参考相关文章和教程存在些许的问题,此文作为本人开发环境的安装记录。

安装环境

  1. Ubuntu16.04.3虚拟机(内存可以分配大一点,推荐50G以上)
  2. petalinux 18.3(官网获取,或者网盘链接:链接:https://pan.baidu.com/s/1sLCRru2YJeAMLTd6sKFXeQ 提取码:gp0x)
  3. Xilinx_SDK_2018.3(官网获取,或者网盘链接:链接:https://pan.baidu.com/s/1sLCRru2YJeAMLTd6sKFXeQ 提取码:gp0x)

环境搭建

虚拟机安装

使用VMware 15进行搭建虚拟机,分享本人安装的Ubuntu16.04.3系统镜像:链接:https://pan.baidu.com/s/1ghwvjTQa6C_tfs2ftFR-Kw 提取码:m1z

image-20211002012327809

本人虚拟机配置,系统正常安装即可。安装完成后,如果没有安装VMware tools,可以在上面的虚拟机的选项中进行安装,我的虚拟机在我安装完成后进行reboot后即完成了VMware tools的安装。

建立共享文件夹

在虚拟机设置选项中选择勾选共享文件夹设置,

image-20211002012717117

将自己的文件夹共享挂载在虚拟机上即可。

image-20211002012809611

在终端中输入:ll /mnt/hgfs/share/ 即可完成对共享文件夹的访问。

为了方便使用这里可以选择进行建立软连接输入下面的指令(后面的这个路径改为自己想要设置的路径即可):

ln -s /mnt/hgfs/share/ /home/vuko/Desktop/share_file/

image-20211002014115991

成功建立软连接。

搭建tftp服务器

TFTP 作为一种简单的文件传输协议,在嵌入式开发中会经常使用到,在安装 Petalinux 工具时也会提示需要 tftp 服务,所以这里提前安装好tftp-hpa 和 tftpd-hpa 软件包,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa

TFTP 需要一个文件夹来存放文件,在根目录下新建一个/tftpboot 目录做为 TFTP 文件存储目录。创建/tftpboot 目录命令如下:

sudo mkdir -p /tftpboot
sudo chmod 777 /tftpboot

配置tftp,在终端中输入指令,进行打开tftpd-hpa文件:

sudo vim  /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 服务器就已经搭建好了。

开启NFS 和 SSH 服务

NFS服务

Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:

sudo apt-get install nfs-kernel-server

安装完成以后在用户根目录下创建一个名为“linux”的文件夹,以后所有的东西都放到这个“linux”文件夹里面,在“linux”文件夹里面新建一个名为“nfs”的文件夹,

image-20211002015211868

上图中创建的 nfs 文件夹供 nfs 服务器使用,以后可以在开发板上通过网络文件系统来访问 nfs 文件夹。 配置 nfs。 NFS 允许挂载的目录及权限在文件/etc/exports 中进行定义, 使用如下命令打开 nfs 配置文件/etc/exports:

sudo vim /etc/exports

打开/etc/exports 以后在后面添加如下内容:

/home/vuko/linux/nfs *(rw,sync,no_root_squash)

/home/vuko/linux/nfs 是要共享的目录, *代表允许所有的网络段访问, rw 是可读写权限, sync 是文件同步写入存储器, no_root_squash 是 nfs 客户端分享目录使用者的权限。如果客户端使用的是 root 用户,对于该共享目录而言,该客户端就具有 root 权限。

重启 NFS 服务,使用如下命令:

sudo service nfs-kernel-server restart

此时可以运行以下命令来显示共享的目录:

showmount -e

在 nfs 运行的过程中,修改了/etc/exports 配置文件,可以使用 exportfs 命令使改动生效,具体命令:

sudo exportfs -rv  

SSH服务

开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu,比如使用 SecureCRT, Ubuntu 下使用如下命令开启 SSH 服务:

sudo apt-get install openssh-server

上述命令安装 ssh 服务, ssh 的配置文件为/etc/ssh/sshd_config,使用默认配置即可。

VScode安装

下载linux版本的安装包,然后在终端中执行安装:

sudo dpkg -i code_1.32.3-1552606978_amd64.deb

image-20211002015730346

完成安装后可以在搜索界面搜索到vscode,为了方便创建桌面快捷方式。在文件中选择–>转到,再点击输入位置,

image-20211002015912620

输入/usr/share/applications/,即可看到应用程序。

image-20211002020050768

将要添加的应用程序进行右击,选择复制到桌面即可。

vscode插件安装,这里跟着正点原子的教程进行正常安装:

1)、 C/C++,这个肯定是必须的。
2)、 C/C++ Snippets,即 C/C++重用代码块。
3)、 C/C++ Advanced Lint,即 C/C++静态检测。
4)、 Code Runner,即代码运行。
5)、 Include AutoComplete,即自动头文件包含。
6)、 Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、 One Dark Pro, VSCode 的主题。
8)、 GBKtoUTF8,将 GBK 转换为 UTF8。
9)、 ARM,即支持 ARM 汇编语法高亮显示。
10)、 Chinese(Simplified),即中文环境。
11)、 vscode-icons, VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、 compareit,比较插件,可以用于比较两个文件的差异。
13)、 DeviceTree,设备树语法插件。

Petalinux 的安装

Petalinux简介

PetaLinux 是构建于Yocto Linux 发行版的一组高级命令。PetaLinux 工具让您能够为赛灵思处理器系统定制、构建和部署嵌入式 Linux 解决方案/Linux 镜像。此工具专为提高设计效率而量身定制,并可与赛灵思硬件设计工具(如 Vivado)一起使用,以便于轻松地开发面向 Zynq® UltraScale+™ MPSoC、Zynq®-7000 SoC 和 MicroBlaze™ 的 Linux 系统。简单说来,它是一组简化的命令,可用于快速轻松地为赛灵思开发板制作定制的 Linux 系统/镜像。

通过上面的环境搭建,可以通过共享文件夹将Petalinux安装文件搬移到Ubuntu操作系统中,然后可以对文件的权限进行修改执行:

sudo chmod 777 petalinux-v2018.3-final-installer.run

安装依赖库和软件

在安装 Petalinux 之前,需要为 Ubuntu 系统安装一些必要的运行软件以及依赖库,所以需要确保Ubuntu 能够正常上网,开始我按照正点原子的教程进行安装,会存在依赖问题无法安装这里就在网上找的了另外一种办法:

使用aptitude包管理器,可以一次性解决包依赖性问题。安装相关依赖库和软件前先安装aptitude包管理器:

sudo apt-get install aptitude

打开终端执行以下命令:

sudo aptitude install tofrodos:i386 iproute2:i386 gawk:i386 gcc make:i386 net-tools:i386 libncurses5-dev:i386 zlib1g-dev:i386 libssl-dev:i386 flex:i386 bison:i386 libselinux1:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd cpp:i386 gcc-5:i386 binutils:i386 chrpath socat autoconf libtool git texinfo gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev

然后就执行默认操作即可。本人操作后发现这种方法仍会少安装库,所以单独安装下未正常安装的库:

sudo apt-get install build-essential

安装Petalinux

准备工作完成,开始安装Petalinux,将Petalinux放在/opt 目录下。在/opt 目录下新建专门存放 Petalinux 的文件夹,/opt/pkg/petalinux/2018.3,在终端输入以下命令即可:

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

chown 命令将/opt 目录的属主和属组更改为当前的用户名,如Ubuntu 用户名为 vuko,执行的chown 命令就相当于“sudo chown -R vuko:vuko /opt”, 然后通过 mkdir 创建安装目录。 现在将 petalinux安装在/opt/pkg/petalinux/2018.3 目录下, 在终端中输入如下命令:

./petalinux-v2018.3-final-installer.run /opt/pkg/petalinux/2018.3  

运行上述命令后,需要等待一段时间,如果依赖包安装正常,就会出现“Press Enter to display the license agreements”字样,如下所示:

image-20211002021342949

回车键显示软件许可协议, 按下 Q 键退出,回到之前的界面之后
会出现一个选择项,连续选择y,进入安装。

image-20211002021525349

安装完成后进入到安装路径下显示文件夹如下:

image-20211002021656212

修改 bash

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

sudo dpkg-reconfigure dash  

如下图所示,选择no按下回车。

image-20211002021750915

设置 Petalinux 环境变量

在正式使用 petalinux 工具之前,需要先运行 petalinux 安装目录下的 settings.sh 脚本文件设置 petalinux工作环境, settings.sh 脚本用于 bash,还有一个 settings.csh 用于 C shell。一般默认情况下,使用 bash 作为登录 shell,所以 source 脚本文件 settings.sh 对 petalinux 所需的运行环境进行配置,命令如下:

source settings.sh

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

image-20211002022044560

验证下工作环境是否已设置,在终端输入如下命令:

echo $PETALINUX

结果如下:

image-20211002022148333

显示 Petalinux 的安装目录,表明工作环境已设置。现在可以使用 Petalinux 工具了。鉴于每次打开终端使用 Petalinux 都需要设置相应的环境变量,为了方便,将设置 Petalinux 环境变量的命令设置成别名,这样使用起来就方便些。设置别名方法的很简单, 在终端输入如下命令:

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

以后我们打开终端后,输入 sptl 就可以设置 Petalinux 的环境变量了,无需输入长长的路径。 sptl 的记忆法是 Source PeTaLinux 的环境变量。

安装 Xilinx SDK

将Xilinx_SDK_2018.3_1207_2324_Lin64.bin复制到Ubuntu的文件环境中,然后在文件所在路径下执行(确保文件有足够权限):

./Xilinx_SDK_2018.3_1207_2324_Lin64.bin

勾选安装,和win安装步骤类似。安装完成桌面出现下面图标,即为安装完成(如果勾选创建快捷方式的话):

image-20211002022649601

安装 JTAG cable 驱动

进入到 petalinux 安装目录,然后移动到tools文件夹下找到安装路径:

cd tools/xsct/SDK/2018.3/data/xicom/cable_drivers/lin64/install_script/install_drivers

输入安装指令:

sudo ./install_drivers

image-20211002022953490

由上图可知, jtag 驱动安装成功。

安装完成后的遗留问题

  1. ubuntu无法打开系统设置的解决办法

    重新安装相关库:

    sudo apt-get install gnome-control-center
    
  2. 共享文件夹不显示

    解决办法:换用别的支持包:

    apt-get install open-vm-*
    

    再次运行启动:

    sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
    

    如果报这个错:if you are sure this is safe, use the 'nonempty' mount option
    输入:

    sudo vmhgfs-fuse .host:/ -o nonempty /mnt/hgfs -o allow_other
    

References

  1. 正点原子开发教程
  2. petalinux2018.3安装教程,基于Ubuntu16.04.4
  3. 共享文件夹不显示