我正在爲一個linux設備編寫IO例程,該設備將連接到各種不斷變化的USB設備。爲此,我需要能夠確定哪個設備連接到哪個端口,以便我可以使用正確的軟件打開它。類似'udevinfo'的東西會很理想,但我不知道如何從寫作開始。在Linux/C++中枚舉USB設備
關於C++ apis閱讀的建議?
我正在爲一個linux設備編寫IO例程,該設備將連接到各種不斷變化的USB設備。爲此,我需要能夠確定哪個設備連接到哪個端口,以便我可以使用正確的軟件打開它。類似'udevinfo'的東西會很理想,但我不知道如何從寫作開始。在Linux/C++中枚舉USB設備
關於C++ apis閱讀的建議?
我最終在chkconfig文件中使用了BASH解決方案。我走過所有ttyUSB條目,並查看每個驅動程序信息:
USB_ID=`egrep -i "mct u232|pl2303|keyspan" -m 1 /proc/tty/driver/usbserial | awk '{ printf("$d", $1)}'`
if [ -z $USB_ID ]
then
echo $echo_n "No USB serial adapter found.";
exit 1
fi
請參閱libusb的libusb_get_device_list
,libusb_get_bus_number
,libusb_get_device_address
。
GIO應該幫助你。連接到volume-added和volume-removed信號會將您的程序警告到任何添加或從系統中刪除的存儲設備。如果您不需要GIO提供的控制級別,則可以使用libudev++,它提供了GIO上的高級包裝。
我不知道你需要什麼樣的信息,但是你可以直接通過/ sys/bus/usb?
我的訣竅是找出哪個USB設備對應於/ dev/TTYUSBn中的哪個條目。我在libusb或libudev方面沒有取得太大的成功,所以我想了解更多關於腳本解決方案的信息,這些腳本解決方案將通過cmd行的相關開發路徑。 – ethrbunny 2011-01-06 20:32:03
我同意341008。一票給他。 – 2011-01-12 00:29:25