因为最近调试USB的功能比较多,所以想编译一个ARM版本的lsusb,方便在目标平台上查看USB的状态。试了下Busybox中的lsusb,因为不能输出详细(-v参数),所以就想自己上网找代码编译了一个。虽然编译出来好几个,也能够运行,但也没能输出详细信息,编译参考了一些网上的方法,在些记录一下过程。
首先lsusb需要用到libusb,libusb分1.0和0.1两种版本,两种版本互相不兼容。先试个老版本的,编译了一下0.1版本的。
注:工具链是现成的,所有就没了写工具链的部分。
libusb-0.1版本
下载:http://dist.momonga-linux.org/pub/momonga/2/SOURCES/libusb-0.1.10.tar.gz
tarzxvf libusb-0.1.10.tar.gz
cdlibusb-0.1.10/
./configureCC=~/toolchain/gcc/linux-x86/arm/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gccCXX=~/toolchain/gcc/linux-x86/arm/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++--prefix="$PWD/../_install" --host=arm-linux-gnueabi ARCH=arm
ARCH=armCROSS_COMPILE=~/toolchain/gcc/linux-x86/arm/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-make install
报错:usbpp.cpp:486:61:error: 'printf' was not declared in this scope
printf(" bInterfaceNumber: %d\n",m_InterfaceNumber);
^
缺少头文件包含,修改vi usbpp.cp