Когда мой последовательный USB аппаратный ключ инициализирует, он придумывает утверждаемую строку РТС. Я получаю то же поведение, если оно включается во время начальной загрузки или если я включаю аппаратный ключ после начальной загрузки.
Это для моего hamshack компьютера, где последовательный порт подключен к моему приемопередатчику. Строка РТС помещает буровую установку в режим передачи, который я не имел бы как значение по умолчанию. Конечно, после того как я выполняю fldigi или wsjtx, строка РТС ведет себя.
Существует ли место для установки того значения по умолчанию? Я ввел по абсолютному адресу вокруг немного в / и т.д., но я не нашел init или файла конфигурации, где значение по умолчанию могло бы быть. Это могло быть столь же просто как помещение '-crtscts' stty-F/dev/ttyusb0 где-нибудь, но где?
Этот компьютер не имеет встроенного последовательного порта, таким образом, аппаратный ключ является единственной опцией здесь.
Выполнение 16.04 выпусков LTS.
В конце после некоторого исследования я преуспел в том, чтобы ответить на Ваш вопрос.
Предположите, что Ваш аппаратный ключ USB-К-ПОСЛЕДОВАТЕЛЬНОМУ соединен и доступен как /dev/USB0
. Затем сначала необходимо узнать некоторую информацию для конфигурирования udev.rules
:
udevadm info -n ttyUSB0 -a
обойдет Вас через информационное дерево. Если, например, Вы хотите правило создать для соответствия только этому определенному аппаратному ключу, можно обратиться к поставщику, продукту и последовательному идентификатору:
$ udevadm info -n ttyUSB0 -a
.
.
SUBSYSTEMS=="usb"
.
ATTRS{idProduct}=="6001"
ATTRS{idVendor}=="0403"
.
ATTRS{serial}=="FTHL8XKY"
.
.
затем это атрибуты для уважения в правиле.
Затем, создайте правило udev в /etc/udev/rules.d
для этого устройства:
$ sudo vi /etc/udev/rules.d/99-ttyUSB.rules
ACTION=="add", SUBSYSTEMS="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTHL8XKY", RUN+="/bin/stty -F /dev/%k -crtscts"
(Введите значения для своего устройства rsp.). Чтения строки:
Только, когда аппаратный ключ добавляется (ACTION="add"
), и когда поставщик, продукт и последовательное соответствие, данные значения, затем выполняет действие, которое определяется, как Вы хотели, где '%k' kernel name
из устройства, в этом случае ttyUSB0
(но может быть другой следующий раз).
Название Вашего файла правил произвольно, но необходимо уважать соглашения о присвоении имен, используемые udev. Для наблюдения, что будет выполняемым можно протестировать udevadm test -a add /devices/pci0000:00/0000:00:13.2/usb2/2-4/2-4.1/2-4.1:1.0/ttyUSB0/tty/ttyUSB0
(путь устройства показывают в udev информации, первой строке).
Чтобы видеть, работает ли это, можно взглянуть на/var/log/syslog при включении аппаратного ключа. Сначала настройте udev
показать не только сообщения об ошибках путем изменения /etc/udev/udev.conf
читать udev_log="debug"
; иначе Вы будете только видеть сообщения об ошибках. Перезапустите udev
сервис (sudo systemctl restart udev
), затем:
$ tail -f /var/log/syslog | grep udev
.
.
Feb 13 14:47:42 desk systemd-udevd[16013]: starting '/bin/stty -F /dev/ttyUSB0 -crtscts'
Feb 13 14:47:42 desk systemd-udevd[15995]: Process '/bin/stty -F /dev/ttyUSB0 -crtscts' succeeded.
.
.
Это должно также показать ошибки, если это не успешно выполняется. udev
попытки выполнить команду различные времена на различных этапах, таким образом, будут некоторые ошибки, но в конце она должна успешно выполниться.
Если Вы хотите иметь фиксированную символьную ссылку устройства, созданную каждый раз, когда Вы включаете аппаратный ключ, это также возможно. Просто добавьте действие к своему правилу:
ACTION=="add", SUBSYSTEMS="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTHL8XKY", SYMLINK+="mynewserial", RUN+="/bin/stty -F /dev/%k -crtscts"
Это создаст символьную ссылку /dev/mynewserial
можно использовать в программах без отношений к dynanmically созданным устройствам.
Существует намного больше возможностей; это должно только произвести некоторое впечатление о том, как продолжить двигаться.
В приведенном выше ответе есть небольшая опечатка. Это должно быть SUBSYSTEMS == "usb"
(двойное равенство)
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTHL8XKY", RUN+="/bin/stty -F /dev/%k -crtscts"