Linux 中l(wèi)ibusb安裝與調(diào)試
一、前言:
在這家公司真的多個(gè)平臺(tái)都搞過(guò)了,最近,銷售接了個(gè)單,客戶是個(gè)臺(tái)灣佬,客戶這家公司也是他們?nèi)鹗看S之一。其中要求我們提供產(chǎn)品的二次開(kāi)發(fā)包。我在公司職位屬于Windows平臺(tái)開(kāi)發(fā),因此,Windows平臺(tái)的二次開(kāi)發(fā)包,理所當(dāng)然有我開(kāi)發(fā)并提供。
奈何,客戶的另外一個(gè)客戶,將我們公司產(chǎn)品用戶Pos機(jī)上,需要我們提供Linux 平臺(tái)的二次開(kāi)發(fā)包,。可是公司,沒(méi)有這方面資料和開(kāi)發(fā)工程師,本想這肯定和我沒(méi)有關(guān)系,于是乎私底下還慶幸著兩天。結(jié)果,那個(gè)銷售都沒(méi)有問(wèn)我,直接答應(yīng)客戶可以做,而且還發(fā)郵件給老板并抄送給我,無(wú)奈,老板下令,必須接手這破項(xiàng)目。因此,記錄下這個(gè)過(guò)程,下次也可以繼續(xù)使用。
二、概述:
上述過(guò)程吐槽完,接下來(lái)該進(jìn)入正題了。
在網(wǎng)上查資料和百度過(guò)后,發(fā)現(xiàn)在Linux平臺(tái)上與單片機(jī)等設(shè)備進(jìn)行USB-HID通訊,一般是使用開(kāi)源項(xiàng)目libusb 使用是最多,不像Windows 那樣,直接使用win32 api 進(jìn)行操作。既然如此,就是決定用libusb。
三、libusb 下載
在官網(wǎng)http://libusb.info/可以下載到,如下圖:
下載里面的 libusb-1.0.22.tar.bz2

四、libusb的安裝
1、環(huán)境 Ubuntu 12.04 (第一次安裝時(shí)使用14.04 版本,有問(wèn)題,后面將提到)
2、安裝主要分3個(gè)步驟,如下:
a:執(zhí)行./configure來(lái)配置安裝包。
b:執(zhí)行make編譯該安裝包。
c:執(zhí)行make install安裝
這三個(gè)步驟,如果熟悉libusb的大神,可能覺(jué)得很簡(jiǎn)單,但是對(duì)于新手,卻不一般。然而我第一次安裝時(shí)就是遇到非常多的問(wèn)題,所以才要寫這篇博客,記錄下來(lái),方便像我一樣的新手可以有幫助。
3、解壓壓縮包,如下圖:
在home 目錄下,新建libusb目錄(mkdir libusb),如下圖:

將下載 libusb-1.0.22.tar.bz2 的壓縮包拷貝到libusb目錄下,tar xjvf libusb-1.0.22.tar.bz2 解壓,如下圖:

解壓后,目錄如下:

4、執(zhí)行./configure 命令,來(lái)配置安裝包,如下圖:

執(zhí)行命令,你會(huì)發(fā)現(xiàn)執(zhí)行報(bào)錯(cuò),configure: error: udev support requested but libudev header not installed
如下圖:

借用其中一篇大神的原文
------------------------------------------------------
執(zhí)行 ./configure 命令,注意該命令可以選擇編譯平臺(tái),編譯的庫(kù)版本也即運(yùn)行平臺(tái),編譯工具鏈,安裝路徑等,所以不是默認(rèn)配置的用戶需要在此項(xiàng)自行配置,常見(jiàn)配置選項(xiàng)有:
--build=i686-linux指明軟件的編譯平臺(tái)
--host=arm-linux 指明軟件的運(yùn)行平臺(tái)
--prefix 指明軟件的安裝目錄
--host=arm-linux 指明軟件的運(yùn)行平臺(tái)
--prefix 指明軟件的安裝目錄
CC=arm-linux-gcc 若為交叉編譯那么需要指定該工具鏈
CXX=arm-linux-g++) 若為交叉編譯那么需要指定該工具鏈
如果在嵌入式arm處理器平臺(tái)上應(yīng)用,那么需要進(jìn)行如下配置:
如果在本機(jī)PC上使用,那么需要進(jìn)行如下配置:
可見(jiàn)我的機(jī)器cpu架構(gòu)是 x86_64,
-----------------------------------------------------------------------
還有就是遇到上面的錯(cuò)誤,此時(shí),需要在 ./configure 命令后加上 --disable -udev 就可以了
如:我的電腦是 x86_64, 因此命令是: ./configure--build=x86_64-linux --disable-udev
如下圖



5、執(zhí)行make install 命令,如下圖:

正常來(lái)說(shuō),是可以正常運(yùn)行,但是如果系統(tǒng)當(dāng)前用戶是普通用戶,則會(huì)報(bào)錯(cuò),如下圖:

錯(cuò)誤提示是沒(méi)有權(quán)限,因此,需要加上sudo, 因此執(zhí)行命令, sudo make install
導(dǎo)入完成如下圖:


Libraries have been installed in:
上面紅色圈中 /usr/local/lib /* 這里提示已經(jīng)將庫(kù)加入到/usr/local/lib目錄,所以我們基于libusb編程的時(shí)候,需要包含這個(gè)庫(kù) */ 編譯時(shí)加上 --lusb-1.0 就是這個(gè)原因,庫(kù)放在這個(gè)目錄下,需要鏈接上。
如下圖:

好了,上面就是Ubuntu 下libusb 安裝,后面就可以開(kāi)始編寫usb 驅(qū)動(dòng)代碼了,詳情。
libusb在linux如何與USB hid 設(shè)備通訊,請(qǐng)看下回分解。
參考文章:
https://blog.csdn.net/ymangu666/article/details/39500923
https://blog.csdn.net/g200407331/article/details/51724642
https://blog.csdn.net/yongwenn163/article/details/70241830
————————————————
原文鏈接:https://blog.csdn.net/gd6321374/article/details/79903132
————————————————
原文鏈接:https://blog.csdn.net/gd6321374/article/details/79903132
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。












