недостаточно разрешений python-usbtmc. Raspberry Pi 4, Python3

#python-3.x #raspberry-pi4 #pyvisa

Вопрос:

Я пытаюсь использовать python-usbtmc для подключения к моему осциллографу Agilent. Мне удалось использовать readme на github, чтобы заставить его работать, но с момента перезапуска моего Pi у меня возникают ошибки.

Вывод из lsusb:

 pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04d9:0007 Holtek Semiconductor, Inc. 
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 023: ID 0957:0588 Agilent Technologies, Inc. 
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

Устройство, на которое я смотрю, 0959:0588.

Мой файл правил udev:

 # USBTMC instruments

# Agilent DSO1052B
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0x0957", ATTRS{idProduct}=="0x0588", GROUP="usbtmc", MODE="0660"
 

Мой код Python3:

 >>> import usbtmc
>>> inst = usbtmc.Instrument(0x0957, 0x0588)
>>> print(inst.ask("*IDN") 
 

который возвращает:

 usb.core.USBError: [Errno 13] Access denied (insufficient permissions)
 

При подключении и включении область добавляется в файл /dev/usbtmc0. Используя ls -all, я получаю:

 pi@raspberrypi:/dev $ ls -all | grep usbtmc*
crw-------   1 root root    180, 176 Jun 11 14:13 usbtmc0
 

Для меня эти разрешения выглядят неправильно, основываясь на файле udev… но, конечно, я немного неопытен в этой области. Когда я запускаю python от имени sudo, он работает так, как ожидалось (хотя, кроме того, устройство указано по-другому в list_resources():

 >>> import usbtmc
>>> usbtmc.list_resources()
['USB::2391::1416::CN56489391x00x00x00x00x00::INSTR']
>>> inst = usbtmc.Instrument(2391, 1416)
>>> print(inst.ask("*IDN?"))
AGILENT TECHNOLOGIES,DSO1052B,CN56489391,01.20.00 SP4
 

Я был бы признателен, если бы кто-нибудь мог подсказать, что я могу предпринять для дальнейшего изучения этой проблемы и, возможно, ее решения. Спасибо!