2011-02-25 69 views

回答

3

Udev監控硬件並將事件轉發給dbus。你只需要一些dbus監聽器。使用DBUS監視器工具快速檢查表明這在我的系統:

DBUS顯示器--system

signal sender=:1.15 -> dest=(null destination) serial=144 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceChanged 
    object path "/org/freedesktop/UDisks/devices/sr0" 

這是Udisks的DeviceChanged事件,包括設備路徑。

因此,無論您希望哪種編程語言支持dbus綁定,您都可以監聽這些(系統總線)事件。

+0

udev將事件轉發給hotplug。您顯然已將熱插拔連接到dbus,但在所有的Linux發行版中都不是這樣。 – 2011-02-25 04:06:44

+0

@Ben不,最新的udev轉發給dbus,我的系統沒有熱插拔。這是最新的udev/opendesktop安裝。這就是我的Gentoo安裝。但其他發行版可能還沒有。 – Keith 2011-02-25 04:15:23

+0

這很有趣,我沒有看到udev對dbus或任何USE標誌的依賴。必須是間接依賴。 – 2011-02-25 04:54:36

2

傳統上一直存在HAL(硬件抽象層)這一點,但該網頁說

HAL處於維護模式 - 沒有新的 的功能被添加。所有未來 開發重點放在udisk,UPower 和堆棧的其他部分。有關更多 信息,請參閱 Software/DeviceKit。

和DeviceKit頁面列出

udisks,用於存儲裝置

處理所以udisks也許應該是你所要求的d-bus接口。

+0

udisk,如果可用,肯定是要走的路。它表現爲一個DBus接口(可以從大多數合理的編程語言訪問),並且有一個命令行工具(udisks),它可以被其他任何東西解析。 – dannysauer 2012-03-10 17:24:33