嵌入式Linux学习之旅(10)— 使用buildroot构建根文件系统

使用buildroot构建根文件系统

一、buildroot介绍

使用busybox 构建文件系统的时候,busybox 仅仅只是帮我们构建好了一些常用的命令和文件,像 lib 库、/etc目录下的一些文件都需要我们自己手动创建,而且 busybox构建的根文件系统默认没有用户名和密码设置。在后续的实验中,我们还要自己去移植一些第三方软件和库,比如alsa、iperf、mplayer等等。那么有没有一种傻瓜式的方法或软件,它不仅包含了 busybox的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植。答案肯定是有的,buildroot就是这样一种工具,buildroot比busybox 更上一层楼,buildroot不仅集成了busybox,而且还集成了各种常见的第三方库和软件,需要什么就选择什么,buildroot 极大的方便了我们嵌入式Linux开发人员构建实用的根文件系统。

二、下载buildroot源码

从buildroot的官网下载:https://buildroot.org
在这里插入图片描述
选中.bz2压缩包进行下载
在这里插入图片描述
下载后将其放入我们的imx6u_alpha/tools目录下

三、配置buildroot

将得到的源码进行解压:

tar -vxjf buildroot-2020.02.1.tar.bz2

然后进入解压得到的buildroot-2020.02.1文件夹,使用命令打开图形化配置:

make menuconfig

首先将【Target options】配置为如下所示
在这里插入图片描述
然后是【Toolchain】配置
在这里插入图片描述
【System configuration】配置如下所示:
在这里插入图片描述
接下来我们要禁止编译内核和uboot
进入【Kernel】选项,不要选中Linux Kernel
在这里插入图片描述
同样的,进入【Bootloaders】选项,也是不要选中U-Boot
在这里插入图片描述
配置好后就可以保存退出了

四、开始编译

使用命令开始编译,记住,要加sudo,且不能加-jx指定多核编译

sudo make

在编译过程中需要在网上下载软件源码,有些源码可能下载中断,我们可以自己去下载
在这里插入图片描述
然后放入dl文件夹下
在这里插入图片描述
编译完成之后就会在output/images下生成多种格式的文件系统
在这里插入图片描述
然后我们将rootfs.tar复制到nfs目录下新建一个buildrootfs文件夹下,将其解压
在这里插入图片描述
然后将rootfs.tar删去,可以得到
在这里插入图片描述

五、使用得到的根文件系统启动开发板

设置开发板的环境变量:

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.0.106:/home/william/imx6u_alpha/nfs/buildrootfs ip=192.168.0.101:192.168.0.106:192.168.1.1:255.255.255.0::eth0:off'

然后使用boot命令启动,可以看到,启动成功
在这里插入图片描述

六、优化使用

1、配置busybox

之前我们知道,busybox是不支持中文的,使用我们需要对其进行修改,其源码在/output/build/目录下
在这里插入图片描述
安装之前的方法修改源码:https://blog.csdn.net/qq_38113006/article/details/104326696#t3
回到buildroot跟文件下,使用如下命令配置busybox

sudo make busybox-menuconfig

配置好后使用命令单独编译busybox

sudo make busybox

然后重新生成根文件系统文件

sudo make

接下来就可以使用这个跟文件系统了

2、添加提示信息

我们可以看到,提示信息只有一个#,这样很不便于我们使用
在这里插入图片描述
打开/etc/profile文件,可以看到,提示信息被固定成了#
在这里插入图片描述
将其修改
在这里插入图片描述
重启开发板,可以看到,提示信息已经有了:
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值