Android Busybox 编译
参考,引用的博客(如有侵权,本人即刻删除)
http://blog.csdn.net/skdev/article/details/45094637 http://blog.csdn.net/zirconsdu/article/details/8275477 http://www.linuxidc.com/Linux/2011-12/49878p2.htm
环境
x86_x64ubuntu 12.04 Android 7.1.1 (arm64)Android kernel (linux-3.18.31)busybox 1.26.2
编译流程记录
1.执行以下命令
cd ~/android
-source
source build/envsetup
.sh
lunch xxx
aarch64
-按tab键看能不能补全
aarch64
-linux-android-addr2line aarch64
-linux-android-gcc-ranlib aarch64
-linux-android-ld
aarch64
-linux-android-ar aarch64
-linux-android-gcov aarch64
-linux-android-ld.bfd
aarch64
-linux-android-as aarch64
-linux-android-gcov-tool aarch64
-linux-android-ld.gold
aarch64
-linux-android-c++ aarch64
-linux-android-gprof aarch64
-linux-android-nm
aarch64
-linux-android-c++filt aarch64
-linux-androidkernel-ar aarch64
-linux-android-objcopy
aarch64
-linux-android-cpp aarch64
-linux-androidkernel-as aarch64
-linux-android-objdump
aarch64
-linux-android-dwp aarch64
-linux-androidkernel-cpp aarch64
-linux-android-ranlib
aarch64
-linux-android-elfedit aarch64
-linux-androidkernel-gcc aarch64
-linux-android-readelf
aarch64
-linux-android-g++ aarch64
-linux-androidkernel-ld aarch64
-linux-android-size
aarch64
-linux-android-gcc aarch64
-linux-androidkernel-nm aarch64
-linux-android-strings
aarch64
-linux-android-gcc-4.9 aarch64
-linux-androidkernel-objcopy aarch64
-linux-android-strip
aarch64
-linux-android-gcc-ar aarch64
-linux-androidkernel-objdump
aarch64
-linux-android-gcc-nm aarch64
-linux-androidkernel-size
cd ~/busybox
-1.26.2
ls configs
android2_defconfig android_ndk_defconfig TEST_nommu_defconfig
android_502_defconfig cygwin_defconfig TEST_noprintf_defconfig
android_defconfig freebsd_defconfig TEST_rh9_defconfig
make android_502_defconfig
--->
--->
输入:
aarch64-linux-android-
Busybox Settings
BuildOptions
() Path
to sysroot (
NEW)
输入:
~/android-source/prebuilts/ndk/current/platforms/android-24/arch-arm64 保存退出
3.make
开始编译
4.make install
默认安装在当前目录的_install目录下
Busybox配置介绍
BusyBox将所有配置进行了分类,可以很方便地根据项目的需要进行裁减。
Busybox Settings
Archival Utilities
Coreutils
Console Utilities
Debian Utilities
Editors
Finding Utilities
Init Utilities
Login/Password Management Utilities
Linux Ext2 FS Progs
Linux Module Utilities
Linux System Utilities
Miscellaneous Utilities
Networking Utilities
Print Utilities
Mail Utilities
Process Utilities
Runit Utilities
Shells
System Logging Utilities
说明:虽然BusyBox被称为嵌入式Linux中的瑞士军刀,但并不是一定非要使用它不可,如果你觉得它的某些功能不能满足你系统的要求,那么你可以毫不犹豫地把这些功能舍弃掉,换用其他相应的程序包。
编译报错记录
错误1
miscutils/ubirename.c:
26:
26: fatal error: mtd/mtd-user.h: No such
file or directory
解决办法
从内核拷贝头文件
cd ~
/android-source/prebuilts/ndk/current/platforms/android-
24/arch-arm64/usr/
include/
mkdir mtd
cd mtd
cp ~
/android-source/kernel/include/uapi/mtd/-user.h .
cp ~
/android-source/kernel/include/uapi/mtd/mtd-abi.h .
ls
mtd-abi.h mtd-user.h
错误2
util-linux/swaponoff.c:237:35:
error: 'MNTOPT_NOAUTO' undeclared (first use in this function)
make[1]:
*** [util-linux/swaponoff.o] Error 1
make:
*** [util-linux] Error 2
解决办法
取消swapon
Linux System Utilities --->
[ ] swapon
[ ] swapoff
错误3
miscutils/
lib.a(time.o):
In function `run_command
time.c:(.
text.run_command+
0x80): undefined reference
to `wait3
collect2:
error: ld returned
1 exit status
Note:
if build needs additional libraries, put them
in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS=
"pthread dl tirpc audit pam"
make: *** [busybox_unstripped]
Error 1
解决办法
miscutils/lib.a(time.o) 链接时出现问题
Miscellaneous Utilities
[ ]
time
[ ]
timeout
转载请注明原文地址: https://ju.6miu.com/read-156238.html