当前位置:网站首页>全志V3s学习记录(9)buildroot文件系统构建

全志V3s学习记录(9)buildroot文件系统构建

2022-06-09 06:06:00 liefyuan

一、不要慌一步一步来

使用buildroot之前你确定:

  • 你想使用buildroot下载安装编译器吗?
  • 你想使用buildroot下载Linux然后编译吗?
  • 你想使用buildroot下载uboot然后编译吗?

buildroot目录结构

  1. buildroot/package/下面放着应用软件的配置文件,每个应用软件的配置文件有Config.in和soft_name.mk其中soft_name.mk(这种其实就Makefile脚本的自动构建脚本)文件可以去下载应用软件的包。
  2. buildroot/output/是编译出来的输出文件夹,里面的build/目录存放着解压后的各种软件包编译完后的现场。host/目录放着制作好的编译工具链,target/ 目录是用来制作rootfs的,里面放着Linux系统基本的目录结构,以及各种编译好的应用库和bin可执行文件。Images/目录下就是最终生成的可烧写到板子上的各种image。
  3. buildroot/dl存放下载的源码包及应用软件的压缩包
  4. buildroot/fs放各种文件系统的源代码
  5. buildroot/fs/skeleton放生成文件系统镜像的地方,及板子里面的系统
  6. buildroot/linux/ 存放着Linux kernel的自动构建脚本。
  7. buildroot/configs放置开发板的一些配置参数。
  8. buildroot/dl/目录存在从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下载了,而是从dl/目录下拿开源包,以节约时间。
  9. buildroot/docs/ 存放相关的参考文档。
  10. buildroot/arch/ 目录存放CPU架构相关的配置脚本,如arm/mips/x86 ,这些CPU相关的配置,在制作工具链,编译boot和内核时很关键。

二、基本配置

2.1 Target Options 目标配置

  • 目标架构:ARM(小端)
  • 目标二进制格式:ELF
  • 目标架构变体:Cortex-A7
  • 编译器ABI: gnueabihf
  • 浮点数策略:VFPv4-D16
  • ARM架构集:ARM

Target Options的配置就出来啦!

在这里插入图片描述

2.2 Build options 构建配置

暂无

2.3 Toolchain 工具链配置

如下:

在这里插入图片描述

2.4 System configuration 系统配置

如下配置(这里就不设置密码了[ ] Enable root login with password
在这里插入图片描述

2.5 Kernel 内核配置

这里就不配置Kernel了,我外面自己编译咯!
在这里插入图片描述

2.6 Target packages 目标包配置(下一节)

这是最复杂的!工作量也基本在这!

下面专门一节介绍!

2.7 Filesystem images

如下配置,主要就是两个红框。
在这里插入图片描述

2.8 Bootloaders

和kernel一样的配置,我自己在外面编译u-boot咯!
在这里插入图片描述

2.9 Host utilities

暂无

2.10 Legacy config options 老配置

暂无

2.11 保存设置与加载设置

在这里插入图片描述

保存设置

如下红框内就是配置文件.config的地址(绝对地址)
在这里插入图片描述

三、Target packages配置

这里工作量比较大,各个包之间有依赖关系。

3.1 安装WIFI相关

  • dhcpcd:(Target packages > Networking application)
  • dnsmasq:(Target packages > Networking application)
  • wireless tools:(Target packages > Networking application)
  • wpa_supplicant:(Target packages > Networking application)
  • openssl:(Target packages > Libraries > Crypto)
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装wpa_supplicant需要安装openssl

在这里插入图片描述

2.1 安装播放视频音频

  • alsa-lib:(Target packages > Libraries > Audio/Sound > alsa-lib)
  • alsa-utils:(Target packages > Audio and video applications)
  • mplayer:buildroot2020 没有这个了!!

选择安装 tinyalsa

安装tinyalsa,否则无法调声音。
在这里插入图片描述

# find ./ -name "tinymix"
./usr/bin/tinymix

选择安装:alsa-lib

选中 alsa-lib,否则没声音
在这里插入图片描述

选择安装:alsa-utils

在这里插入图片描述

2.2 buildroot 2020添加mplayer

选择安装:mplayer

我使用的buildroot2020没有这个包,我从buildroot2017里面拷贝这个文件包来试一试:

文件:buildroot-2020.02.4/package/Config.in

	source "package/mpg123/Config.in"
	source "package/mplayer/Config.in"
	source "package/mpv/Config.in"

可以配置了!
在这里插入图片描述

Buildroot里面添加mplayer

有报错

[email protected]:~/Liefyuan/cherry-pi/buildroot-2020.02.4$ sudo time make -j16
[sudo] password for liefyuan: 
Makefile.legacy:9: *** "You have legacy configuration in your .config! Please check your configuration.".  Stop.
Command exited with non-zero status 2
0.03user 0.02system 0:00.06elapsed 93%CPU (0avgtext+0avgdata 12324maxresident)k
10248inputs+80outputs (29major+11499minor)pagefaults 0swaps

有建议:

Config.in.legacy 移除 MPLAYER 试一试
buildroot-2020.02.4$ vim Config.in.legacy

1814行:注释掉以下

#config BR2_PACKAGE_MPLAYER
# bool "mplayer package removed"
# select BR2_LEGACY
# help
# The mplayer package was removed.

#config BR2_PACKAGE_MPLAYER_MPLAYER
# bool "mplayer package removed"
# select BR2_LEGACY
# help
# The mplayer package was removed.

#config BR2_PACKAGE_MPLAYER_MENCODER
# bool "mplayer package removed"
# select BR2_LEGACY
# help
# The mplayer package was removed.

#config BR2_PACKAGE_LIBPLAYER_MPLAYER
# bool "mplayer support in libplayer removed"
# select BR2_LEGACY
# help
# The mplayer package was removed.

  • 然后make menucofig
  • 最后记得save一下!一定要记得,不然还是无法编译!

2.3 下载安装Qt

待定。。。

原网站

版权声明
本文为[liefyuan]所创,转载请带上原文链接,感谢
https://liefyuan.blog.csdn.net/article/details/124810892