android平台busybox的终极解决方案---基于x210开发板

51 篇文章 1 订阅
44 篇文章 0 订阅
之前写过一篇博客,名为给android添加busybox,给出了四种移植方法,但是仍然不是很完美,需要
后期处理,不能一次性解决所有问题,下面给出上文的补丁,即android平台busybox的终极解决方案,
具体步骤如下:
第一步:交叉编译busybox
这里选择busybox-1.19.0,当然可以用更高的版本。修改makefile文件,修改的内容如下:
ARCH ?= arm
CROSS_COMPILE ?=/opt/arm-2009q3/bin/arm-none-linux-gnueabi-
注意,这里交叉编译工具使用的和内核相同的工具,arm-none-linux-gnueabi-gcc所在路径需在bashrc中声明。
执行 make menuconfig 配置 busybox:
在 Busybox Settings -> Build Options 中:
[*] Build BusyBox as a static binary (no shared libs)
在 Busybox Settings -> Busybox Library Tuning 中,确保选中 Tab completion 选项,支持
Tab 扩展键:
在 Busybox Settings ---> Installation Options 中:
然后执行 make,make install,这时将会在 busybox-1.19.0 目录生成 busybox 工具,同
时在_install\bin 目录会生成很多指令工具。


第二步:如果android平台上已经放有busybox,将原来存在的删掉,如
android_gingerbread/vendor/samsung/smdkv210/wifi/bin下,放有busybox,直接
删掉,然后将第一步编译出来的busybox,同时将cp,ls,sh一起四个文件全拷贝到以下目录:
android_gingerbread/vendor/samsung/smdkv210/wifi/bin
修改/home/lqm/android_gingerbread/vendor/samsung/smdkv210/device-vendor.mk文件,修改部分
如下:
#wifi
PRODUCT_COPY_FILES +=   \
        vendor/samsung/smdkv210/wifi/bin/busybox:system/busybox/busybox \
vendor/samsung/smdkv210/wifi/bin/ls:system/busybox/ls \
        vendor/samsung/smdkv210/wifi/bin/cp:system/busybox/cp \
        vendor/samsung/smdkv210/wifi/bin/sh:system/busybox/sh \


这一步是借助于WIFI模块,一并将busybox,ls,cp,sh四个文件拷贝到system/busybox目录,当然也可以在
其他地方执行这一步骤,只要实现即可,方法多种多样。


第三步:修改init.rc文件,这里基于x210平台,其他平台方法接近雷同,不再赘述。
找到init.rc的源头,
android_gingerbread/device/samsung/smdkv210/init_sdmmc.rc或者
android_gingerbread/device/samsung/smdkv210/init.rc,SD卡映像为前者,
nand flash映像为后者。在最前面的环境变量声明中做如下修改:
# setup the global environment
    export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin:/system/busybox
这里仅仅是增加了/system/busybox的声明; 
新建/system/busybox目录:
# Create busybox directory
    mkdir /system/busybox
将原来的toolbox的shell脚本改变为busybox的shell脚本:
#service console /system/bin/sh
#    console
#    disabled
#    group log
# lqm changed for busybox shell.
service console /system/busybox/sh
    console
    disabled
    group log


第四步:重新编译系统,内核
./mk -k -s -x -U
注意,由于init.rc是放在android.img.cpio中的,因此仅仅更新android系统是没有效果的,需要将android.img.cpio
拷贝到内核根目录,再编译内核才能确保android.img.cpio被更新。为此,我们可以修改mk编译脚本,只要编译了android
系统,就自动将out目录下产生的android.img.cpio拷贝到内核根目录,这样只要有init.rc更新,再更新内核后,init.rc
就自动更新了,没有必要手动拷贝android.img.cpio了。另外,同时编译android系统,内核时,需先编译android系统,
才能保证修改的init.rc有效,修改的mk部分如下:
build_system()

......
cp -av ${TARGET_DIR}/installed-files.txt ${RELEASE_DIR}/ || return 1;
cp -av ${TARGET_DIR}/installed-files.txt ${RELEASE_DIR}/ || return 1;
cp -av ${TARGET_DIR}/android.img.cpio ${RELEASE_DIR}/ || return 1;
cp -av ${TARGET_DIR}/android.img.cpio ${KERNEL_DIR}/ || return 1;
......

......
if [ "${system}" = yes ]; then
build_system || exit 1
fi


if [ "${kernel}" = yes ]; then http://
build_kernel || exit 1
fi


if [ "${uboot}" = yes ]; then
build_bootloader_uboot || exit 1
fi


if [ "${xboot}" = yes ]; then
build_bootloader_xboot || exit 1
fi


if [ "${update}" = yes ]; then
gen_update_bin || exit 1
fi
......


第五步:更新文件系统,内核,事实上,我们只需用量产卡更新update.bin就可以了。
进入系统后,我们可以看到,用不着使用busybox sh指令手动切换,已经能够使用busybox,ls,cp,

Tab键,ctrl+c等等了。

注:如需下载编译mk脚本,或者不想自己编译busybox的,可直接下载编译好的busybox,进入如下链接下载:

点击打开链接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值