busybox交叉编译+移植

 

 

更新历史

20151217,10:51,V1.0

初稿,略

 

前言

移植这个,其实是为了无线网络模块移植做准备。

我的工作SDK是Allwinner的A20裁剪code,没有android,取代的时camlinux——对busybox来说,没区别。

 

一,环境准备

1.源码获取

推荐的办法是:

$  CD A20 / camlinux / &&源码编译/ envsetup.sh && mklichee

lichee编译结束后,正好源码也得到了

$ CD ../lichee/out/linux/common/buildroot/build/busybox-1.18.3/

这里,可以选择将busybox的-1.18..3文件夹拷贝出去再修改。

 

当然,也可以手动解压,源码和补丁路径如下:

/A20/lichee/buildroot/dl/busybox-1.18.3.tar.bz2

/ A20 /荔枝/ buildroot的/封装/ busybox的/

 

二,busybox的编译报错解决

$化妆

 

1.loginutils / passwd.c:104:16:错误:存储大小 

增加头文件解决

$ VIM的Linux /普通/ buildroot的/建设/ busybox的-1.18.3 /有/ libbb.h

的#include <SYS / RESOURCE.H>

 

2.ext2fs / ext2_fs.h

具体报错日志忘了,总之是这个头文件找不到,grep的后,决定修改源码:

$ VIM ./util-linux/mkfs_ext2.c

//#包含<linux / ext2_fs.h>

#包括“../e2fsprogs/old_e2fsprogs/ext2fs/ext2_fs.h” 

 

3.EXT2_FEATURE_COMPAT_RESIZE_INO

具体报错日志忘了,总之是这个宏找不到,解决方法如下:

$ grep的EXT2_FEATURE_COMPAT_RESIZE_INO。-r

找到该宏的使用位置,分析后,怀疑代码错误,修改... INO为INODE

 

