在Ubuntu 20.04上安装PetaLinux 2020.1的避坑实战指南
如果你正在Ubuntu 20.04上尝试安装PetaLinux 2020.1,可能会发现官方文档对较新系统的支持并不完善。本文将分享我在这个特定环境下的完整安装过程,包括那些官方文档没提到的依赖问题、权限陷阱,以及如何优雅地配置环境变量。
1. 系统准备与环境检查
在开始安装之前,我们需要确保系统满足PetaLinux的基本要求。Ubuntu 20.04虽然不在官方支持列表中,但通过一些调整完全可以正常运行PetaLinux 2020.1。
首先检查系统shell配置:
ls -l /bin/sh如果显示dash而不是bash,需要执行:
sudo dpkg-reconfigure dash在出现的对话框中选择"No",将默认shell切换为bash。
接下来是依赖库的安装。官方文档提供的命令在Ubuntu 20.04上可能会遇到包名变更或不再可用的库。以下是经过验证可用的完整依赖列表:
sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd \ zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat \ chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev \ gcc-multilib build-essential zlib1g:i386 screen pax gzip \ libtinfo5 libncurses5-dev libncursesw5-dev注意:Ubuntu 20.04默认不再包含
libtinfo5,但PetaLinux需要它。如果安装过程中提示缺少这个库,需要单独安装。
2. 安装程序获取与权限设置
从Xilinx官网下载PetaLinux 2020.1安装程序后,不要急于运行。首先创建一个专用目录来存放安装文件:
mkdir -p ~/petalinux chmod 755 ~/petalinux mv petalinux-v2020.1-final-installer.run ~/petalinux/ cd ~/petalinux关于安装路径权限,有几点需要特别注意:
- 绝对不要使用
chmod 775修改安装程序权限 - 不要使用root用户运行安装程序
- 安装目录必须具有写入权限
3. 解决Ubuntu 20.04特有的安装问题
在Ubuntu 20.04上运行安装程序时,可能会遇到以下问题及解决方案:
3.1 Python版本冲突
PetaLinux 2020.1默认使用Python 2.7,而Ubuntu 20.04默认使用Python 3。解决方法:
sudo apt-get install python2.7 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 sudo update-alternatives --config python选择Python 2.7作为默认版本,安装完成后可以切换回来。
3.2 缺少32位库支持
现代Ubuntu系统默认不安装32位库,但PetaLinux需要它们:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i3863.3 安装路径选择
官方建议安装在/opt/pkg/petalinux,但在Ubuntu 20.04上可能会遇到权限问题。更稳妥的做法是安装在用户目录下:
./petalinux-v2020.1-final-installer.run ~/petalinux/2020.1安装过程中:
- 按Enter阅读许可协议
- 输入
q退出阅读 - 输入
y同意条款
4. 环境配置与验证
安装完成后,需要配置环境变量。编辑~/.bashrc文件,在末尾添加:
source ~/petalinux/2020.1/settings.sh然后执行:
source ~/.bashrc验证安装是否成功:
echo $PETALINUX应该显示你的安装路径。
检查工具链是否可用:
petalinux-util --webtalk off petalinux-config --get-hw-description=<path_to_hdf>5. 常见问题排查
5.1 BitBake错误
如果遇到BitBake相关错误,检查:
- 安装程序权限是否为755
- 安装目录是否可写
- Python版本是否为2.7
5.2 TFTP服务器警告
PetaLinux会检查TFTP服务器,如果没有安装会显示警告。如果需要TFTP服务:
sudo apt-get install tftpd-hpa sudo systemctl restart tftpd-hpa5.3 磁盘空间不足
PetaLinux安装和后续构建需要大量空间。建议:
- 至少预留100GB空间
- 使用
df -h检查可用空间 - 如果使用虚拟机,确保磁盘映像足够大
6. 高效使用技巧
6.1 加速下载
PetaLinux首次运行时会下载大量组件。可以通过设置代理加速:
export ALL_PROXY="http://your.proxy:port"6.2 离线安装
对于需要重复安装的环境,可以缓存下载的组件:
petalinux-package --prebuilt --dir <output_dir>6.3 多版本管理
如果需要同时安装多个PetaLinux版本,可以使用环境模块管理:
sudo apt-get install environment-modules module use ~/petalinux/modules module load petalinux/2020.17. 实际项目中的应用
以一个简单的Zynq项目为例,演示完整工作流程:
- 创建项目:
petalinux-create -t project --template zynq --name my_project- 导入硬件描述:
cd my_project petalinux-config --get-hw-description=<path_to_hdf>- 构建系统:
petalinux-build- 生成启动镜像:
petalinux-package --boot --fsbl --fpga --u-boot在Ubuntu 20.04上,这些命令可能需要额外的依赖。如果遇到问题,可以尝试安装:
sudo apt-get install device-tree-compiler lzop经过多次实践,我发现最稳定的工作流程是:
- 在干净的用户目录下安装
- 使用Python 2.7环境
- 预先安装所有32位库
- 避免使用root权限操作