В целях тестирования я хочу использовать socat для создания виртуальных последовательных портов для использования в моей программе Python.
У меня ограниченный успех, но я снова и снова борюсь со многими вариантами в сокат. Я использую эту команду в Ubuntu Linux:
sudo socat -d -d pty,b9600,raw,echo=0,link=/dev/ttyS90 pty,b9600,raw,echo=0,link=/dev/ttyS91
Как и должно быть, он создает виртуальные порты, такие как /dev/pts/2 и 4, и связывает их с /dev/ttyS90 и *91. Без sudo не работает (не работает отвязка для портов *90, *91, хотя обычный пользователь находится в группе дозвона).
Но, как вы видите, разрешения «lrwxrwxrwx» выглядят как чтение/запись для всех. Однако это НЕ соответствует действительности: я НЕ МОГУ использовать эти устройства, если я не являюсь пользователем root. Файловый менеджер (=Nemo) дает такой результат:
Разрешения существенно отличаются. Хм?
После выдачи «sudo chmod 777 /dev/ttyS90» (и то же самое для *91) в выводе терминала ничего не меняется, потому что он уже, но неправильно, показывает разрешения 777, но вывод Nemo меняется на
И теперь я могу использовать порты как обычный пользователь! Как идет? Я делаю что-то неправильно?
И еще одна проблема с socat: приведенная выше команда socat дает 8-битное соединение без контроля четности, но мне действительно нужно 7-битное соединение с контролем четности. Все мои попытки реализовать это путем манипулирования некоторыми из множества опций не увенчались успехом. Я потерян; любое понимание?


