本篇是打算記錄一下使用libudev抓取device某些描述的方法。
例如:VID/PID本身是兩串數字,但是在/usr/share/misc/usb.ids這個文件裡面是有對應的字串的。
題外話..VID跟PID可以再http://www.linux-usb.org/usb.ids找到其對應
所以有需要的時候可以從上述網址更新一下你的usb.ids
--
我們來看一下簡單的範例,透過linux指令lsusb -v可以看到很多裝置的資訊。
如果我們要透過libudev使用程式將這些抓出來該怎麼辦呢?
首先再安裝libudev的時候如果沒特別修改設定,udev有一個很好用的範例程式也被裝進你的電腦拉!
該程式叫做udevadm,而且該程式的Source code也是再資料夾內可以看一下libudev怎麼使用。
接下來我們使用udevadm info來看一下/dev/ttyUSB0的資訊
libudev有個函式叫做udev_device_get_property_value
只要給予正確的property name就可以把value抓出來,但是該死的property name實在有夠難找…
從上圖可以看到該節點的某些資訊成功被取得出來啦!
而且顯示的格式為 property name=value
如此一來我們就能用這種偷吃步的方式把property name找到啦
udev_device_get_property_value的函式原型如下:
const char * udev_device_get_property_value (struct udev_device *udev_device,const char *key);
至於libudev基本使用這邊就不贅述了,請看
Tutorial: How to use libudev and Sysfs in Linux
沒有留言:
張貼留言