使用自己定制的Linux系统(Linux的三大组件)
介绍
Zynq是集成了arm核和fpga可编程逻辑器件的soc芯片,不仅具备ASIC在能耗,性能,兼容性方面的优势,还具备FPGA硬件可编程性的优势。Zynq主要分两个端,第一个是pl端,跟fgpa开发一样属于纯逻辑开发。然后就是ps端,我把它类比为单片机的裸机开发,通过操作库函数来配置寄存器等等,它的好处就是pl端可以看成是一个外设,pl端写的东西可以直接被ps端调用。然后ps端属于arm-A核,可以跑系统(linux等)。
在Zynq的Linux开发方面,官方提供了一个名为的工具,该工具运行在PC的Linux环境中(例如),使用此工具可以为我们的开发板量身定制Uboot。此解决方案旨在提高设计生产力,可以与硬件设计工具一起使用,简化Zynq-7000 SoC的Linux系统开发。
设计过程
首先我把所有的使用说明都粘贴在这里,以便以后你要修改系统的时候可以直接复制使用。
petalinux-create -t (工程名字) //创建一个petalinux工程
petalinux-config --get-hw-description (.hdf文件所在目录的路径)//导入.hdf硬件配置文件
petalinux-config //打开petalinux工程的图形化配置页面
petalinux-config -c kernel //定制linux内核
petalinux-config -c rootfs //定制根文件系统
petalinux-build //编译整个petalinux工程
petalinux-package --boot --fsbl --fpga --u-boot --force //将--后面的文件全部打包生成BOOT.BIN 文件
1.设置运行环境变量
source /opt/pkg/petalinux/2018.3/settings.sh
当我们完成安装之后,在安装目录下会生成一个.sh文件,我们需要在所使用的终端中执行这个脚本文件来初始化工作环境,以便我们在使用命令的时候,系统能够自动进入安装目录进行参照。
2. 创建项目
我们在终端中进入一个自己选择的文件夹,并在这个文件夹中运行以下命令来创建一个项目。
petalinux-create -t project --template zynq -n (工程名字)
该参数表示创建的项目使用的平台模板,这里的zynq表示该项目使用zynq平台模板,针对zynq-7000系列芯片使用。
打开创建的项目,你会看到以下目录
3.配置项目
首次配置工程时,需要引用工程中生成的.hdf 结尾的硬件描述文件。因为Linux中很多外设都是没有硬核的,所以需要在PL工程中配置一个软核来代替硬核。这里可以根据你开发板的资源生成一个hdf文件并导入即可。
转到您的目录并执行以下命令:
petalinux-config --get-hw-description (hdf文件所在目录路径)
之后会进入一个图形配置界面,我们通过键盘来操作,基本操作就是上下左右移动光标,按回车键选择,按两次ESC键返回。这里建议大家多探索一下图形配置界面,看看各个菜单是干什么用的,这是学习Linux必不可少的一个过程。
首先,我来简单介绍一下菜单
“Auto”菜单主要用于选择是否开启fsbl、tree、u-boot的自动配置,默认为自动配置,无需更改。
这里你的设置可能跟我的不一样,所以不用修改,因为我们后面会自定义内核和uboot,这里只是介绍一下你可以指定uboot,如果你有自己的内核和uboot,也可以在这里设置。
进入这个目录可以发现各个子菜单已经有了默认配置,这些默认配置都是根据hdf文件中的信息自动配置的,基本不需要手动修改;在里面可以设置串口打印后续的启动信息。
这里是设置启动镜像和内核镜像的存储介质,默认是SD卡,所以这里保持默认就行。
第一个选项是根文件系统类型的配置,默认是,表示从我们后面创建的.ub文件中读取根文件系统。这里也可以设置为sd卡,这样启动时就会从sd卡挂载根文件系统。
Copy final to 选项的意思是当在 的根文件下建立了一个名为 的文件夹时,项目生成镜像后会自动将相关文件复制到 / 目录下。
回到主界面,通过“ ”可以修改定制Linux系统的主机名和产品名,默认与项目名相同。
此时配置已经基本完成,记得将光标移到Save处,按Enter保存配置,再按Esc退出。
配置成功。
4.配置Linux内核
至此,我们开始设计Linux的三大组件之一。
执行以下命令
petalinux-config -c kernel
等待片刻后,界面会打开,你可以在这里随意配置自己的Linux内核,如果你是新手,可以保持默认配置不变,直接按ESC退出即可。
5.配置Linux根文件系统
执行以下命令进入根文件系统配置界面
petalinux-config -c rootfs
您可以在此处探索配置,初学者也可以选择不配置。创建的根文件系统将较小,但具有所有必要的功能。
6.配置设备树
当你进入工程中的-spec/meta-user/-bsp/-tree/files目录时,会发现一个后缀为dtsi的文件,这就是指定的设备树文件。你可以在这里添加任意的设备树节点,它会自动编译到设备树文件中。新手可以不用配置,因为不配置设备树你照样可以启动内核,只是不能使用硬件设备而已。
7.编译项目
至此,项目的配置信息已经配置完毕,接下来我们需要编译并生成启动Linux系统所需要的文件。
petalinux-build
这个过程会花很长时间,虽然很智能,但是因为编译的东西太多,所以会花很长时间。
编译成功!不要担心这个警告,这是版本问题导致的。
8.制作zynq启动文件BOOT.BIN
BOOT.BIN文件是fsbl image、u-boot image和pl end bit文件的集合,关于boot文件的介绍可以参考zynq boot分析,我们需要利用前面建立的文件来生成BOOT.BIN
petalinux-package --boot --fsbl --fpga --u-boot --force
“--fsbl”用于指定fsbl镜像文件的位置,后面跟着该文件对应的路径信息,如果不指定文件位置,默认为/linux/.elf;选项“--fpga”用于指定
文件位置,后面跟着文件的路径信息,默认为/linux/.bit;选项“--u-boot”用于指定U-Boot镜像的位置,后面跟着文件的路径信息,默认为/linux/u-boot.elf。如果这里没有指定对应文件的路径信息,那么会自动使用默认文件。
9.Linux启动成功!
进入工程目录/linux,将image.ub和BOOT.BIN复制到SD卡fat32格式分区下,如果不知道如何查看SD卡格式或者分区,可以参考SD卡分区操作
image.ub文件本质包括内核镜像、dtb和根文件系统。
最后将SD卡插入开发板,并设置启动方式为SD卡模式,开机后打印出启动日志,说明启动成功!
zynq默认的启动名和密码都是root。
扫一扫在手机端查看
-
Tags : petalinux
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。