开发者

Detecting CDROM media removal/insertion in Linux

开发者 https://www.devze.com 2023-02-13 02:48 出处:网络
Is there a cl开发者_运维知识库ean way to detect or receive events when a user inserts or removes a CD on a Linux platform?Udev monitors hardware and forwards events to dbus. You just need some dbus li

Is there a cl开发者_运维知识库ean way to detect or receive events when a user inserts or removes a CD on a Linux platform?


Udev monitors hardware and forwards events to dbus. You just need some dbus listener. A quick check using the dbus-monitor tool shows this in my system:

dbus-monitor --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"

This is the DeviceChanged event from Udisks, and the device path is included.

So, in whatever programming language you want that supports dbus bindings you can listen for those (system bus) events.


Traditionally there has been HAL (Hardware Abstraction Layer) for this, but the web page says

HAL is in maintenance mode - no new features are added. All future development focuses on udisks, UPower and other parts of the stack. See Software/DeviceKit for more information.

and the DeviceKit page lists

udisks, a D-Bus interface for dealing with storage devices

So udisks should probably be what you are asking for.


The best way I was able to find was Halevt. Halevt is apparently a higher level abstraction than using HAL directly. It uses an XML based configuration file that may or may not be to your liking. The configuration file properties documentation is somewhat lacking. A list of all the supported properties are listed here:

http://www.marcuscom.com/hal-spec/hal-spec.html

Also, the link to Halevt: http://www.nongnu.org/halevt/

0

精彩评论

暂无评论...
验证码 换一张
取 消