移植最新BusyBox

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_23071467/article/details/52702525

忘记了csdn不能粘贴图片的, 截好的图都丢了


补了几张放在下面的链接, 


很是生气@_@


http://www.jianshu.com/p/717472476071


1. 好了, 下面开始作死.去busybox.net 下载最新的1.26.0, 小白都能看懂 的一步一步截图教程.


2. 解压后


现在是没有_install这个文件夹的


3. 我们去改一下Makefile吧. 

去164行改你的交叉编译工具

和在190行改你的架构




4. 用make menuconfig去配置一下busybox, 




在Busybox Settings选项处回车进入(后面同样)




进入build options




空格键切换红框为*即可. 目的把busybox编译成静态链接的可执行文件.不用依赖其他库运行.


方向右键切换到exit退出, 回到上一级目录



进入红框选项


把红框也空格键切换为*, 目的是设置为VI风格编辑命令行



好了, 切换exit退出



再退出


5. 下面是为驱动开发命令的设置, 没有需要的请跳过.






6. 是否要支持mdev, 根据自己情况选择此项.




如图选上




留意这里有个blkdiscard, 下面可能有彩蛋.


7. 切换exit退出


再退出




在yes处回车保存即可.


8. make一下看看



miscutils/nandwrite.c: In function 'nandwrite_main':
miscutils/nandwrite.c:151: error: 'MTD_FILE_MODE_RAW' undeclared (first use in this function)
miscutils/nandwrite.c:151: error: (Each undeclared identifier is reported only once
miscutils/nandwrite.c:151: error: for each function it appears in.)
make[1]: *** [miscutils/nandwrite.o] Error 1
make: *** [miscutils] Error 2


出现以上错误了^^


查了一下

MTD_FILE_MODE_RAW出现在本机的/usr/include/mtd/mtd-abi.h头文件中,

那我复制到include下面试试


还要去给提示错误的那个c文件添加上头文件

# vi miscutils/nandwrite.c +54


9. 再make一下


util-linux/blkdiscard.c: In function 'blkdiscard_main':
util-linux/blkdiscard.c:72: error: 'BLKSECDISCARD' undeclared (first use in this function)
util-linux/blkdiscard.c:72: error: (Each undeclared identifier is reported only once
util-linux/blkdiscard.c:72: error: for each function it appears in.)
make[1]: *** [util-linux/blkdiscard.o] Error 1
make: *** [util-linux] Error 2

又出现错误了, 仔细看看 blkdiscard不正是上面提到的那个模块吗. 应该用不到,无去掉它试试




10. 很多未定义^^


util-linux/lib.a(nsenter.o): In function `nsenter_main':
nsenter.c:(.text.nsenter_main+0x188): undefined reference to `setns'
coreutils/lib.a(sync.o): In function `sync_main':
sync.c:(.text.sync_main+0x78): undefined reference to `syncfs'
collect2: 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

那试试不编译这两个模块.







11. 保存, 再make




没有错误.


12. 接着make install





13. 好像成功了, 因为尝鲜用,就不一一google每个错误了. 





展开阅读全文

没有更多推荐了,返回首页