busybox -1.26.0移植以及碰到的问题

1、busybox源码下载

BusyBox 的官方网站是:http://www.busybox.net/
下面以busybox-1.26.0.tar.bz2为例来讲解一下 BusyBox 的编译安装过程。

2、 同步拷贝、解压到ubuntu

我的根文件系统目录是:/root/porting_x210/rootfs/rootfs1
在/rootfs目录下创建bill_rootfs目录,将该压缩包解压到这,代码如下:

cp /root/windows_share/s5pv210/rootfs/busybox-1.26.0.tar.bz2 ./
tar jxvf busybox-1.26.0.tar.bz2

3、修改vi Makefile

(1) ARCH = arm
(2) CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
在这里插入图片描述

4、配置make menuconfig

Busybox Settings--->
	Build Options--->
		[*]Build BusyBox as a static binary(no shared libs)

Busybox Library Tuning--->
	[*]vi-style line editing commands
	[*]Fancy shell prompts
	
Linux Module Utilities--->
	[ ]Simplified modutils
	[*]depmod
	[*]insmod
	[*]lsmod
	[*]modprobe
	[*]rmmod
	
Linux System Utilities--->[*]mdev
	[*]Support /etc/mdev.conf
	[*]Support subdirs/symlinks
	[*]Support regular expressions substitutions when renaming dev
	[*]Support command execution at device addition/removal
	[*]Support loading of firmwares

5、编译make -j6 报错:

5.1、出错1: 宏未声明MTD_FILE_MODE_RAW

在这里插入图片描述

解决思路:

  上网查这个宏发现mtd/mtd-abi.h里面有定义,于是定位到工具链的该文件:sudo locate mtd-abi.h
在这里插入图片描述
  vi /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/usr/include/mtd/mtd-abi.h
  打开后在里面搜/MTD_FILE_MODE找不到,再搜MTD_MODE
在这里插入图片描述

有三种方法可以解决——

  方案1是修改busybox中(最方便,但函数中的宏被修改了)
在这里插入图片描述
  方案2是修改工具链mtd-abi.h,将enum中的MTD_MOD_RAW改为MTD_FILE_MODE_RAW

  方案3是在vi miscutils/nandwrite.c中添加头文件(略微麻烦)
(要先grep “MTD_FILE_MODE_RAW” * -nR搜MTD_FILE_MODE_RAW,结果发现在本机的/usr/include/mtd/mtd-abi.h中有)
在这里插入图片描述在这里插入图片描述在这里插入图片描述
  还是报错,找不到mtd-abi.h,需要将/usr/include/mtd/mtd-abi.h拷贝到busybox的include文件中再包含!
在这里插入图片描述
  上述修改完后再次编译,成功解决,但出现新错误——

5.2、出错2: 未声明BLKDISCARD

在这里插入图片描述

解决思路:在make menuconfig中搜索/ BLKDISCARD

在这里插入图片描述
在这里插入图片描述
  关掉后再次编译问题解决,但还是有别的错误——

5.3、出错3:其他未定义问题(stens、syncfs)

在这里插入图片描述

解决思路同上:在make menuconfig中找nsenter、sync

  由于这些文件与主功能无关,就选择不编译这两个模块(=N)
在这里插入图片描述在这里插入图片描述
  再次编译,成功了!ls查看结果如下:
在这里插入图片描述

6、make install安装

默认安装目录是:./_install

安装到自己的根文件系统目录:

  <make menuconfig查看make install时配置的位置:busybox settings—>Installation Options
在这里插入图片描述
  <进入后填写自己的rootfs目录:/root/porting_x210/rootfs/rootfs1,保存退出
在这里插入图片描述
  make install后,根文件系统目录中已经生成了这四个文件
在这里插入图片描述

7、后面的nfs挂载部分就不赘述了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值