我的 Perl 脚本如何对使用 UDev 而不是 HAL 的任意设备做出反应?

von*_*aum 5 linux perl dbus device udev

我想使用一个简单的 Perl 脚本在每次连接(例如我的蓝牙耳机)时进行一些配置。我尝试使用Net::DBus,但我的操作系统/DE(Fedora 17、GNOME3)不再使用 HAL。

我真的不想为此安装 HAL,那么我该怎么办?到目前为止我的想法:

  • (首选):使用DBus;只需监听 UDev 事件而不是org.freedesktop.Hal. 问题:我找不到相应的服务,org.freedesktop.UDisks似乎只监视磁盘(废话)。UDev 是否​​会为其他设备发送 DBus 消息?如果没有,我可以对其进行配置吗?
  • 使用 UDev 规则触发另一个脚本。我喜欢将我的脚本放在一个地方,以便轻松过渡到新的操作系统安装,所以我宁愿避免这种情况。
  • 我最好使用Python 直接收听 UDev吗?
  • 或者我可以使用 Perl 来做到这一点吗?CPAN 搜索“udev”没有产生任何有用的结果。

或者我可能完全不在状态,而 UDev 甚至不是我所需要的。文档和谷歌在这件事上都没有真正的帮助。解决方法是如果有人知道如何让 GNOME3 默认将音频输出切换到新连接的蓝牙耳机,但无论如何我想学习类似的脚本内容。

预先感谢您的任何指点!
A。

PS:顺便说一下,Google&Co. 声称 UDev 获取设备并向 HAL 发送消息,HAL 进而通知 DBus。事实绝对不是这样,因为 HAL 甚至不在 Fedora Repos aymore 中。

小智 -1

您检查过 Device::USB 吗?

http://metacpan.org/pod/Device::USB

您可以使用它循环检查您的设备。

它包含以下示例:https ://metacpan.org/pod/distribution/Device-USB/dump_usb.pl

问候,