过去的两个月,由于工作原因使用到了zynq,花了一些功夫学习了petalinux的使用,以下做一些记录
1、petalinux环境的安装
根据官网的介绍,petalinux所需的操作系统有特殊要求,其他版本的操作系统尽量不要使用,会出现莫名其妙的错误,不是我这种小白能解决的了的,然后在系统上面安装petalinux所需要的环境,具体的一览表可以在官网上面的文档可以看到,截图如下
我安装的环境是ubuntu16.04,这里的Ubuntu一定要使用64位的,刚开始我安装了一个ubuntu16.4 32位的,安装的时候最后总是啥也不提示,然后就安装失败了,前前后后花了一个月的时间没有搞明白为啥别人一下就安装成功了,我的确失败了,直到有一次我要安装eclipse,下载了一个64位的提示我安装失败,我才发现自己的ubuntu竟然是32位的,欲哭无泪呀。
Note:ubuntu安装的磁盘空间最少需要50G,后面的patalinux文件有点大,安装完之后也很大,生成的工程文件也很大,所以确保足够的空间
然后安装petalinux在ubuntu下的使用环境,使用命令
#sudo apt-get install xxxx,将ubuntu那一列的软件全部在线安装,网上也有一些可以教你怎么一次全部安装上去的命令
安装好之后,需要将指令变成dash指令,执行命令#sudo dpkg-reconfigure bash ,在弹出窗口之后选则NO就行了
就可以安装petalinux了,petalinux的安装包是一个.run,比如我安装的是petalinux-v2017.4-final-installer.run,在ubuntu的路径 /home/username/ 下新建文件夹petalinux,这样所有和petalinux的相关文件全部都在这个文件夹下面。
将文件petalinux-v2017.4-final-installer.run放在petalinux下面,直接在本路径下执行命令
#./petalinux-v2017.4-final-installer.run ./ 将patalinux安装在这个文件夹下面,这里需要时间久一点,要检查这个安装包是否完整,系统是否可用,检查完之后就会让你同意一些乱七八糟的协议,依次按下q y enter q y enter q y enter q y enter就可以跳过了,跟据提示来,先是给你显示一堆协议,然后按q退出,然后y同意,enter输入,差不多是这个流程。
下面开始检查你的环境是否安装完整,如果有些和他要求的不一样,他就会安装失败,然后给你生成一个log文件,那你可以直接在终端中看或者看log文件,看完之后按照他的要求接着安装就可以了。这一步应该就能保证你安装完成了。
2、petalinux使用
在文件夹下面创建一个文件夹project,专门用来放置你的工程文件,现在上一级文件夹,按照我的操作绝对路径应该是/home/username/petalinux/ 下面有一个文件setting.sh,这个文件应该是初始化petalinux和进入petalinux的环境,在终端中运行命令
#source setting.sh
稍等一会会打印一些列信息,说明就进入了petalinux的环境中了
保持这个终端不要关闭,下面的一系列都要在这个终端中执行,如果退出,需要重新source这个.sh文件
执行命令#cd project ,创建一个工程,命令为#petalinux-create --type project --template zynq --name projectname
这个命令中zynq需要根据自己的需求选择,zynq或者zynqMP ,projectname自己命名工程名,这样在你的project文件夹下面就产生一个projectname的文件夹,这就是你的工程文件
获取一个描述硬件的文件XXX.hdf,放在你的工程文件夹下面,执行命令
petalinux-config --get-hw-description=./ ,peatlinux就会根据这个硬件描述文件生成一堆内核和设备文件了,接下来会弹出来一个窗口供你定制化你自己需要的linux系统,
直接save,exit,稍等一会就成成了linux内核源文件。在路径
/home/username/petalinux/project/test/components/plnx_workspace/device-tree/device-tree下你可以看到设备树信息,根据自己需要修改
然后执行命令
#petalinux-build,根据自己计算机的性能等上半个小时到一个小时不等的时间,patlinux就编译好了,在路径/../image/linux下面就能看到自己编译生成的文件
然后使用打包命令patalinux-package 后面加上打包参数,就可以将自己需要的东西打包进去了
通常打包命令是petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot,偶尔也需要将system.bit打包进去
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot --fpga system.bit