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

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

作者: 檀蒜 | 来源:发表于2021-04-02 20:54 被阅读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;

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

    实验完成

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/hjwqkltx.html