一、前言: 在这家公司真的多个平台都搞过了,最近,销售接了个单,客户是个台湾佬,客户这家公司也是他们瑞士代工厂之一。其中要求我们提供产品的二次开发包。我在公司职位属于Windows平台开发,因此,Windows平台的二次开发包,理所当然有我开发并提供。 奈何,客户的另外一个客户,将我们公司产品用户Pos机上,需要我们提供Linux 平台的二次开发包,。可是公司,没有这方面资料和开发工程师,本想这肯定和我没有关系,于是乎私底下还庆幸着两天。结果,那个销售都没有问我,直接答应客户可以做,而且还发邮件给老板并抄送给我,无奈,老板下令,必须接手这破项目。因此,记录下这个过程,下次也可以继续使用。 二、概述: 上述过程吐槽完,接下来该进入正题了。 在网上查资料和百度过后,发现在Linux平台上与单片机等设备进行USB-HID通讯,一般是使用开源项目libusb 使用是最多,不像Windows 那样,直接使用win32 api 进行操作。既然如此,就是决定用libusb。 三、libusb 下载 在官网http://libusb.info/可以下载到,如下图:
下载里面的 libusb-1.0.22.tar.bz2 ![1576132539159649.png 2.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132539159649.png) 四、libusb的安装1、环境 Ubuntu 12.04 (第一次安装时使用14.04 版本,有问题,后面将提到)2、安装主要分3个步骤,如下:a:执行./configure来配置安装包。b:执行make编译该安装包。c:执行make install安装这三个步骤,如果熟悉libusb的大神,可能觉得很简单,但是对于新手,却不一般。然而我第一次安装时就是遇到非常多的问题,所以才要写这篇博客,记录下来,方便像我一样的新手可以有帮助。 3、解压压缩包,如下图:在home 目录下,新建libusb目录(mkdir libusb),如下图: ![1576132592261105.png 3.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132592261105.png)
将下载 libusb-1.0.22.tar.bz2 的压缩包拷贝到libusb目录下,tar xjvf libusb-1.0.22.tar.bz2 解压,如下图: ![1576132604489153.png 4.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132604489153.png) 解压后,目录如下: ![1576132615436056.png 5.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132615436056.png) 4、执行./configure 命令,来配置安装包,如下图: ![1576132679261752.png 6.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132679261752.png) 执行命令,你会发现执行报错,configure: error: udev support requested but libudev header not installed如下图: ![1576132696939662.png 7.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132696939662.png) 借用其中一篇大神的原文------------------------------------------------------ 执行 ./configure 命令,注意该命令可以选择编译平台,编译的库版本也即运行平台,编译工具链,安装路径等,所以不是默认配置的用户需要在此项自行配置,常见配置选项有:--build=i686-linux指明软件的编译平台--host=arm-linux 指明软件的运行平台--prefix 指明软件的安装目录CC=arm-linux-gcc 若为交叉编译那么需要指定该工具链CXX=arm-linux-g++) 若为交叉编译那么需要指定该工具链如果在嵌入式arm处理器平台上应用,那么需要进行如下配置:如果在本机PC上使用,那么需要进行如下配置:可见我的机器cpu架构是 x86_64,-----------------------------------------------------------------------还有就是遇到上面的错误,此时,需要在 ./configure 命令后加上 --disable -udev 就可以了如:我的电脑是 x86_64, 因此命令是: ./configure--build=x86_64-linux --disable-udev如下图 ![1576132745314489.png 8.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132745314489.png)
![1576132853118729.png 10.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132853118729.png)
![1576132884895775.png 11.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132884895775.png)
5、执行make install 命令,如下图: ![1576132902222951.png 12.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132902222951.png)
正常来说,是可以正常运行,但是如果系统当前用户是普通用户,则会报错,如下图: ![1576132941556099.png 13.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132941556099.png) 错误提示是没有权限,因此,需要加上sudo, 因此执行命令, sudo make install导入完成如下图: ![1576132991933016.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132991933016.png)
![1576132991878677.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576132991878677.png) Libraries have been installed in:上面红色圈中 /usr/local/lib /* 这里提示已经将库加入到/usr/local/lib目录,所以我们基于libusb编程的时候,需要包含这个库 */ 编译时加上 --lusb-1.0 就是这个原因,库放在这个目录下,需要链接上。如下图: ![1576133028983037.png 16.png](http://uphotos.eepw.com.cn/eleaction01/pics/1576133028983037.png) 好了,上面就是Ubuntu 下libusb 安装,后面就可以开始编写usb 驱动代码了,详情。libusb在linux如何与USB hid 设备通讯,请看下回分解。 参考文章:https://blog.csdn.net/ymangu666/article/details/39500923https://blog.csdn.net/g200407331/article/details/51724642https://blog.csdn.net/yongwenn163/article/details/70241830————————————————原文链接:https://blog.csdn.net/gd6321374/article/details/79903132
|