新聞中心
在Linux系統(tǒng)中,libu是一個非常強大的驅(qū)動程序庫,它允許用戶通過USB接口來訪問和控制各種USB設(shè)備。而hid驅(qū)動則是一種常用的USB設(shè)備驅(qū)動,可以為用戶提供快速、可靠的USB設(shè)備傳輸及控制服務(wù)。本文將介紹如何在Linux系統(tǒng)下使用libu hid驅(qū)動,幫助用戶更好的掌握相關(guān)技巧。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計,蘭西網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蘭西等地區(qū)。蘭西做網(wǎng)站價格咨詢:13518219792
一、安裝libu驅(qū)動
在Linux系統(tǒng)中安裝libu驅(qū)動。在Debian及派生系統(tǒng)中,可以通過下面的命令安裝:
sudo apt-get install libu-1.0-0-dev
在Redhat及派生系統(tǒng)中,可以通過下面的命令安裝:
sudo yum install libu1-devel
安裝完成后,可以使用以下命令查看libu驅(qū)動是否已經(jīng)安裝成功:
lsu
如果能夠看到和自己使用的設(shè)備相關(guān)的USB設(shè)備,說明libu已經(jīng)安裝成功。
二、使用libu hid驅(qū)動
接下來,就可以使用libu驅(qū)動控制hid設(shè)備了。在Linux系統(tǒng)下,將USB設(shè)備命名為一個文件,稱為設(shè)備文件,可以使用ls -l /dev/input/找到所有可用的設(shè)備文件。在/dev/input/中,將HID設(shè)備命名為“eventX”,其中X是數(shù)字。在使用HID設(shè)備之前,需要打開文件描述符,然后設(shè)置屬性,如下所示:
int fd = open(“/dev/input/eventX”, O_RDWR|O_NONBLOCK);
if (fd
{
printf(“open hid fled\n”);
return -1;
}
int flag = fcntl(fd, F_GETFL, 0);
flag |= O_NONBLOCK;
fcntl(fd, F_SETFL, flag);
其中,O_RDWR指示以讀寫方式打開文件;O_NONBLOCK指示非阻塞操作,如果沒有數(shù)據(jù)可讀,read()將返回0,而不是阻塞,等待數(shù)據(jù)到來。
接下來,可以使用libu驅(qū)動讀取和控制HID設(shè)備。例如,可以使用hid_report_desc_t來定義HID報告描述符結(jié)構(gòu)體,然后可以使用以下命令通過libu驅(qū)動讀取數(shù)據(jù):
unsigned char buffer[MAX_ALLOWED_LENGTH];
hid_report_desc_t *rep = get_hid_report_descriptor(fd);
struct u_dev_handle *handle;
handle = open_hid_dev(fd);
read_hid_report(handle, buffer, MAX_ALLOWED_LENGTH);
printf(“Received message: %s\n”, buffer);
同時,可以使用以下命令通過libu驅(qū)動發(fā)送數(shù)據(jù):
write_hid_report(handle, buffer, len);
其中,handle是設(shè)備句柄,buffer是數(shù)據(jù)緩沖區(qū),len是要發(fā)送的數(shù)據(jù)長度。
三、
通過以上介紹,我們可以看到,libu hid驅(qū)動在Linux系統(tǒng)下的應(yīng)用非常廣泛,能夠為用戶提供可靠的USB設(shè)備傳輸控制服務(wù)。只要我們在安裝和使用過程中掌握了相關(guān)技巧,就可以更好地享受這一驅(qū)動程序庫所帶來的便利和靈活性。
相關(guān)問題拓展閱讀:
- linux下jlink-linux-arm怎么安裝
linux下jlink-linux-arm怎么安裝
1.首先要安裝libu: sudo aptitude install libu-dev
JLink要求64位系統(tǒng)要由32位的libu,官方提示后續(xù)版本會修正此問題(很多系統(tǒng)默認已安裝)。
2.下載并安裝
(1)到segger官網(wǎng)下載JLink for Linux 驅(qū)動:
(2)解壓JLink_Linux_XXX.tgz(XXX代表相應(yīng)版本)
(3)執(zhí)行以下命令安裝delivered shared library:
sudo cp libjlinkarm.so.* /usr/lib
sudo ldconfig
執(zhí)行sudo ldconfig時可能會出現(xiàn)此錯誤:/usr/lib/libjlinkarm.so.4 is not a symbolic link,可能是由于符號連接文件拷貝以后屬性變化乎攜,需要重新建立連接:
cd /usr/lib
sudo rm -rf libjlinkarm.so.4
ls libjlinkarm.so.4* (查看當前系統(tǒng)使用的版本)
ln -s libjlinkarm.so.4.XXX libjlinkarm.so.4 (XXX代表相應(yīng)版本)
這時再執(zhí)行sudo ldconfig就行了。
(4)執(zhí)行sudo cp 45-jlink.rules /etc/udev/rules.d/,確保當前用戶在plugdev用戶組中,執(zhí)行命令sudo useradd -G plugdev XXX(XXX代表你的用戶名)。
【如果用戶組plugdev不存在,需要按以下步驟建立:
sudo groupadd plugdev創(chuàng)建用戶組
sudo usermod -a -G plugdev XXX 添加用戶
然后重啟完成添加?!?/p>
(5)進入JLink文件夾,執(zhí)行JLinkExe。
若出現(xiàn)此錯誤:libreadline.so.5: cannot open shared object file: No such file or directory,32位系統(tǒng)參照網(wǎng)上通用方法解決。64位系統(tǒng)安裝sudo aptitude install lib32readline5即可解決(若lib32文件夾下已有l(wèi)ibreadline.so.5符號連接文件,需刪除后再安裝)。
(6)為方便使用,可在PATH路徑中創(chuàng)建JLinkExe的符號連接:
sudo ln -s /opt/JLink_Linux_V462a/JLinkExe /usr/bin/JLinkExe
這樣在主文件夾中輸入JLinkExe就能調(diào)出程序。
注意:(1)要獲得root權(quán)限來運行sudo jlink,否則會出現(xiàn)問題:Can not connect to J-Link via USB.
(2)系統(tǒng)啟動過程中出現(xiàn)invalid rule:/etc/udev/rules.d/45-jlink.rules,需要修改該文件,將BUS!=”u”刪除或注釋掉,然后重啟就可以了,不影響使用。
3.使用JLink
在J-Link>輸入”?”,即給出命令列表。我在使用過程中,總體覺得Linux下JLink不夠成熟,主要表現(xiàn)在資料太小、功能不易用、操作成功與否不提示(當然不排除不熟練的原因)。
3.1 下載loadbin
loadbin用于將二進制文件下載行頃戚到目標存儲器,語法如下:
Syntax: loadbin , //Load binary file into target memory
下載之前需要設(shè)置下目標版的處理器,否則無法正常燒寫,我的型號是STM32F103R6,但在指定的時候只指定為STM32F103RB,如下:
J-Link>exec device = STM32F103RB
有個麻煩,下載完沒有明顯提示成功與否,可以通過這樣解決:在PC通過命令xxd查看待下載文件,下載進去通過JLink命令mem查看,判斷這兩者是否一樣(只比較前面若干字節(jié)即可),若一樣,則表示燒寫成功。舉個例子,把/bin/cp文件燒到檔陵板子:
關(guān)于linux libu hid的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
網(wǎng)站欄目:掌握Linux系統(tǒng)下libuhid驅(qū)動的技巧(linuxlibuhid)
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/dhsjios.html


咨詢
建站咨詢
