【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第五篇 文件系统构建篇-第七十五章 优化配置buildroot

发布于:2024-08-16 ⋅ 阅读:(68) ⋅ 点赞:(0)

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、

【公众号】迅为电子

【粉丝群】258811263


第七十五章 优化配置buildroot

上一小节我们配置的buildroot是仅供简单运行测试的版本,我们在使用开发板运行自己程序时可能需要文件系统提供一些第三方的库文件和软件,例如alsa-lib、alsa-utils,mplayer,opencv等等。我们可以通过buildroot配置使能这些软件和库。大部分都在配置界面的“Target packages”选项内。

75.1 buildroot添加支持第三方软件

上节中我们使用buildroot编译了一个最基本的文件系统,接下来我们就来为这文件系统添加一些基本软件包,进一步增强文件系统的功能。

75.1.1 支持 linux 磁盘工具

如果读者,想要的文件系统支持FAT32 格式的分区,则需要参考下述操作进行配置 dosfstools 工具包。

依次选择如下配置项:

-> Target packages 
-> Filesystem and flash utilities
     ->dosfstools

配置后如下图所示:

75.1.2 支持 nfs挂载工具

如果读者想要使用nfs挂载工具,依次选择如下配置项:

-> Target packages

-> Filesystem and flash utilities

配置后如下图所示:

 

依次选择如下配置项:

-> Target packages

-> Libraries

-> Hardware handling

配置后如下图所示:

75.1.4 支持 can 工具

如果读者,想要测试 can 设备,就参考下述配置进行安装 can-utils 来进行 can 数据的发送和读写,测试can之前还需要安装 iproute2 命令来初始化配置 can 设备。

依次选择如下配置项:

-> Target packages

-> Networking applications

进入后如下图:

 

75.1.5 支持 ssh 访问工具

如果读者,想通过 ssh 工具来远程登录开发板,或者使用开发板远程登录其他ssh,则需要安装 openssh 工具包,配置过程如下:

依次选择如下配置项:

-> Target packages

-> Networking applications

进入后如下图:

 

75.1.7 支持 4G 拨号上网工具

我们的STM32MP157开发板可以直接安装配套的 pcie 接口 4G 上网模块,可以通过 ppp 协议进行拨号上网,如果需要使用 ppp 协议则需要安装 pppd 工具包,配置方式参考下图。

 -> Target packages

 -> Networking applications

 

75.1.8 支持 hci 蓝牙工具 

由于我们的开发板上蓝牙模块,如果使用蓝牙模块功能则要安装对应的工具包才可以,参考下述配置进行配置安装 bluez-utils 5.x 以及 bluez-tools 。 

-> Target packages

-> Networking applications

 

75.1.9 支持 alsa 声卡工具

ALSA 是 Advanced Linux Sound Architecture,高级 Linux 声音架构的简称,它在 Linux 操作系统上提供了音频和 MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA 已经成为默认的声音子系统,用来替换2.4系列内核中的 OSS(Open Sound System,开放声音系统)。 

ALSA 的主要特性包括:高效地支持从消费类入门级声卡到专业级音频设备所有类型的音频接口,完全模块化的设计, 支持对称多处理(SMP)和线程安全,对 OSS 的向后兼容,以及提供了用户空间的 alsa-lib 库来简化应用程序的开发。需要使用 aplay等命令,请参考如下配置进行配置。

依次选择如下配置项:

Target packages

---> Audio and video applications

---> [*] alsa-utils --->

进入后如下图:

 

依次选择如下配置项:

Target packages

-> Libraries

-> Audio/Sound

-> -*- alsa-lib ---> 此配置项下的文件全部选中

进入后如下图: 

75.1.10 支持 wpa WIFI 工具 

果需要使用开发板上的wifi模块进行上网等相关测试,则需要安装iw 包来获取无线路由设备信息,

并通过 wpa_supplicant 进行网络链接。 

-> Target packages

-> Networking applications

 

75.2 支持Qt配置

75.2 .1 支持 multimedia

凭借GStreamer,程序员可以很容易地创建各种多媒体功能组件,包括简单的音频回放,音频和播放,录音流媒体和音频编辑。基于流水线设计,可以创建诸如视频编辑器、流媒体广播和媒体播放器等等的很多多媒体应用,我们需要参考如下配置目录进行配置

依次选择如下配置项:

-> Target packages

-> Audio and video applications

进入后如下图:

75.2 .2 支持 tslib触摸

Tslib是嵌入式经常使用的第三方库,可以优化触摸识别,如果读者需要,可以按下图配置:

依次选择如下配置项:

-> Target packages

-> Libraries

-> Hardware handling

进入后如下图:

76.2 .3 支持qt5

我们可以直接使用buildroot来制作一个具有qt环境的文件系统,配置如下图:

依次选择如下配置项:

-> Target packages

-> Graphic libraries and applications (graphic/text)

-> Qt5

下面的勾选只是举一个例子请根据个人需求进行配置:

支持虚拟键盘:

支持SQLite:

-> Target packages

-> Graphic libraries and applications (graphic/text)

-> Qt5

 ->SQLoite 3 support (QT SQLite) ---->

 

75.3 其他配置

75.3.1 支持 python3

Python 是一种面向对象解释型语言,读者可以根据自己的需求选择编译安装python的模块,配置过程如下:

依次选择如下配置项:

-> Target packages

-> Interpreter languages and scripting

进入后如下图:

75.3.3 支持opencv3

读者想要支持opencv就依次选择如下配置项:

-> Target packages

   Libraries  --->

   Graphics  --->

          [*] opencv3  --->

进入后如下图:

 

75.4  buildroot下配置Busybox

busybox也是基于buildroot制作的文件系统,所以我们buildroot里的busybox也可以进行配置。首先我们在buildroot源码目录下,使用命令“ make busybox-menuconfig”,如下图所示:

 

在这里我们可以看到busybox版本是1.33.0,然后就是我们之前看到过得busybox配置界面了,用户可根据自己需要配置。如下图所示: 

然后我们使用命令“make busybox”即可单独编译busybox。如下图所示:

 

最后编译完成以后使用命令“make”重新编译 buildroot,主要是对其进行打包,如下图所示: 

 

重新编译完成以后查看output/images 目录下 rootfs.tar.bz2 的创建时间是否为刚刚编译的,如果不是的话就删除掉 rootfs.tar.bz2,然后重新执行“make”重新编译一下即可。最后我们使用新的 rootfs.tar.bz2 启动 Linux 系统。