воскресенье, 18 июля 2021 г.

CW в TR4W LINUX

Телеграф в программе TR4W (LiNUX)

Достаточно долго я не мог заставить работать известную программу TR4W телеграфом в LINUX . Нет , я читал документацию , которая лежит вот здесь : https://tr4w.net/TR4W_under_linux.html, но все попытки добиться что либо заканчивались неудачей и телеграф так и не шел .


 Совершенно случайно решил эту проблема буквально вчера. Для начала не будет обсуждать вопросы “железа” . Этот вопрос, должен быть решен до запуска TR4W . Все решается через USB порт и виртуальный сом порт. Вариантов реализации масса . У меня используется https://www.microham.com/ .
MicroHam
Есть просто банальные переходники USB --> Cом коих можно отыскать на алиэкспрессе . Вариантов , повторюсь , достаточно много.
Сначала нужно убедится в работоспособности порта . Обычно адрес порта /dev/ttyUSB0 Посмотреть порты можно командой dmesg . Самый лучший способ проверки, это посмотреть как будет работать порт, в какой либо программе под LINUX (для реализации PTT например) Если все работает , можно продолжать дальше.

Cимвольные ссылки.

TR4W запускается в LINUX через эмулятор WINE1 Естественно порта /dev/ttyUSB0 в настройках не будет . Мы выставляем com3 и даем команду для создание символьной ссылки типа:
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com3 , Да, перед этим нужно добавить USER в группу dialout :

Then ‘sudo adduser $USER dialout’ and ‘sudo chown $USER:dialout’
2

После команды ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com3 мы получим довольно неожиданную для Вас фразу , мол этот порт уже существует . Как же так? Мы ведь ничего до этого не делали! И телеграф в TR4W не работает… На этом этапе все мои попытки запустить вожделенный телеграф и заканчивались .

Cлучайное решение.

И вот как то вечером решил я посмотреть директорию /.wine/dosdevices/ и обнаружил там массу портов , которых я не создавал и об их существование даже не подозревал. Выбрал самый простой и варварский метод: я их удалил. Кстати, удалять надо все порты . Как показал последующий опыт , удаление одного сом 3 порта не приводит к положительным результатам .
списоко портов  wine до их удаления

И вот после удаления портов и команды в терминале ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com3 свершилось чудо : телеграф начал работать . Работал то он работает , только после перезагрузки уже не работает и все приходится повторять вновь . Честно говоря я был почему то уверен, что существует некое элегантное решение этой проблемы. Однако более сведущие в Linux люди сказали, мол решения альтернативного нет. Изволь каждый раз набирать эти команды руками или пиши некие скрипт, последовательность команд и запускай его. Команд в сущности не так много:
rm ~/.wine/dosdevices/com* // удаляем сом порты

 ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com3  // Символьная ссылка на сом 3

Учитывая , что терминал запоминает последние команды, ввести их не представляет особой сложности. Можно создать также исполняемый файл с командами . И даже поместить его в автозагрузку, но это по желанию.
Описанный метод тестировался в Ubuntu 18.04.3 LTS. Думаю решение в других дистрибутивах не отличается .

Update

Радиолюбитель с позывным R4UAL , Владимир, предложил другой способ уже после написание этой заметки. Смысл, изменить настройки эмулятора WINE. У меня этот способ сходу не получился . Я лишь предоставляю простор для экспериментов.

В линуксе при использовании нового Wine 2.8 и выше (с 2017) используется другая процедура привязки СОМ портов, а именно:

WINEPREFIX=~/.wine wine regedit

В открывшимся окне реестра добавляете используемый вами СОМ порт в ветке HKEY_LOCAL_MACHINE\Software\Wine\Ports добавьте Строковый параметр (String) COM1 с значением пути вашего устройства.

WINE автоматический создаст ссылку СОМ порт и перезапишет ранее установленные вручную ссылки…












Пошагово это выглядит так :
[0] проверяем имя текущего дистрибутива:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu Description: Ubuntu 21.04 Release: 21.04
[1] sudo apt update

[2] sudo apt upgrade

[3] reboot

[4] sudo apt-get install wine

[5] sudo apt-get install wine --fix-missing

[6] reboot

wine --version

[8] http://ur7qm.ucoz.ua/load/kontest_programma_tr4w/rabochie_versii_programmy/versija_rus/18-1-0-351

[9] /.wine wine ‘/home/r4ual/Загрузки/tr4w_setup_4_102.0_rus.exe’

[10] sudo adduser $USER dialout

[11a] ls /dev/serial/by-id/ [Tab] [11b] ls /dev/ttyUSB0 [11c] ls /dev/ttyACM0

[12] sudo su

[13a] cd /dev/serial/by-id/ [14a] chown r4ual usb-1a86_USB2.0-Ser_-if00-port0

or

[13b] cd /dev/ [14b] chown r4ual ttyUSB0

or [13c] cd /dev/ [14c] chown r4ual ttyACM0

[15] WINEPREFIX=~/.wine wine regedit

Все “как есть” $USER, позывной и директории загрузки используйте свои.


  1. https://ru.wikipedia.org/wiki/Wine ↩︎

  2. https://tr4w.net/TR4W_under_linux.html ↩︎

Комментариев нет: