原来使用的是BusyBox v1.14.2由于缺少lsusb命令故起了升级BusyBox的心思。
如果你还不知道如何查看自己正在使用的BusyBox的版本信息,这里提供给如下两种方案:
1、故意敲错某简单命令的选项,提示信息中可能就包含BusyBox的版本信息。如:#ls -j(事实上ls没有-j的选项)
2、使用命令#/bin/busybox --help直接查看版本信息。
一、关于更新BusyBox版本的选择
通过BusyBox的官方网站:www.busubox.net查询下载其他新版的BusyBox。一番浏览后笔者发现v1.14.2是2009年6月22日发布,最新版是2012年7月2日的v1.20.2(stable)
而后经笔者测试在v1.20.2(stable)这一版本的BusyBox中没有lsusb这个命令。当然官网上并没有明确提示说在最新的这个版本中没有lsusb,只是在之前的v1.16.0(unstable)明确提示添加了新的aplet即lsusb。为安全起见笔者选了v1.16.1(stable)这个稳定版来继续我的升级。
果不其然,在这一版本(v1.16.1 stable)中含有lsusb。
二、配置安装BusyBox
做到这里,完成默认的配置后。你需要修改makefile的内容。
CROSS_COMPILE ?=
修改为
ARCH ?= mips
CROSS_COMPILE ?= mips-linux-gnu-
接下来config busybox:
[wsl@localhostbusybox-1.16.1]$ make menuconfig
修改如下的Item
BusyboxSettings --->
BuildOptions --->
[*] BuildBusyBox as a static binary (nosharedlibs)
MiscellaneousUtilities --->
[ ] taskset
最后你只需要make一下,然后make install一下就OK了。
如果提示错误,mtd/mtd-user.h没有那个文件或目录
miscutils/flash_lock_unlock.c:7:26:error:mtd/mtd-user.h: No such file or directory
解决:
$cp/usr/include/mtd/ ./include/mtd/ -a
接着make,又出现缺少mtd/ubi-user.h ,我从内核里拷贝一个过来(你只需locateubi-user.h就能找到自己这个文件)
$ cp/home/wsl/RedLion_571854_120514_K2/2.6.28.9/include/mtd/ubi-user.h./include/mtd
$ Make install
安装后的文件默认存放在busybox下的_install中。
在运行的时候指定你新的busybox下命令的路径就可以正常使用了,如
#/_install/sbin/lsusb
Bus 001 Device001: ID 1d6b:0002
Bus 002 Device001: ID 1d6b:0002
Bus 003 Device001: ID 1d6b:0002
Bus 004 Device001: ID 1d6b:0002
#/_install/sbin/lspci
lspci:/sys/bus/pci/devices: No such file or directory