ZYNQ - 嵌入式Linux开发 -04- petalinux和Xilinx_SDK2018.3安装
写在前面
本文主要介绍了关于Petalinux的安装的过程记录,在安装过程中参考相关文章和教程存在些许的问题,此文作为本人开发环境的安装记录。
安装环境
- Ubuntu16.04.3虚拟机(内存可以分配大一点,推荐50G以上)
- petalinux 18.3(官网获取,或者网盘链接:链接:https://pan.baidu.com/s/1sLCRru2YJeAMLTd6sKFXeQ 提取码:gp0x)
- 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
本人虚拟机配置,系统正常安装即可。安装完成后,如果没有安装VMware tools,可以在上面的虚拟机的选项中进行安装,我的虚拟机在我安装完成后进行reboot后即完成了VMware tools的安装。
建立共享文件夹
在虚拟机设置选项中选择勾选共享文件夹设置,
将自己的文件夹共享挂载在虚拟机上即可。
在终端中输入:ll /mnt/hgfs/share/
即可完成对共享文件夹的访问。
为了方便使用这里可以选择进行建立软连接输入下面的指令(后面的这个路径改为自己想要设置的路径即可):
ln -s /mnt/hgfs/share/ /home/vuko/Desktop/share_file/
成功建立软连接。
搭建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”的文件夹,
上图中创建的 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
完成安装后可以在搜索界面搜索到vscode,为了方便创建桌面快捷方式。在文件中选择–>转到,再点击输入位置,
输入/usr/share/applications/
,即可看到应用程序。
将要添加的应用程序进行右击,选择复制到桌面即可。
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”字样,如下所示:
回车键显示软件许可协议, 按下 Q 键退出,回到之前的界面之后
会出现一个选择项,连续选择y,进入安装。
安装完成后进入到安装路径下显示文件夹如下:
修改 bash
安装完成之后,还需要进行一个设置, petalinux 工具需要主机系统的/bin/sh 是 bash,而 Ubuntu默认的/bin/sh 是 dash,所以这里需要进行更改,运行 sudo dpkg-reconfigure dash 命令,如下:
sudo dpkg-reconfigure dash
如下图所示,选择no按下回车。
设置 Petalinux 环境变量
在正式使用 petalinux 工具之前,需要先运行 petalinux 安装目录下的 settings.sh 脚本文件设置 petalinux工作环境, settings.sh 脚本用于 bash,还有一个 settings.csh 用于 C shell。一般默认情况下,使用 bash 作为登录 shell,所以 source 脚本文件 settings.sh 对 petalinux 所需的运行环境进行配置,命令如下:
source settings.sh
需要注意的是该命令只对当前终端有效,重新打开终端后需要重新执行这一步。执行结果如下图所示:
验证下工作环境是否已设置,在终端输入如下命令:
echo $PETALINUX
结果如下:
显示 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安装步骤类似。安装完成桌面出现下面图标,即为安装完成(如果勾选创建快捷方式的话):
安装 JTAG cable 驱动
进入到 petalinux 安装目录,然后移动到tools文件夹下找到安装路径:
cd tools/xsct/SDK/2018.3/data/xicom/cable_drivers/lin64/install_script/install_drivers
输入安装指令:
sudo ./install_drivers
由上图可知, jtag 驱动安装成功。
安装完成后的遗留问题
-
ubuntu无法打开系统设置的解决办法
重新安装相关库:
sudo apt-get install gnome-control-center
-
共享文件夹不显示
解决办法:换用别的支持包:
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
相关文章
- Linux中新建脚本初探(linux新建脚本)
- 重新编译Linux下的PHP(linux重新编译php)
- 基于嵌入式Linux的应用开发之路(嵌入式linux应用开发)
- 安装Linux下水星网卡驱动程序(水星网卡linux驱动)
- Linux系统下安装PostgreSQL的步骤(linux安装pgsql)
- Linux系统下的分区隐形之旅(linux看不到分区)
- 安装Linux,拥有智能电视体验(linux电视系统软件)
- Linux安全:认证让您放心安全”(linux安全认证)
- Linux的分支:从基础到智能扩展(linux的分支)
- Linux版本发展史:分支之路(linux的分支)
- Linux 进程提升带宽利用率(linux进程带宽)
- 熟悉Linux:关闭防火墙保护(关闭linux的防火墙)
- Linux 下如何安装 Oracle 数据库:详细步骤解析(linux安装oracle)
- 安装 Linux 系统 从 U 盘启动你的电脑(linux进u盘系统)
- 东莞 IT 人员的 Linux 体验之旅(东莞linux)
- 探索小红帽之旅:开启Linux世界新篇章(小红帽linux)
- Linux 安装显卡驱动:快速操作指南(linux装显卡驱动)
- Linux安装之路:让我们开启软件之旅(linux 安装路径)
- Linux使用Nmap安装快速指南(linux下nmap安装)
- 安装ADB工具Linux下快速安装ADB工具:快进快出(adb linux 下载)
- Linux下设置虚拟IP实现网络隔离(linux 设置虚拟ip)
- Linux 安装指南:简单快捷步骤获取自由之美(linux 安装码)
- 解开谜团:Linux账户何时被锁定?(linux 账户被锁定)