开发环境:Ubuntu(14.04 LTS)
busybox:1.26.2------https://busybox.net/downloads/(下载地址)
解压busybox: tar -jxvf busybox-1.26.2.tar.bz2
注意:以下命令都在root权限下操作
解压后,进入目录,执行make menuconfig命令。----------首次执行该命令,可能会出现如下报错:
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2
这个是由于ubuntu没有安装相关依赖包,解决方法如下
# apt-get install libncurses5-dev
安装完后,重新执行menuconfig命令,就能见到配置界面。
具体操作:
cd busybox-1.26.2
make menuconfig

可以使用默认配置,然后设置下交叉编译工具链

在busybox settings ----> build options ----> cross compiler prefix中添加arm-linux-前缀,这样就设置好编译工具链
如果之前没有安装过交叉编译工具,那么在编译之前先把编译工具安装好,并配置好环境。
交叉编译工具下载地址:百度云 ,下载这个文件arm-cortexa9-linux-gnueabihf-4.9.3-20160512.tar.xz
解压交叉编译工具,并复制编译工具路径:xxx/xxx/4.9.3/bin
添加编译工具环境
vim /etc/profile
在profile中最后一行添加:export PATH=$PATH:xxx/xxx/4.9.3/bin(粘贴刚才复制的那个路径)
最后保持修改退出
执行 source /etc/profile 使环境变量生效
执行 arm-linux-gcc -v ,如果没有报错,能看到编译工具版本号,那说明交叉编译工具链就安装好了。
编译busybox
make
make install
执行上述命令后,会在busybox-1.26.2目录下生成 _install文件夹(这个文件夹后续会用到)
构建文件系统目录
1)创建文件系统根目录
mkdir xx/xxx/rootfs
2)复制 _install文件夹内容到根目录下
cp -rf xx/xxx/busybox-1.26.2/_install xx/xxx/rootfs
3)创建并复制 lib库
mkdir xx/xxx/rootfs/lib
cd xxx/xxx/4.9.3/rm-cortexa9-linux-gnueabihf/lib
cp *so* -d xx/xxx/rootfs/lib ---- -d 参数必须要带上
4)创建 etc、dev、proc、mnt、tmp、sys、var目录
cd xx/xxx/rootfs
mkdir etc dev proc mnt tmp sys var xx/xxx/rootfs
5)构建etc目录
创建3个文件:inittab、init.d/rcS、fstab
创建inittab
cd xx/xxx/rootfs/etc
vi inittab
添加如下内容:

保存并退出
创建init.d/rcS
mkdir init.d
vi init.d/rcS
添加如下内容:

保存并退出
chmod +x init.d/rcS ----- 改变它的属性,使它能够执行
创建fstab
vi fstab
添加如下内容:

保存并退出
5)构建dev目录
cd xx/xxx/rootfs/dev
mknod console c 5 1
mknod null c 1 3
至此一个最简根文件系统已经创建好了。
本文详细介绍了如何在Ubuntu环境下移植Busybox到全志H3平台,包括解决配置报错、设置交叉编译工具链、安装交叉编译工具,以及构建根文件系统的步骤,如创建必要的目录、复制_install文件夹内容、添加lib库、构建etc、dev等目录。
657

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



