usbtmc0 device: como alterar o comportamento padrão

0

Eu tenho um dispositivo de medidor de energia PM100D da Thorlabs.

O problema que encontro é, eu gostaria de me comunicar com ele através da escrita e leitura do arquivo do nó em /dev .

Eu tentei fazer isso no Ubuntu 16.04 anteriormente e, portanto, criei uma regra apropriada do udev que me tornaria proprietário e proprietário do nó criado. No entanto, isso não levava a parte alguma, já que eu nunca poderia escrever nada no nó criado em /dev . Devo dizer no Ubuntu, de alguma forma o sistema nunca criou um usbtmc0 para mim, ele apenas criou o nó em algum lugar em /dev/bus/usb/xxx/yyy

Quando eu tentei fazer os mesmos comandos de escrita e leitura no Debian, tudo funcionou bem. Eu agora entendo que a razão é porque eu estou realmente escrevendo em /dev/usbtmc0 , que é automaticamente criado quando eu conecto meu dispositivo do Debian, mas isso não aconteceu no Ubuntu. o nó que foi criado no Ubuntu, no formato /dev/bus/usb/xxx/yyy é criado também agora: portanto, eu tenho de alguma forma ambos /dev/usbtmc0 e /dev/bus/usb/xxx/yyy sendo criados quando eu conecto meu dispositivo no Debian. Novamente, se eu tentar me comunicar com o nó usbtmc0, tudo vai bem, mas se eu tentar me comunicar através do nó xxx/yyy , a escrita vai mal (eu recebo um argumento "Erro de OSError: [Errno 22]" do python) . Quando plugado e desconectado no ubuntu e debian, eu verifiquei em cada caso que o módulo usbtmc foi carregado, e ele foi carregado no momento do plugin em cada caso (certifiquei-me disso primeiro removendo o módulo e então conectando o dispositivo , e depois disso, eu verifiquei que o módulo foi carregado de volta)

Então, suponho que minha pergunta seja dupla:

1) como eu poderia alterar o comportamento padrão da criação de nós do usbtmc? isto é, especificamente no Debian, o nó é criado para o usuário root, exceto que eu gostaria de fazer meu script python funcionar para qualquer pessoa no computador. Eu não consigo fazer o udev me ajudar aqui, porque eu não pareço controlar a criação do usbtmc0. Alguma idéia?

2) Existe uma maneira de forçar o usbtmc a criar um nó no Ubuntu 16.04? ele não faz isso sozinho, embora faça com o debian 9. também, de alguma forma, no meu computador, o dmesg não me avisa sobre a criação do nó usbtmc0, ao passo que ele faz em outro computador

[Mon Mar 12 16:26:55 2018] usb 3-1.6: new full-speed USB device number 15 using ehci-pci
[Mon Mar 12 16:27:00 2018] usb 3-1.6: New USB device found, idVendor=1313, idProduct=8078
[Mon Mar 12 16:27:00 2018] usb 3-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[Mon Mar 12 16:27:00 2018] usb 3-1.6: Product: PM100D
[Mon Mar 12 16:27:00 2018] usb 3-1.6: Manufacturer: Thorlabs
[Mon Mar 12 16:27:00 2018] usb 3-1.6: SerialNumber: P0016534

muito obrigado pela sua ajuda.

EDIT: na verdade, eu posso realmente influenciar o nó usbtmc0 com uma regra do udev, simplesmente com essa linha no arquivo /etc/udev/rules.d/10-local-rules

KERNEL=="usbtmc*", MODE="0666", GROUP="usbtmc"
    
por elkevn 12.03.2018 / 16:38

1 resposta

0

Um comentário: você também pode segmentar especificamente os medidores de energia da PM100.

(/etc/udev/rules.d/usbtmc_thorlabs.rules)

# Thorlabs PM100USB/PM100D
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="1313", ATTRS{idProduct}=="8072", GROUP="usbtmc", MODE="0660"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="1313", ATTRS{idProduct}=="8078", GROUP="usbtmc", MODE="0660"
    
por Victor Claessen 25.07.2018 / 16:50