前传:上个月入了两块3T硬盘,用主板的bios组了raid0,结果悲催的不支持ubuntu(AHCI)... [1],不舍得放弃真香的raid0,没办法开发环境从丢弃了原来双系统的ubuntu,切换回了windows...
Vitis/Vivado/Petalinux版本:2019.2
Vmware Player版本:15.1.0 (windows版免费,真香...)
安装windows下的vivado后,总感觉编译速度比之前慢了很多(>130%),一开始以为是不是什么配置出了问题,折腾了半天发现有人提过类似的情况[2],预感可能是因为底层编译器对操作系统调用了什么不可描述的功能导致了这种差别,因为开发过程需要经常性的重新编译(加个monitor啊,改个电路啊...),所以这个事要我是没法忍的...在多次尝试保留raid情况下装回双系统(ubuntu/centos)未果后,决定尝试看vmware player虚拟机里能不能有效果。当然文章写出来了,效果还是很明显的,跟双系统不相上下,早先看intel的cpu虚拟化性能几乎不会损失,实际看来也确实所言不虚。
准备过程
内存分配上,根据自己日常使用的器件,可以查表分配[3]。
建立虚拟机,安装ubuntu18.04(应该是从2019.2版本开始的,petalinux已经官方支持ubuntu18.04了(见UG1144 P9系统要求[4]),之前最高只能用到16.04,版本问题需要注意。然后就是参考UG1144的P10-P11,安装petalinux需要的依赖环境。注意,因为有32位库的要求(不知道是啥遗留组件还是什么的),所以需要增加i386的apt架构要求。
#!/bin/bash
之后就是安装vitis了,默认vitis是包含vivado的,所以不需要重复下载。安装方法很简单,把解压后文件夹里的xsetup拖到terminal里然后回车执行就OK了,安装路径按需选择即可。petalinux的安装也按照[4]里的步骤安装就行。安装过程注意,除非有明确需求,不要sudo
vivado安装完成后,需要手动安装驱动:
#!/bin/bash
项目组织
vmware下配置共享文件夹,然后通过下边的脚本可以直接mount到可见文件夹下。
#!/bin/bash
但是注意一点,petalinux的操作不能在share文件夹下执行,应该是因为mount默认只能是root用户的文件夹,从而导致权限问题使bitbake工作异常(报错:ERROR: Get hw description Failed![5])
关于WSL问题(WSL2)
windows 10给了个牛逼的WSL2内建内核级linux模拟器,为了使用最新的WSL2,需要加入windows的预览者计划,升级最新的windows build记得...折腾后安装ubuntu18的虚拟机,在安装完依赖库后,安装petalinux的时候总是提示说磁盘空间不足,后来google发现应该是因为磁盘格式问题,WSL2并不是linux原生ext4文件系统,这样petalinux的安装是不会成功的,从windows官方的回复(找不到链接了。。)来看,并没有办法直接挂载一个物理分区或者新建一个ext4分区之类的方式挂一个ext4上去,而且xilinx的官方回应也是并不支持在wsl下的套件安装[6],所以作罢...而且在WSL下安装图形界面跑vivado也比较麻烦,所以还是放弃投靠vmware吧~
参考
- ^rst-in-linux https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/rst-linux-paper.pdf
- ^benchmark between win and linux https://forums.xilinx.com/t5/Vivado-Debug-and-Power/Vivado-linux-vs-windows-benchmark/td-p/1012586
- ^Vivado 设计套件的最小系统内存推荐 https://china.xilinx.com/products/design-tools/vivado/memory.html
- ^abUG1144 petalinux说明手册 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf
- ^Get Hw Failed报错 https://forums.xilinx.com/t5/Embedded-Linux/petalinux-config-get-hw-description-failing-2017-4/td-p/826916
- ^petalinux on WSL https://forums.xilinx.com/t5/Embedded-Linux/Petalinux-2016-4-on-Windows-10-WSL-Ubuntu-16-04lts/td-p/820244