记录—使用busybox制作文件根系统(Ubuntu)
这个东西我搞了两天,之前做的一个配置文件被我改的太乱了我又重新做了一次,出现的很多问题我都把它写在里面,之后会再记录一个单独的问题处理的博客
第一步
下载busybox的源码:
1.官网下载:https://busybox.net/downloads/
2.给大家提供一个我自己用的:
链接:https://pan.baidu.com/s/1teHvhmuBmeZa0NlnUaHF9g
提取码:5eng
复制这段内容后打开百度网盘手机App,操作更方便哦
第二步
创建目录:
这个目录存放busybox生成的根文件目录,可以自定义目录位置,这里我把它放置在/opt下,直接mkdir生成
mkdir bin dev proc etc sbin sys tmp usr
第三步
修改Makefile配置:
我们进入自己安装busybox的目录,我是安装在自己用户的目录下

进入busybox:

配置Makefile:
vi Makefile
打开后在前面加上这两行:

第四步
修改配置文件:
make menuconfig
注意:如果你是新装的Ubuntu,很可能会报错:
make[1]: *** [scripts/kconfig/lxdialog/checklist.o] Error 1
Makefile:417: recipe for target ‘menuconfig’ failed
make: *** [menuconfig] Error 2
这个是告诉你,没有安装ncurses库,这个库是Linux下使用的库,这个时候我们需要先安装这个库
执行如下命令:
sudo apt-get install libncurses5-dev
等待安装完成,我们再回到之前busybox下,再次执行make menuconfig

选择settings—>
找到这一项,空格键选择

再找到这一项,往里面添加你的根文件系统的路径

退出到上一级,找到这个:

回车进去,找到sync的选项,空格取消前面的*
再找到这个:

回车进去,找到nsenter,取消前面的*
保存,退出
第五步
编译:
make
直接用make编译
这里很可能会出现错误,如果你是第一次安装ubunt,这里应该会报错:
scripts/Makefile.build:197: recipe for target ‘applets/applets.o’ failed
make[1]: *** [applets/applets.o] Error 127
这个报错有两种原因:
1.Makefile文件没有添加我上面说的那两行
2.没有安装arm-linux-gcc
如果是第一种,参照我上面写的,更改配置文件,如果是第二种那么接着往下看,这里简单讲一下安装arm-linux-gcc的步骤
首先你需要一个安装包,因为在线下载是需要翻墙的,我这里没法翻墙,所以我只提供安装包的安装方法:
安装包百度网盘链接:
链接:https://pan.baidu.com/s/1VYEyAkP1MOgpQftakT1nnw
提取码:1h37
把下载好的安装包放在/tmp文件下面

右键选择 open in Terminal
打开后解压,输入命令:
sudo tar -xzjf arm-linux-gcc-4.6.4.tar.bz2 -C /
解压完成后再创建一个arm的目录,/usr/local/arm
我们把解压好的安装包下的一个文件,gcc-4.6.4,复制到arm文件里
这个时候我们把arm文件的权限设置到最高777
sudo chmod 777 /usr/local/arm
最后我们配置一个文件:
sudo vi /etc/profile
在配置文件最后加上:
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
这里配置文件可以根据你的安装路径自行更改
:wq 保存,退出
再用source重新加载一下:
source /etc/profile
到这里arm-linux-gcc就已经安装完成了,我们再回到busybox的路径下,重新执行make命令


最后再执行make install命令:

第五步
修改相应配置文件,连接开发板
我这里没有开发板,所以暂时只写到这里,后续再补充
欢迎各位指正!!!!(鞠躬)
以上!!!
本文详细介绍了如何使用Busybox在Ubuntu环境下构建根文件系统的过程。从源码下载、目录创建、Makefile配置,到解决编译错误及arm-linux-gcc安装,直至最后的配置文件修改,全程实战解析。
1万+

被折叠的 条评论
为什么被折叠?



