使用Busybox制作最小文件系统并烧写入开发板

2021-04-02  本文已影响0人  檀蒜

实验环境

交叉编译平台 (on VMware14.0,Win10)

交叉编译链 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf

前提 得到busybox工具包(busybox-1.29.0.tar.bz2)

硬件 迅为开发板i.MX6ULL终结者

实验目的

使用busybox工具制作文件系统,并烧写入开发板测试。

实验原理

Busybox集成了一百多个最常用linux命令和工具,且其体积较小,编译速度快,适用于制作嵌入式linux根文件系统。

实验过程

1、已获得busybox源码busybox-1.29.0.tar.bz2

拷贝到Ubuntu中,使用命令“tar -vxjf busybox-1.29.0.tar.bz2”,解压 busybox,

2、检查交叉编译链:

3、检查ncurse库,避免错误apt-get install libncurses5-dev

4、修改文件使支持中文

busybox1.17.0 以后版本对中文的支持进行了限制。要想让 busybox1.17.0 以上支持中文,需做如下修改。

首先cd到busybox的目录下,使用命令“vim libbb/printable_string.c”,查找函数 printable_string,其定义中大于 0x7F 的字符直接被break 掉,或者直接被“?”代替了。因此注释掉这几行

:wq保存退出即可;

然后使用命令“ vim libbb/unicode.c”,查找函数 unicode_conv_to_printable2,同样对0x7f后作用的语句注释掉

:wq保存退出,只要之后对busybox配置时设置好就可以支持中文了;

5、配置busybox

使用命令“make defconfig ”,即可配置 busybox 为默认配置。

。。。

接着使用make menuconfig命令进入图形化配置界面配置busybox。

进入seting在“Build Options”栏找到“Cross compiler prefix”,它是指定编译器来编译

填入arm-none-linux-gnueabi-

在“— Installation Options ”栏找到“(./_install) Destination path for ‘make install’ (NEW)”。修改安装地址

选择“vi-style line editing commands(NEW)”选项;

进入到“Linux Module Utilities —>”空格取消选择“Simplified modutils”;

回到“Busybox Configuration”界面,进入setting,找到“Support Unicod”和“Check $LC_ALL, $LC_CTYPE and $LANG environment variables”,选中这两个选项,使能 busybox 的 unicode 编码以支持中文

然后exit 保存;

6、编译busybox

make

make install

编译成功

cd 到之前设置的安装目录下,可以看到已经生成了几个文件

7、整理、完善文件系统

制作的文件系统还需要新建“dev,etc,lib,mnt,proc,sys,tmp,var”文件夹,使用命令“mkdir dev etc lib mnt proc sys tmp var”

8、进入/etc目录,新建文件eth0-setting,并在“eth0-setting”文件里输入下面的内容:

设置了linux的IP以及网关等参数;

9、然后保存并退出“eth0-setting”文件,使用chmod 755 eth0-setting命令修改文件权限;

10、接着在 etc 目录下用“mkdir init.d”命令建立“init.d”目录(放置服务脚本),进入到“init.d”目录,然后在“init.d”目录下建立“ifconfig-eth0”文件,写入网络配置信息

:wq保存退出,chmod 755 ifconfig-eth0更改权限;

11、新建rcS脚本,(开机自动运行、批处理设置)写入内容:

:wq保存退出,chmod 755 rcS设置权限;

12、在“etc”目录下建立文件“passwd”,输入下面的内容:

保存退出,更改权限755

13、建立文件profile,输入一下内容

保存退出,更改权限755

14、在etc下建立/rc.d/init.d目录,并在init.d中新建文件vi netd,输入内容:

保存退出,更改权限755

15、进到rootfs目录下的lib,Busybox 编译生成的二进制文件是以动态链接库的形式运行,所以我们需要拷贝编译器里面的库文件到“lib”目录,使用命令

15、进到/rootfs/var,新建目录lib,lock,log,run,tmp,(mkdir lib lock log run tmp)

16、此时文件系统已做完,回到/rootfs目录,使用压缩命令将文件系统打包,生成 rootfs.tar.bz2 文件

17、此时可看到已生成文件系统镜像

烧写进开发板验证

1、将上面得到的rootfs.tar.bz2传到windows,并与文件树文件imx6ul_topeet_nand.dtb,uboot.imx,zImage,一起拷贝到烧写工具mfgtool的指定文件夹下;

2、把开发板接好OTG线,上电,USB线,将开发板的拨码开关拨至串行下载模式,启动mfgtool开启烧写,同时在secure CRT观察开发板情况。

烧写完毕:

3、将开发板的拨码开关拨至nand启动模式,reset;

显示出之前制作的文件系统目录。

实验完成

上一篇 下一篇

猜你喜欢

热点阅读