- Работаем со старым промышленным софтом под linux или как подружить wine и RS-485
- Установка Wine
- Установка драйвера MOXA Uport 1150
- Настройка WINE для работы с СОМ-портами и ПО
- Всё это прогрызание кактуса выполнялось для запуска определенных видов промышленного ПО и каждое работало по своему
- Установка Wine на Astra
- Как запустить Windows приложение в Astra Linux
- 1 Установка Wine в Astra Linux
- 2 Использование Wine в Astra Linux
Работаем со старым промышленным софтом под 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
sudo mv winetricks /usr/bin
# для быстрого запуска из консоли
Рабочая директория 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 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
sudo tar xvfz moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1.tgz
# Если во время выполнения команды «make install» возникает ошибка, то выполняем
# «sudo apt install —reinstall linux-headers-$(uname -r)» и повторно выполняем «make install»;
2. Переводим Uport в режим 485 2W с помощью команды в терминале: setserial /dev/ttyUSB0 port 1
номер порта можно посмотреть командой sudo ls /dev/ttyU*
Настройка WINE для работы с СОМ-портами и ПО
С помощью файлового менеджера (проводника) идем в /opt/wine-7.3/bin/ и запускаем regedit
В разделе реестра [HKEY_LOCAL_MACHINE\Software\Wine\Ports] создаем СТРОКОВУЮ переменную:
Запускаем winecfg и меняем версию windows на Windows XP или windows 2003:
Применяем и закрываем 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/:
Чтобы в следующий раз exe формат открывался через WINE можно установить его по умолчанию:
Далее можно пользоваться необходимым ПО.
Всё это прогрызание кактуса выполнялось для запуска определенных видов промышленного ПО и каждое работало по своему
Сканер устройств по com порту — при открытии будет спрашивать о замене sys файлов — ответить нет.
Может долго искать или падать с ошибками — просто перезапустить. Если будет находить приборы на других СОМ-портах или долго виснуть, то лучше удалить все символические ссылки на СОМ-порты кроме нужного:
sudo rm ~/.wine/dosdevices/comN
где N — номер лишнего СОМ-порта.
Конфигуратор оборудования — может падать с ошибками — просто перезапустить.
В целом 3 из 5 программ отработали без замечаний.
Автора данной статьи можно пинать ногами, обзывать ламером не умеющим в linux, но предлагать как нужно было сделать проще и быстрее.
Установка Wine на Astra
Создать динамически расширяемый виртуальный жесткий диск с размером блока 1МБ с помощью следующей команды:
PowerShell — New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB.
После установки системы разрешение экрана будет зафиксировано на 1152X864, для того чтобы получить разрешение отличное от этого требуется добавить запись «video=hyperv_fb:1920×1080» (либо свое значение разрешения) в /etc/default/grub в строку GRUB_CMDLINE_LINUX_DEFAULT, выполнить команду update-grub и перезагрузить виртуальную машину.
Отключить или ограничить 2 гигабайтами динамическую оперативную память, а то система может тормозить
4. Запускаем виртуальную машину и устанавливаем Astra Linux со стандартными настройками (логин и пароль какие хотите)
7. Запускаем командную строку Пуск\Системные\Терминал fly (все команды регистрозависимые и все символы обязательные! КОПИРОВАТЬ команды из инструкции)
8. Обновляем списки пакетов sudo apt update
9. Выполняем команду sudo apt -y install ./Загрузки/wine_7.13-0-astra-se16_ce212_amd64.deb cabextract libmspack0 ia32-libs ca-certificates zenity
10. Скачиваем скрипт winetricks
sudo mv winetricks /usr/bin
Нужно, чтобы виндовые папки были созданы в win32, для этого после установки wine нужно сразу выполнить:
11. Скачиваем файл exe (например, дистрибутив), нажимаем на него два раза, в окне выбора программ жмём Другая и выбираем opt\wine-7.13\bin\wine (или wine64)
Подключаем дополнительные репозитории debian
Сначала ставим открытые ключи для подключения репозиториев командой
sudo apt install debian-archive-keyring
sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv-keys 7FCC7D46ACCC4CF8
648ACFD622F3D138 0E98404D386FA1D9 DCC9EFBF77E11517 648ACFD622F3D138 0E98404D386FA1D9 DCC9EFBF77E11517 112695A0E562B32A 54404762BBB6E853
sudo kate /etc/apt/sources.list
обновляем список подключённых к системе репозиториев
Запускаем установку Postgreslq 14
sudo apt install -t stretch-pgdg postgresql-14
входим в консоль управления postgres
Задаём пароль для встроенной учётной записи postgresql
ALTER USER postgres PASSWORD ‘Ввести_пароль’;
15. Подключение к Postgres из родительской системы
При настроенной сети виртуальная машина не закрывает порты для доступа с родительской машины, поэтому нужно только настроить, чтобы postgres позволял подключаться с других машин (по-умолчанию подключение разрешено только с localhost)
Для этого нужно изменить файл /etc/postgresql/14/main/postgresql.conf (можно открыть из папки), найти там настройку listen_addresses, раскомментировать и оставить в кавычках * —
Также нужно изменить в той же папке pg_hba.conf — добавить две строки (IP виртуалки можно узнать командой ip address)
host all all IP_виртуалки/32 password
host all all IP_виртуалки/32 md5
и перезагрузив службу postgres
systemctl restart postgres
Как запустить Windows приложение в Astra Linux
Рассмотрим поэтапно процесс установки и запуска Windows приложения в операционной системе Astra Linux.
Дистрибутив Astra Linux основан на ядре операционной системы Debian. И для Debian, а также других дистрибутивов Linux, существует прекрасное широко известное средство для запуска приложений Windows – программа Wine. Эта программа представляет собой своего рода «песочницу», в которой выполняется Windows приложение. Wine отслеживает, к каким Windows API обращается программа, и перенаправляет её вызов на аналогичные API Linux, если они есть. Из-за того, что Windows и Linux – очень разные операционные системы, не для каждого API Windows существует аналог в Линукс, и наоборот. Поэтому не все программы будут работать под Wine. Но многие. Рассмотрим установку Wine и запуск из-под него Windows приложения на примере Notepad++.
1 Установка Wine в Astra Linux
Первым делом необходимо запустить менеджер пакетов Synaptic. Быстрее всего это сделать так. Нажать сочетание клавиш Win+R и начать вводить в поле команды название Synaptic. Почти сразу высветится найденная программа. Наводим курсор на неё (или стрелками и клавишей Enter ) и запускаем. При запуске Synaptic потребует ввести пароль от учётной записи.
Теперь в менеджере пакетов необходимо найти Wine. Кликаем на иконку с лупой в верхней панели. И набираем в открывшемся окне поиска Wine .
Менеджер пакетов найдёт программу Wine и отобразит её компоненты. Для установки нужно нажать кнопку «Применить» на верхней панели инструментов.
Необходимо дождаться окончания процесса инсталляции.
2 Использование Wine в Astra Linux
Теперь идём на сайт программы Notepad++ и скачиваем установочный файл. Он будет загружен в директорию «Загрузки» текущего пользователя. Чтобы в этом убедиться, можно запустить терминал (например, xterm, запуск аналогично: Win+R и набрать xterm ) и ввести в командной строке ls Загрузки . Появится содержимое каталога «Загрузки». В списке должен присутствовать скачанный установщик блокнота.
Невозможно запустить установщик напрямую, т.к. он скомпилирован под ОС Windows. Тут нам и придёт на помощь Wine. В командной строке терминала xterm набираем следующее:
wine Загрузки/npp.7.8.9.Installer.exe
Название файла, естественно, должно соответствовать вашему скачанному файлу. Начнётся процесс установки блокнота, стандартный для Windows. Просто пройдите его до конца, как обычно.
Когда программа будет установлена, Wine создаст на диске в своей директории иерархию каталогов, похожую на Windows. По умолчанию рабочая директория Wine скрыта. Чтобы её увидеть, нужно в проводнике (менеджере файлов) в мню «Вид» выбрать пункт «Отображать скрытые» или нажать сочетание клавиш Ctrl+H . Теперь директория Wine со всеми подкаталогами стала видна.
В Linux директории, название которых начинается с символа точки «.», по умолчанию являются скрытыми.
Можем через менеджер файлов зайти в каталог Notepad++ и убедиться, что программа Wine создала всю иерархию директорий, как в Windows.
Можно запускать блокнот из командной строки терминала xterm:
wine "C:/Program Files (x86)/Notepad++/notepad++.exe"
Для быстрого запуска блокнота в менеджере файлов кликаем на файле notepad++.exe правой кнопкой мыши и в контекстном меню выбираем пункт Отправить – Рабочий стол (создать ярлык). На рабочем столе Astra Linux появится ярлык для запуска Notepad++.
Если при нажатии на ярлык ничего не происходит, стоит посмотреть его свойства, кликнув правой кнопкой мыши на ярлыке. Затем в окне «Свойства» перейти на вкладку «Ярлык» и обратить внимание на строчку «Команда». В ней должна быть именно та же команда, которую мы только что набирали в консоли. Если это не так, поправьте:
Теперь вы можете полноценно пользоваться программой Notepad++, написанной для Windows, в операционной системе Astra Linux.
Как я уже упоминал, далеко не все Windows программы запускаются и работают из-под Wine с такой же лёгкостью. Но теперь вы знаете как проверить, будет работать под Линукс или нет интересующая вас Windows программа.