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

原文链接:https://blog.csdn.net/weixin_44469597/article/details/108950208
实验环境
交叉编译平台 (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、检查交叉编译链:
使用Busybox制作最小文件系统并烧写入开发板_第1张图片3、检查ncurse库,避免错误apt-get install libncurses5-dev
使用Busybox制作最小文件系统并烧写入开发板_第2张图片4、修改文件使支持中文
busybox1.17.0 以后版本对中文的支持进行了限制。要想让 busybox1.17.0 以上支持中文,需做如下修改。
首先cd到busybox的目录下,使用命令“vim libbb/printable_string.c”,查找函数 printable_string,其定义中大于 0x7F 的字符直接被break 掉,或者直接被“?”代替了。因此注释掉这几行
使用Busybox制作最小文件系统并烧写入开发板_第3张图片
:wq保存退出即可;
然后使用命令“ vim libbb/unicode.c”,查找函数 unicode_conv_to_printable2,同样对0x7f后作用的语句注释掉
使用Busybox制作最小文件系统并烧写入开发板_第4张图片:wq保存退出,只要之后对busybox配置时设置好就可以支持中文了;
5、配置busybox
使用命令“make defconfig ”,即可配置 busybox 为默认配置。
。。。
使用Busybox制作最小文件系统并烧写入开发板_第5张图片
接着使用make menuconfig命令进入图形化配置界面配置busybox。使用Busybox制作最小文件系统并烧写入开发板_第6张图片
进入seting在“Build Options”栏找到“Cross compiler prefix”,它是指定编译器来编译
填入arm-none-linux-gnueabi-
使用Busybox制作最小文件系统并烧写入开发板_第7张图片
在“— Installation Options ”栏找到“(./_install) Destination path for ‘make install’ (NEW)”。修改安装地址
使用Busybox制作最小文件系统并烧写入开发板_第8张图片
选择“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 保存;使用Busybox制作最小文件系统并烧写入开发板_第9张图片
6、编译busybox make
使用Busybox制作最小文件系统并烧写入开发板_第10张图片
make install
使用Busybox制作最小文件系统并烧写入开发板_第11张图片
编译成功
cd 到之前设置的安装目录下,可以看到已经生成了几个文件
使用Busybox制作最小文件系统并烧写入开发板_第12张图片
7、整理、完善文件系统
制作的文件系统还需要新建“dev,etc,lib,mnt,proc,sys,tmp,var”文件夹,使用命令“mkdir dev etc lib mnt proc sys tmp var”
8、进入/etc目录,新建文件eth0-setting,并在“eth0-setting”文件里输入下面的内容:
使用Busybox制作最小文件系统并烧写入开发板_第13张图片设置了linux的IP以及网关等参数;
9、然后保存并退出“eth0-setting”文件,使用chmod 755 eth0-setting命令修改文件权限;
10、接着在 etc 目录下用“mkdir init.d”命令建立“init.d”目录(放置服务脚本),进入到“init.d”目录,然后在“init.d”目录下建立“ifconfig-eth0”文件,写入网络配置信息
使用Busybox制作最小文件系统并烧写入开发板_第14张图片
:wq保存退出,chmod 755 ifconfig-eth0更改权限;
11、新建rcS脚本,(开机自动运行、批处理设置)写入内容:
使用Busybox制作最小文件系统并烧写入开发板_第15张图片
:wq保存退出,chmod 755 rcS设置权限;
12、在“etc”目录下建立文件“passwd”,输入下面的内容:
使用Busybox制作最小文件系统并烧写入开发板_第16张图片
保存退出,更改权限755
13、建立文件profile,输入一下内容
使用Busybox制作最小文件系统并烧写入开发板_第17张图片保存退出,更改权限755
14、在etc下建立/rc.d/init.d目录,并在init.d中新建文件vi netd,输入内容:
使用Busybox制作最小文件系统并烧写入开发板_第18张图片
保存退出,更改权限755
15、进到rootfs目录下的lib,Busybox 编译生成的二进制文件是以动态链接库的形式运行,所以我们需要拷贝编译器里面的库文件到“lib”目录,使用命令
在这里插入图片描述
使用Busybox制作最小文件系统并烧写入开发板_第19张图片
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观察开发板情况。
使用Busybox制作最小文件系统并烧写入开发板_第20张图片
使用Busybox制作最小文件系统并烧写入开发板_第21张图片
烧写完毕:
使用Busybox制作最小文件系统并烧写入开发板_第22张图片
使用Busybox制作最小文件系统并烧写入开发板_第23张图片
3、将开发板的拨码开关拨至nand启动模式,reset;
使用Busybox制作最小文件系统并烧写入开发板_第24张图片
显示出之前制作的文件系统目录。使用Busybox制作最小文件系统并烧写入开发板_第25张图片
实验完成

你可能感兴趣的:(linux,ubuntu,vim)