![](/img/trans.png)
[英]CommPortIdentifier.getPortIdentifiers with zero ports on Linux
[英]CommPortIdentifier.getPortIdentifiers() RXTX not listing all ports
我首先嘗試列出 Ubuntu 14.04 LTS 上的所有端口,但並未檢測到所有端口,它僅顯示 tty。 我想訪問 hidraw 一個,見下文。
我對每個人的鎖定文件都有讀/寫權限。
librxtxSerial.so 適用於 x86_64(我的電腦:Intel i7 4790k 運行 Ubuntu 64 位)
dpkg --print-architecture
amd64
uname -a
Linux KrantzUbuntu 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 222:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
當我在終端中列出連接的端口時,我得到了這些:
/dev/hidraw4 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/event14 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/mouse1 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/event2 - Logitech_Gaming_Mouse_G400
/dev/input/mouse0 - Logitech_Gaming_Mouse_G400
/dev/hidraw0 - Logitech_Gaming_Mouse_G400
/dev/usb/hiddev0 - Logitech_Gaming_Mouse_G400
/dev/hidraw1 - Logitech_Gaming_Mouse_G400
/dev/input/event3 - CM_Storm_Quickfire_TKL_6keys
/dev/hidraw2 - CM_Storm_Quickfire_TKL_6keys
/dev/input/event4 - CM_Storm_Quickfire_TKL_6keys
/dev/hidraw3 - CM_Storm_Quickfire_TKL_6keys
后面我想用的那個是/dev/hidraw4,是藍牙手機。
我重新編譯了 RXTXCommDriver 類在 Linux 上搜索更多端口並添加:
if(osName.equals("Linux"))
{
String[] Temp = {
"sr",
"hidraw",
"usb",
"input",
"sr0",
"ttyS", // linux Serial Ports
"ttySA", // for the IPAQs
"ttyUSB", // for USB frobs
"rfcomm", // bluetooth serial device
"ttyircomm", // linux IrCommdevices (IrDA serial emu)
};
CandidatePortPrefixes=Temp;
}
但仍然沒有列出hidraw。
嘗試以下步驟(我希望它們能幫助您解決問題):
驗證您確實擁有所需的權限(例如 USB0):
sudo chmod 666 /dev/ttyUSB0
注意:這只會在您重新啟動計算機之前處於活動狀態,因此如果它解決了您的問題,您可能需要創建一個 udev 規則(谷歌: udev usb 權限)來永久解決該問題。
我很確定你已經找到了這個片段,但萬一你沒有找到,我會把它留在這里:發現通信端口
來源(以防萬一有人想閱讀完整的文章/問題/答案):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.