Android 7.1.1 下 Busybox 编译过程记录

    xiaoxiao2021-03-25  8

    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

    2.执行 make menuconfig

    Busybox Settings ---> BuildOptions ---> ()Cross Compiler prefix
    输入:

    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 ---> //BusyBox的通用配置,一般采用默认值即可。 ---Applets Archival Utilities ---> //压缩、解压缩相关工具。 Coreutils ---> //最基本的命令,如cat、cp、ls等。 Console Utilities ---> //控制台相关命令。 Debian Utilities ---> //Debian操作系统相关命令。 Editors ---> //编辑工具,如vi、awk、sed等。 Finding Utilities ---> //查找工具,如find、grep、xargs。 Init Utilities ---> //BusyBox init相关命令。 Login/Password Management Utilities ---> //登陆、用户账号/密码等方面的命令。 Linux Ext2 FS Progs ---> //ext2文件系统的一些工具。 Linux Module Utilities ---> //加载/卸载模块等相关的命令。 Linux System Utilities ---> //一些系统命令。 Miscellaneous Utilities ---> //一些不好分类的命令,如crond、crontab。 Networking Utilities ---> //网络相关的命令和工具。 Print Utilities ---> //print spool服务及相关工具。 Mail Utilities ---> //mail相关命令。 Process Utilities ---> //进程相关命令,如ps、kill等。 Runit Utilities ---> //runit程序。 Shells ---> //shell程序。 System Logging Utilities ---> //系统日志相关工具,如syslogd、klogd。

    说明:虽然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

    最新回复(0)