根文件系统简介
根文件系统 rootfs 是Linux内核启动以后挂载(mount)的第一个文件系统,然后从根文件系统中读取初始化脚本,比如rcS,inittab等
根文件系统和Linux内核是分开的,单独的Linux内核是没法正常工作的,必须要搭配根文件系统
如果不提供根文件系统,Linux内核在启动的时候就会提示内核崩溃(Kernel panic)的提示
主要目录
目录名 | 介绍 |
---|---|
/bin | 存放着系统的可执行文件 |
/dev | linux device文件,设备以文件的形式存在 |
/etc | 存放着各种服务程序的配置文件 |
/lib | library,存放着Linux所必须的库文件 |
/opt | 可选的文件、软件存放区 |
/home | 普通用户的工作目录 |
/root | 超级用户的工作目录 |
往期文章
Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
Linux系统移植二:生成fsbl引导文件并制作BOOT.bin(非petalinux版)
Linux系统移植三:移植Kernel生成zImage和dtb文件(非petalinux版)
之前我们已经构建好了U-BOOT和Kernel,现在就缺 rootfs
就可以启动完整的Linux系统了
Petalinux构建根文件系统
手工构建方式非常耗时,正常网速通常都需要几个小时,所以我直接放弃555
选择用工具来构建,如Yocto
,而 Petalinux 工具已经包含了 Yocto,所以我们可以直接使用 Petalinux 工具来构建根文件系统
配置好 Petalinux 环境后,新建Petalinux 工程 petalinux-create --type project --template zynq -n ALINX-ZYNQ
配置硬件描述信息 petalinux-config --get-hw-description <hdf文件路径>
,保存默认配置,退出
然后输入 petalinux-config -c rootfs
进入GUI配置界面来配置根文件系统
配置opencv, 找到 Filesystem Packages —>libs —>opencv,如图
配置QT, 找到 Filesystem Packages —>misc–>qtbase ,如图
其他配置自行选择,保存退出,最后输入 petalinux-build -c rootfs
来编译根文件系统
遇到的问题
WARNING: xxx do_fetch: Failed to fetch URL ... ,attempting MIRRORS if available
下载源有问题,外部网络下载不到,只有xlx内部的vpn可以访问,但是我们可以设置本地文件编译
我下载的是2017.4版本的,README也下载一下,教我们如何配置,不同版本的README是不同的,一定要下载下来看!
31.9GB,还是蛮大的,网速可以的话直接下,毕竟下一次一劳永逸
下载sstate到本地,解压之后有以下几个目录
看一下README 文件
By default petalinux uses sstate-cache and download mirrors from petalinux.xilinx.com
This README is for the users who uses tool completely offline.
Setting sstate cache
1) Extract the downloaded tar contents of sstate-cache at any location
2) run petalinux-config
-> Yocto Settings
->Local sstate feeds settings
->local sstate feeds url
(press Enter)
3) Provide the path of sstate-cache from above
Ex: /<path>/aarch64 for ZynqMP projects
/<path>/arm for Zynq projects
/<path>/mb-full for MB AXI full projects
4) Save the configurations to use the sstate-cache
Setting download mirror
1) Extract the downloaded tar contents of sstate-cache at any location
2) run petalinux-config
-> Yocto Settings
-> Add pre-mirror url
-> (press Enter)
Clear default value
3) Provide the path of sstate-cache from above
file://<path>/downloads for all projects
4) Save the configurations to use the download mirrors
5) Verify the changes in build/conf/plnxtool.conf
6) petalinux-build
输入 petalinux-config
命令,重新进入配置界面,按照README中的方法配置,一定要注意路径!
保存退出,进入petalinx工程目录,验证build/conf/plnxtool.conf
是否正确配置
可以看到我们刚才配置的信息已经更新了,说明没什么问题了
最后再用 petalinux-build -c rootfs
来编译根文件系统了
经过半个多小时的等待,终于编译好了,在petalinux工程 /images/linux
目录下可以找到 rootfs.tar.gz