$ VIM ./util-linux/mkfs_ext2.c

        | (EXT2_FEATURE_COMPAT_RESIZE_INODE

 

4. /系统/斌/ busybox的:不执行:魔术7F45

编译器问题,修改Makefile文件:

$ VIM的Makefile

#CC = $(CROSS_COMPILE)GCC

CC = $(CROSS_COMPILE)在arm-linux的-gnueabi-GCC

 

5.strip:无法识别该输入文件的格式`busybox_unstripped'

这里饶了很大的弯,最后发现,修改带就好:

$ VIM的Makefile

#STRIP = $(CROSS_COMPILE)条

STRIP = $(CROSS_COMPILE)臂的Linux gnueabi钢带

 

6..config

其他问题不少,比如如何静态编译等,基本都是通过修改.config文件,或者make menuconfig进行解决,下面给出参考的.config

#自动生成进行配置:请不要编辑

#Busybox的版本:1.18.3

#周四12月17日10点46分20秒2015年

CONFIG_HAVE_DOT_CONFIG = Y

 

#Busybox的设置

 

#常规配置

CONFIG_DESKTOP = Y

#CONFIG_EXTRA_COMPAT未设置

CONFIG_INCLUDE_SUSv2 = Y

#CONFIG_USE_PORTABLE_CODE未设置

CONFIG_PLATFORM_LINUX = Y

CONFIG_FEATURE_BUFFERS_USE_MALLOC = Y

#CONFIG_FEATURE_BUFFERS_GO_ON_STACK未设置

#CONFIG_FEATURE_BUFFERS_GO_IN_BSS未设置

CONFIG_SHOW_USAGE = Y

CONFIG_FEATURE_VERBOSE_USAGE = Y

#CONFIG_FEATURE_COMPRESS_USAGE未设置

CONFIG_FEATURE_INSTALLER = Y

#CONFIG_INSTALL_NO_USR未设置

#CONFIG_LOCALE_SUPPORT未设置

#CONFIG_UNICODE_SUPPORT未设置

#CONFIG_UNICODE_USING_LOCALE未设置

#CONFIG_FEATURE_CHECK_UNICODE_IN_ENV未设置

CONFIG_SUBST_WCHAR = 0

CONFIG_LAST_SUPPORTED_WCHAR = 0

#CONFIG_UNICODE_COMBINING_WCHARS未设置

#CONFIG_UNICODE_WIDE_WCHARS未设置

#CONFIG_UNICODE_BIDI_SUPPORT未设置

#CONFIG_UNICODE_NEUTRAL_TABLE未设置

#CONFIG_UNICODE_PRESERVE_BROKEN未设置

CONFIG_LONG_OPTS = Y

CONFIG_FEATURE_DEVPTS = Y

CONFIG_FEATURE_CLEAN_UP = Y

CONFIG_FEATURE_WTMP = Y

CONFIG_FEATURE_UTMP = Y

#CONFIG_FEATURE_PIDFILE未设置

CONFIG_FEATURE_SUID = Y

#CONFIG_FEATURE_SUID_CONFIG未设置

#CONFIG_FEATURE_SUID_CONFIG_QUIET未设置

#CONFIG_SELINUX未设置

#CONFIG_FEATURE_PREFER_APPLETS未设置

CONFIG_BUSYBOX_EXEC_PATH =“的/ proc /自/ EXE”

CONFIG_FEATURE_SYSLOG = Y

CONFIG_FEATURE_HAVE_RPC = Y

 

#构建选项

CONFIG_STATIC = Y

#CONFIG_PIE未设置

#CONFIG_NOMMU未设置

#CONFIG_BUILD_LIBBUSYBOX未设置

#CONFIG_FEATURE_INDIVIDUAL未设置

#CONFIG_FEATURE_SHARED_BUSYBOX未设置

#CONFIG_LFS未设置

CONFIG_CROSS_COMPILER_PREFIX =“”

CONFIG_EXTRA_CFLAGS =“”

 

#调试选项

#CONFIG_DEBUG未设置

#CONFIG_DEBUG_PESSIMIZE未设置

#CONFIG_WERROR未设置

CONFIG_NO_DEBUG_LIB = Y

#CONFIG_DMALLOC未设置

#CONFIG_EFENCE未设置

 

#安装选项(“make install的”行为)

CONFIG_INSTALL_APPLET_SYMLINKS = Y

#CONFIG_INSTALL_APPLET_HARDLINKS未设置

#CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS未设置

#CONFIG_INSTALL_APPLET_DONT未设置

#CONFIG_INSTALL_SH_APPLET_SYMLINK未设置

#CONFIG_INSTALL_SH_APPLET_HARDLINK未设置

#CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER未设置

CONFIG_PREFIX =“./_安装”

 

#Busybox的库调整

CONFIG_PASSWORD_MINLEN = 6

CONFIG_MD5_SIZE_VS_SPEED = 2

#CONFIG_FEATURE_FAST_TOP未设置

#CONFIG_FEATURE_ETC_NETWORKS未设置

CONFIG_FEATURE_USE_TERMIOS = Y

CONFIG_FEATURE_EDITING = Y

CONFIG_FEATURE_EDITING_MAX_LEN = 1024

CONFIG_FEATURE_EDITING_VI = Y

CONFIG_FEATURE_EDITING_HISTORY = 999

CONFIG_FEATURE_EDITING_SAVEHISTORY = Y

CONFIG_FEATURE_TAB_COMPLETION = Y

#CONFIG_FEATURE_USERNAME_COMPLETION未设置

CONFIG_FEATURE_EDITING_FANCY_PROMPT = Y

#CONFIG_FEATURE_EDITING_ASK_TERMINAL未设置

CONFIG_FEATURE_NON_POSIX_CP = Y

#CONFIG_FEATURE_VERBOSE_CP_MESSAGE未设置

CONFIG_FEATURE_COPYBUF_KB = 4

CONFIG_MONOTONIC_SYSCALL = Y

CONFIG_IOCTL_HEX2STR_ERROR = Y

CONFIG_FEATURE_HWIB = Y

 

#小程序

 

#档案公用事业

#CONFIG_FEATURE_SEAMLESS_XZ未设置

#CONFIG_FEATURE_SEAMLESS_LZMA未设置

#CONFIG_FEATURE_SEAMLESS_BZ2未设置

#CONFIG_FEATURE_SEAMLESS_GZ未设置

#CONFIG_FEATURE_SEAMLESS_Z未设置

CONFIG_AR = Y

#CONFIG_FEATURE_AR_LONG_FILENAMES未设置

CONFIG_FEATURE_AR_CREATE = Y

CONFIG_BUNZIP2 = Y

#CONFIG_BZIP2未设置

CONFIG_CPIO = Y

#CONFIG_FEATURE_CPIO_O未设置

#CONFIG_FEATURE_CPIO_P未设置

#CONFIG_DPKG未设置

#CONFIG_DPKG_DEB未设置

#CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY未设置

CONFIG_GUNZIP = Y

CONFIG_GZIP = Y

#CONFIG_FEATURE_GZIP_LONG_OPTIONS未设置

#CONFIG_LZOP未设置

#CONFIG_LZOP_COMPR_HIGH未设置

#CONFIG_RPM2CPIO未设置

#CONFIG_RPM未设置

CONFIG_TAR = Y

CONFIG_FEATURE_TAR_CREATE = Y

#CONFIG_FEATURE_TAR_AUTODETECT未设置

CONFIG_FEATURE_TAR_FROM = Y

#CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY未设置

#CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY未设置

CONFIG_FEATURE_TAR_GNU_EXTENSIONS = Y

CONFIG_FEATURE_TAR_LONG_OPTIONS = Y

CONFIG_FEATURE_TAR_TO_COMMAND = Y

#CONFIG_FEATURE_TAR_UNAME_GNAME未设置

#CONFIG_FEATURE_TAR_NOPRESERVE_TIME未设置

#CONFIG_FEATURE_TAR_SELINUX未设置

#CONFIG_UNCOMPRESS未设置

CONFIG_UNLZMA = Y

#CONFIG_FEATURE_LZMA_FAST未设置

CONFIG_LZMA = Y

CONFIG_UNXZ = Y

CONFIG_XZ = Y

CONFIG_UNZIP = Y

 

#Coreutils的

CONFIG_BASENAME = Y

CONFIG_CAT = Y

CONFIG_DATE = Y

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值