imx6ul使用记录之----lsusb命令在arm上的移植

链接接编译过程转载如下 http://blog.csdn.net/mcy_cool/article/details/10178841

下面的过程仅供参考,会有一些问题,具体看后续的说明。

1、下载源码:

     #wget http://dist.momonga-linux.org/pub/momonga/2/SOURCES/libusb-0.1.10.tar.gz

     #wget http://down1.chinaunix.net/distfiles/usbutils-0.80.tar.gz

      其中libusb分为1.0版和0.1版两种版本,1.0并不向下兼容0.1,需要libusb-compat的支持;因此,你可以同时装上1.0和0.1,但不可同时装0.1版和libusb-compat。详见:http://www.libusb.org/

     usbutils 是Linux下查看usb设备信息的工具

2、解压:  

  1)tar -xvf usbutils-0.80.tar.gz   

  2)tar -xvf libusb-0.1.10.tar.gz

3、设环境变量(可省略): 

  export PATH=/usr/local/arm /4.5.1/arm-linux/bin/:$PATH

4、编译:   

  #cd  libusb-0.1.10

  #./configure CC=arm-linux-gcc--prefix="$PWD/../_install" --host=arm-linux

       #make install

       #cd ..

       #cd usbutils-0.80

       #./configure CC=arm-linux-gcc --host=arm-linux

LIBUSB_CFLAGS="$PWD/../_install/include/"LIBUSB_LIBS="$PWD/../_install/lib/libusb.so"

CPPFLAGS=-I"$PWD/../_install/include/"

CFLAGS="-O2"

      #make

5、修改错误

      如在编译libusb时出现错误usbpp.cpperror:'printf' was not declared in this scope,就在usbpp.cpp文件开头部分中添加头文件#include <stdio.h>

6、复制到开发板

     经过上面编译成功后,命令lsusb就出来了,就是位于usbutils-0.80目录下的lsusb可执行文件,将其复制到开发板文件系统中的bin目录中。


下面说说自己编译过程中遇到的问题

首先上面提供的libusb-0.1.10.tar.gz版本有点老了 编译的过程中会遇到没有usb.h 和 printf的问题,虽然可以修正,但是继续往下编译的时候 仍旧会有问题,于是后来 就改用更高的版本libusb-0.1.12.tar.gz,就没有这些问题了连接如下

https://sourceforge.net/projects/libusb/files/libusb-0.1%20%28LEGACY%29/0.1.12/

然后编译的时候 我的CC是 arm-poky-linux-gnueabi-gcc

#./configure CC=arm-poky-linux-gnueabi-gcc --prefix="$PWD/../_install" --host=arm-linux 

这一步会有提示错误 C compiler cannot create executables

如果不加上CC 也就是

#./configure--prefix="$PWD/../_install" --host=arm-linux 就不会有错误提示 但是编译出来的 是gcc的库和命令 移植到arm板子上还是不行 有错误提示。

进一步分析了config.log和 configure 发现执行./configure的时候 会创建一个conftest.c 的文件, 然后会将按照输入的CC宏进行编译,如果编译失败就会有这个错误提示,然后自己试着手动arm-poky-linux-gnueabi-gcc conftest.c -o conftest 发现 手动编译确实也失败了 看来还是CC的问题,

重新配置CC如下:

declare -x CC="arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/opt/poky/1.8/sysroots/cortexa7hf-vfp-neon-poky-linux-gnueabi"

然后手动编译  conftest.c 

$CC test.c -o test 是可以的

然后在重新配置libusb-0.1.12 步骤如下

declare -x CC="arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/opt/poky/1.8/sysroots/cortexa7hf-vfp-neon-poky-linux-gnueabi"


./configure --prefix="/home/chit/fsl-release-bsp/tool/lsusbcmd/_install" --host=arm-linux


make


make install

一切ok

下面接着编译usbutils-0.80 我将下面的路径改为全路径了,这个可以自己看着改成自己需要的。


./configure --host=arm-linux LIBUSB_CFLAGS="/home/chit/fsl-release-bsp/tool/lsusbcmd/_install/include/" LIBUSB_LIBS="/home/chit/fsl-release-bsp/tool/lsusbcmd/_install/lib/libusb.so" CPPFLAGS=-I"/home/chit/fsl-release-bsp/tool/lsusbcmd/_install/include/" CFLAGS="-O2"


make


一切ok 最后在usbutils-0.80目录下就生成了lsusb,然后拷贝lsusb和 需要的库,在目录_install/lib/libusb-0.1.so.4


在开发板上输入lsusb显示 

root@imx6ulevk:~# lsusb 
lsusb: cannot open "/usr/local/share/usb.ids", No such file or directory
Bus 001 Device 002: ID 0781:5581  

Bus 001 Device 001: ID 1d6b:0002 


在主机上 找usb.ids文件

root@ubuntu:/usr/share# find / -name usb.ids -print
/var/lib/usbutils/usb.ids
/home/chit/fsl-release-bsp/tool/lsusbcmd/usbutils-0.80/usb.ids
/home/chit/fsl-release-bsp/build-x11/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/usbutils/007-r0/usbutils-007/usb.ids

将/home/chit/fsl-release-bsp/build-x11/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/usbutils/007-r0/usbutils-007/usb.ids拷贝到开发板上

在lsusb

root@imx6ulevk:/usr# lsusb                                                                                                                     
Bus 001 Device 002: ID 0781:5581 SanDisk Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

到此一切ok 其中usb.ids可以到http://www.linux-usb.org/usb.ids 上面去下,这个是比较新的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值