明远智睿技术论坛

 找回密码
 立即注册
搜索
查看: 4826|回复: 0
打印 上一主题 下一主题

busybox制作文件系统

[复制链接]

89

主题

226

帖子

1099

积分

超级版主

Rank: 8Rank: 8

积分
1099
跳转到指定楼层
楼主
发表于 2020-1-20 08:33:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200-6Q-1G
内核版本 :linux-4.1.15
交叉编译链:arm-poky-linux-gnueabi



下载busybox: https://busybox.net/downloads/busybox-1.31.1.tar.bz2
配置交叉编译工具:
$ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi


解压:
$ tar xf busybox-1.31.1.tar.bz2
$ cd busybox-1.31.1
配置:
$ make menuconfig
Settings  --->
build options --->
     Cross compiler prefix (添加交叉编译工具链绝对路径):
/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-

     Path to sysroot(添加sysroot路径):
/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi

     Additional CFLAGS(配置环境参数):
-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9

     Additional LDFLAGS(配置环境参数):
--sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi

环境参数可以打印$CC查看
$ echo $CC


开始编译busybox:

$ make
$ make install

进入到安装的目录,创建目录:
$ cd _install
$ mkdir root dev etc boot tmp var sys proc lib mnt home usr
$ mkdir etc/init.d etc/rc.d etc/sysconfig
$ mkdir usr/sbin usr/bin usr/lib usr/modules
$ sudo mknod -m 600 dev/console c 5 1
$ sudo mknod -m 600 dev/null  c 1 3
$ mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
$ mkdir var/lib var/lock var/run var/tmp
$ chmod 777 tmp
$ chmod 777 var/tmp

将交叉编译工具中的库复制到文件系统:
$ cp /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/ -rd
$ cp /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/* usr/lib/ -rd

由于这个工具链中是包含了QT库的,所以最后打包得到的文件系统会比较大(188M左右)
也可以选择复制工具链5.3中的库(只有一些基础库),得到的文件系统会比较小(44M左右),命令如下:

$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/lib/* lib -rd
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib/* lib -rd
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/* lib -rd  
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/* usr/lib -rd

$ cd etc
$ vi inittab
复制以下内容:
::sysinit:/etc/init.d/rcS                                                                                                                                            
console::askfirst:-/bin/sh
::restart:/sbin/init  
::ctrlaltdel:/sbin/reboot  
::shutdown:/bin/umount -a -r  
::shutdown:/sbin/swapoff -a

$ chmod a+x inittab  
$ cd init.d
$ vi rcS
复制以下内容:
mount -a
echo "Starting..."
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME

$ chmod a+x rcS
$ cd ..
$ vi profile
复制以下内容:
PATH=/bin:/sbin:/usr/bin:/usr/sbin                                                                                                                       
export PATH   
#set hostname   
HOSTNAME='/bin/hostname'
export HOSTNAME   
# Set PS1   
PS1='[\u@\h \W]\$'
export PS1

拷贝主机/etc目录下的passwd和group文件到etc目录下:

$ cp /etc/passwd ./
$ cp /etc/group ./
$ cd sysconfig
$ vi HOSTNAME
在文件中写入主机名,我这里写的是:myzr

打包文件系统   
$ cd ../..
$ tar -cjvf rootfs.tar.bz2 *


rootfs.tar.bz2 即为打包好的文件系统,放入烧录工具中进行烧录,烧录成功后启动:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明远智睿  

GMT+8, 2024-11-26 00:39 , Processed in 0.077372 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表