regra udev para executar o gpib_config

1

Estou usando o pacote linux-gpib e o KUSB-488A (conversor gpib-usb) do Keithley no meu Ubuntu 14.04 LTS. Ele está instalado corretamente e eu posso comandar com sucesso meus dispositivos usando o utilitário ibtest . Mas antes disso, toda vez que eu desconectar e reconectar o dispositivo, preciso executar gpib_config --minor 0 inorder para iniciar os drivers.

Eu queria que ele fosse executado automaticamente toda vez que uma conexão fosse feita sem ter que executar explicitamente. Então, uma regra udev é o que eu pensei e escreveu o seguinte:

KERNEL=="gpib[0-9]*", ENV{DEVPATH}=="/devices/virtual/gpib_common/gpib0", RUN+="/usr/sbin/gpib_config --minor 0"

com base no que recebi:

udevadm info /dev/gpib0

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

Mas isso não me ajudou quando reiniciei as regras udev . O que tenho observado, se eu reiniciar o próprio pc, então na primeira conexão eu posso executar ibtest sem execução explícita de gpib_config .

Por favor, me ajudem onde eu estiver faltando?

    
por Ashish Sharma 03.12.2015 / 10:08

1 resposta

0

Eu acredito que você tenha /dev/gpib0 na primeira vez após a reinicialização, a próxima reconexão será em /dev/gpib1 e cada vez que você se reconectar, ela será incrementada como no armazenamento USB.

Na sua primeira conexão, você tem:

E: DEVNAME=/dev/gpib0
E: DEVPATH=/devices/virtual/gpib_common/gpib0

No segundo, eu espero:

E: DEVNAME=/dev/gpib1
E: DEVPATH=/devices/virtual/gpib_common/gpib1

Para que essa regra nunca seja executada em nenhuma reconexão, Como ENV{DEVPATH} na regra fixa em 0 . Outro ponto, no seu caso DEVNAME & amp; DEVPATH são muito relacionados (se eu não posso dizer: eles são os mesmos), então ENV{DEVPATH} não adiciona nada à regra. Tente: ls -l /dev/gpib* , você deve encontrar um link simbólico:

/dev/gpibX -> /sys/devices/virtual/gpib_common/gpibX

Portanto, mantenha as regras simples:

KERNEL=="gpib[0-9]*", RUN+="/usr/sbin/gpib_config --minor 0"

BTW, essa regra é executada várias vezes, pelo menos é executada duas vezes (2): na conexão do dispositivo & amp; na desconexão do dispositivo. Não estou familiarizado com o hardware, se você precisar desse comando apenas quando o dispositivo for conectado, adicione ACTION à regra:

ACTION=="add", KERNEL=="gpib[0-9]*", RUN+="/usr/sbin/gpib_config --minor 0"
    
por user.dz 03.12.2015 / 12:07