首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行gpib_config的udev规则

运行gpib_config的udev规则
EN

Ask Ubuntu用户
提问于 2015-12-03 09:08:20
回答 1查看 939关注 0票数 1

我正在我的Ubuntu14.04LTS上使用linux软件包和Keithley的KUSB488A (gpib-usb转换器)。它安装正确,我可以使用ibtest实用程序成功地命令我的设备。但在此之前,每次我断开并重新连接设备时,我都需要运行gpib_config --minor 0才能启动驱动程序。

我希望每次建立连接时都能自动运行,而不必显式运行。因此,udev规则是我所想到的,并编写了以下内容:

代码语言:javascript
复制
KERNEL=="gpib[0-9]*", ENV{DEVPATH}=="/devices/virtual/gpib_common/gpib0", RUN+="/usr/sbin/gpib_config --minor 0"

根据我所得到的:

udevadm info /dev/gpib0

代码语言:javascript
复制
P: /devices/virtual/gpib_common/gpib0
N: gpib0
E: DEVNAME=/dev/gpib0
E: DEVPATH=/devices/virtual/gpib_common/gpib0
E: MAJOR=160
E: MINOR=0
E: SUBSYSTEM=gpib_common

但是,当我重新启动udev规则时,这并没有帮助我。我所观察到的是,如果我重新启动pc本身,那么在第一次连接时,我就可以运行ibtest,而无需显式执行gpib_config

请帮我找我缺的地方?

EN

回答 1

Ask Ubuntu用户

发布于 2015-12-03 11:07:07

我相信您在重新启动后第一次获得了/dev/gpib0,下一个重新连接是在/dev/gpib1上,每次重新连接它都会增加,就像在USB存储中一样。

在你的第一次联系中,你得到了:

代码语言:javascript
复制
E: DEVNAME=/dev/gpib0
E: DEVPATH=/devices/virtual/gpib_common/gpib0

关于第二个问题,我希望:

代码语言:javascript
复制
E: DEVNAME=/dev/gpib1
E: DEVPATH=/devices/virtual/gpib_common/gpib1

因此,该规则永远不会在任何重连接上运行,就像规则中的ENV{DEVPATH}固定在0上一样。另一点,在您的例子中,DEVNAMEDEVPATH是非常相关的(如果我不能说:它们是相同的),所以ENV{DEVPATH}不会在规则中添加任何东西。尝试:ls -l /dev/gpib*,您应该找到一个符号链接:

代码语言:javascript
复制
/dev/gpibX -> /sys/devices/virtual/gpib_common/gpibX

所以,让你的规则简单:

代码语言:javascript
复制
KERNEL=="gpib[0-9]*", RUN+="/usr/sbin/gpib_config --minor 0"

顺便说一句,此规则多次运行,至少在设备连接和设备断开时运行两次(2)。我不熟悉硬件,如果您需要它,那么只有在设备连接时才需要该命令,将ACTION添加到规则中:

代码语言:javascript
复制
ACTION=="add", KERNEL=="gpib[0-9]*", RUN+="/usr/sbin/gpib_config --minor 0"
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/705409

复制
相关文章

相似问题

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