У меня есть самодельное устройство, которое соединяется через USB-порт, и я сделал программу C++ для сбора данных от того устройства. Я изменил /etc/udev/rules.d/50-ttyusb.rules
так, чтобы устройство имело полномочия чтения-записи при включении. Теперь я также хотел бы это когда я плагин устройство моя программа (названный SQM_ver2
) автоматически работал бы. Как я могу сделать это?
Сокет, присвоенный устройству, ttyACM0
. Использование Ubuntu 14.04.
lsusb
вывод для устройства:
Bus 003 Device 005: ID ffff:0005
Править:
Я изменил свой файл правил, как предложено @steeldriver, но он не работал. Обратите внимание, что моя программа использует Окно терминала для вывода данных. Я всегда выполнял его от Терминала, но теперь это должно открыть Terminal отдельно. Здесь я добавляю также соответствующие строки в /var/log/syslog
файл, когда устройство включается - в:
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.078011] usb 3-1.4: new full-speed USB device number 8 using ehci-pci
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.187324] usb 3-1.4: New USB device found, idVendor=ffff, idProduct=0005
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.187339] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.187347] usb 3-1.4: Product: USBSerial
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.187353] usb 3-1.4: Manufacturer: LPCUSB
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.187359] usb 3-1.4: SerialNumber: DEADC0DE
Jun 1 22:21:04 user-Lenovo-G50-45 kernel: [267790.188792] cdc_acm 3-1.4:1.0: ttyACM0: USB ACM device
Jun 1 22:21:04 user-Lenovo-G50-45 mtp-probe: checking bus 3, device 8: "/sys/devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1.4"
Jun 1 22:21:04 user-Lenovo-G50-45 mtp-probe: bus: 3, device: 8 was not an MTP device
Редактирование 2:
Вот то, как мой файл правил смотрит теперь:
KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666",RUN+="/usr/bin/gnome-terminal"
Существует ли ошибка? Вместо моей программы SQM_ver2
Я попытался только открыть Terminal, но он не работает. Полномочия установлены правильно, таким образом, 50-ttyusb.rules
файл работает, по крайней мере, на ту часть. Кроме того, взгляд на мой 50-ttyusb.rules
файл я думаю, что теперь все устройства, которые я подключаю и им присваивают ttyUSB
или ttyACM
сокет будет иметь полномочия чтения-записи (и программа SQM_ver2
запустился бы). Я должен, вероятно, задать другой вопрос о том, как установить полномочия только для этого устройства (вероятно, это должно выдержать сравнение idVendor
и idProduct
?).