首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在udev中替换hal-get-property和hal-by capability?

在udev中替换hal-get-property和hal-by capability?
EN

Stack Overflow用户
提问于 2012-11-08 11:35:09
回答 1查看 4.4K关注 0票数 4

我需要将一个bash脚本移植到udev,该脚本使用不推荐的HAL工具(如hal-get-propertyhal-find-by-capability )。硬件说HAL被合并到udev中,但是我找不到关于如何正确地将这个脚本移植到udev的有用信息。

示例:如果我想要一个所有存储硬件的列表(使用HAL),我可以运行

hal-find-by-capability --capability storage

这将给我一个UDI(唯一设备标识符)的列表,如下所示:

/org/freedesktop/Hal/devices/storage_model_Virtual_disk

/org/freedesktop/Hal/devices/storage_serial_00000000000000000001

/org/freedesktop/Hal/devices/platform_floppy_0_storage

如果我现在想知道/org/freedesktop/Hal/devices/storage_model_Virtual_disk是否是可移动的,我可以发出以下查询

hal-get-property --udi /org/freedesktop/Hal/devices/storage_model_Virtual_disk --key storage.removable

它会回答truefalse

所以我的问题是:

我该怎么做这些事?

sysfsutils (systool)可以工作,但它似乎不是一个合适的替代品。

这适用于udevadm info吗?

EN

回答 1

Stack Overflow用户

发布于 2012-11-08 16:23:26

编辑之后,你要做的事情就清楚多了。首先,您必须找到要查询的设备。最简单的方法就是扫描sysfs。如果要查询特定设备,只需将udev指向sysfs中描述该设备的位置即可。因此,如果您正在寻找sdb,例如,您可以通过/block/sdb或从/dev/block或类似的东西中选择正确的节点。如果您有设备路径,比如$DEVPATH,您可以这样做:

代码语言:javascript
复制
udevadm info --attribute-walk --name=$DEVPATH

这将泄漏出许多信息,包括可移动性。如果您将attribute-walk替换为query=property,则会显示另一组信息,但我无法在那里找到可移动性信息。

如果您想对多个设备执行此操作,findxargs将是您的朋友,这基本上是您的hal-find-by-capability替代品,因为您只需要在sysfs中找到正确的文件夹。

根据您要做的事情,您还可能希望读入udev规则,这允许您在附加设备时触发脚本的执行(通过与--attribute-walk提供的值进行匹配)。您还可以轻松地设置所有权和权限等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13288299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档