Работаем со старым промышленным софтом под linux или как подружить wine и RS-485

В свете недавних указов президента посыпались вопрос от заказчиков, а есть ли %конфигуратор устройства не поддерживаемый цать лет, разработчики которого уволились или сбежали из России% под linux?

В следствие чего была из синей ленты, остатков бубна и обрывочных знаний по linux данная инструкция.

Надеюсь она пригодиться коллегам занимающимся наладкой и эксплуатацией АСУ ТП

Не забываем что мы должны использовать отечественное по в следствие чего справедлива для Astra Linux SE 1.7.1 ОРЕЛ

Предполагается, что система установлена и подключена к интернету.

В качестве СОМ-порта использовался MOXA Uport 1150, перед настройкой необходимо подключить MOXA Uport к USB-порту ПК. При использовании другого устройства его необходимо настроить в соответствии с поставляемым мануалом.

Установка Wine

Основная инструкция (актуальная) тут.

нас интересует «Установка Wine версии 7.3 в Astra Linux Special Edition РУСБ.10015–01 (очередное обновление 1.7)»

По шагам:

1. Скачать пакет Wine 7.3 отсюда и пакет ia32-libs отсюда.

2. Открыть терминал Fly и ввести команды по порядку:

sudo apt install ia32-libs

sudo apt install libc6-i386 

sudo dpkg -i ~/Загрузки/ia32-libs_20220330+1.7se_amd64.deb 

# Имя текущей версии пакета, со временем она может быть изменена. 

sudo dpkg -i ~/Загрузки/wine_7.3-0-astra-se17_amd64.deb 

# Имя текущей версии пакета, со временем она может быть изменена. 

sudo apt install ca-certificates libmspack0 cabextract 

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks 

chmod +x winetricks 

sudo mv winetricks /usr/bin 

export WINE=/opt/wine-7.3/bin/wine

# для быстрого запуска из консоли

Рабочая директория WINE будет находится по адресу /opt/wine-7.3/bin/

Установка драйвера MOXA Uport 1150

Драйвер нужен под конкретную версию ядра качать с оф сайта или отсюда.

посмотреть версию ядра можно командой в терминале uname -r

На текущий момент это 5.10, скачать драйвер v. 5.1.

Далее по шагам:

1.  Открываем терминал fly и вводим последовательно команды:

sudo apt install make linux-headers setserial autotools-dev 

sudo mkdir /moxa 

cd /moxa 

sudo cp /home/user/Загрузки/moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1 moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1

# user заменить на своего 

sudo tar xvfz moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1.tgz 

cd mxu11x0/driver 

sudo make clean 

sudo make install 

# Если во время выполнения команды "make install" возникает ошибка, то выполняем 

# "sudo apt install --reinstall linux-headers-$(uname -r)" и повторно выполняем "make install"; 

/sbin/modprobe mxu11x0

2. Переводим Uport в режим 485 2W с помощью команды, а терминале: setserial /dev/ttyUSB0 port 1

номер порта можно посмотреть командой sudo ls /dev/ttyU*

варианты настройки:

port 0 →  RS-232

port 1 → RS-485 2W

port 2 → RS-422

port 3 → RS-485 4W

Настройка WINE для работы с СОМ-портами и ПО 

С помощью файлового менеджера (проводника) идем в /opt/wine-7.3/bin/ и запускаем regedit

В разделе реестра [HKEY_LOCAL_MACHINE\Software\Wine\Ports] создаем СТРОКОВУЮ переменную:

«com1»=»/dev/ttyUSB0»

Закрываем regedit.

Запускаем winecfg и меняем windows версию на Windows XP или windows 2003:

2e49323d0ebf416d906960715e613e0a.png

Применяем и закрываем Winecfg.

Далее создаем символическую ссылку на нужный нам СОМ-порт:

sudo ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
Если com1 уже существует, можно удалить его и заново создать ссылку:

sudo rm ~/.wine/dosdevices/com1
sudo ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

Чтобы не менять права на СОМ-порт, необходимо добавить текущего пользователя в dialout командой:
sudo adduser dialout
затем ВЫЙТИ из системы и зайти заново.

Скачиваем ПО в любую папку в домашней директории и запускаем ее из менеджера файлов (проводника) двойным щелчком. в списке выбора приложений жмем на другая… и выбираем wine из /opt/wine-7.3/bin/:

695af487fb6b7ce91d8ed3586615fd29.png6a2dba10891bf7658ee538aed1d1fa54.png

Чтобы в следующий раз exe формат открывался через WINE можно установить его по умолчанию:

7b85dc08887caa45b88c652a572b1083.png

Далее можно пользоваться необходимым ПО.

Всё это прогрызание кактуса выполнялось для запуска определенных видов промышленного ПО и каждое работало по своему

Сканер устройств по com порту — при открытии будет спрашивать о замене sys файлов — ответить нет.

Может долго искать или падать с ошибками — просто перезапустить. Если будет находить приборы на других СОМ-портах или долго виснуть, то лучше удалить все символические ссылки на СОМ-порты кроме нужного:

sudo rm ~/.wine/dosdevices/comN
где N — номер лишнего СОМ-порта.

Конфигуратор оборудования — может падать с ошибками — просто перезапустить.
В целом 3 из 5 программ отработали без замечаний.

Автора данной статьи можно пинать ногами, обзывать ламером не умеющим в linux, но предлагать как нужно было сделать проще и быстрее.

© Habrahabr.ru