- Работаем со старым промышленным софтом под linux или как подружить wine и RS-485
- Установка Wine
- Установка драйвера MOXA Uport 1150
- Настройка WINE для работы с СОМ-портами и ПО
- Всё это прогрызание кактуса выполнялось для запуска определенных видов промышленного ПО и каждое работало по своему
- Как запустить Windows приложение в Astra Linux
- 1 Установка Wine в Astra Linux
- 2 Использование Wine в Astra Linux
- Wine в Astra Linux Special Edition
- Winetricks.
- Ассоциации файлов.
Работаем со старым промышленным софтом под 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, но предлагать как нужно было сделать проще и быстрее.
Как запустить 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 программа.
Wine в Astra Linux Special Edition
Так как Astra Linux Special Edition имеет х64 архитектуру и практически не поддерживает х32, то использовать одну из последних версии wine на текущий момент не представляется возможным, из-за чего приходится пользоваться третьей версией №3.
Для установки необходимо загрузить wine-installer.ru и сделать файл исполняемым:
sudo chmod +x wine-installer.run
Вставьте установочный диск с Astra Linux Special Edition в дисковод и установите Wine:
sudo mkdir /usr/lib/wine
sudo ln -s /opt/wine-stable/bin/wineserver /usr/lib/wine/wineserver
sudo ln -s /opt/wine-stable/bin/wine /usr/bin/wine
После установки выполнить под пользователем для создания домашнего каталога и установки необходимых библиотек:
DISPLAY=:0 /opt/wine-stable/bin/winecfg
Для установки программ в Wine, скачиваем и копируем файл программы в домашнюю папку, главное чтобы не было кириллицы (для примера ниже MicrosoftOffice2007.exe и MicrosoftOffice2007.msi).
Для запуска дистрибутивов EXE выполнить в терминале:
/opt/wine-stable/bin/wine /home/$user/MicrosoftOffice2007.exe
Для запуска дистрибутивов MSI выполнить в терминале:
/opt/wine-stable/bin/wine msiexec /i /home/$user/MicrosoftOffice2007.msi
После чего начнётся обычная установка программы, как в Windows. Установка программ может длиться очень долго, так как это не Windows.
Winetricks.
Для установки компонентов и библиотек Windows в Wine используется Winetricks, который можно скачать по этой ссылке, а также скачать необходимые библиотеки libmspack0 и cabextract.
Установить дополнительные скаченные и имеющиеся на диске библиотеки:
sudo dpkg -i libmspack0.deb cabextract.deb
sudo apt -y install ca-certificates zenity
Сделать загруженный файл Winetricks исполняемым:
Скопировать загруженный файл в /usr/bin
sudo cp winetricks /usr/bin
Запустить winetricks командой:
В появившемся окне выбрать «Выберите путь wine по умолчанию» и нажать «ОК».
Далее выбираем «Установить библиотеку DLL или компонент Windows» и нажимаем «ОК».
После выбрать необходимый компонент из списка и нажать «ОК».
Требуемый компонент будет установлен.
Если же у данного компьютера нет подключения к интернету, то можно сделать следующее, ищем в скаченном файле Winetricks необходимое дополнение открыв в текстовом редакторе, к примеру Microsoft.NET Framework 3.5 SP1:
Поиск в файле осуществлялся по .net. В разделе «title» указано, что это «MS .NET 3.5 SP1», а ниже ссылка на скачивания библиотеки (выделена). Копируем ссылку и вставляем в браузер для скачивания. После чего копируем на носитель и идём к АРМ, на котором надо установить Wine.
Обязательно скачивать только по этим ссылкам, так как осуществляется проверка контрольных сумм!
Далее скачанный файл копируем на компьютер без интернета в «Домашняя/.cache/winetricks/dotnet35sp1» с заменой точно такого же файла с объёмом 0 Б.
Теперь можно ставить библиотеку, для этого повторить установку через Winetricks, как и описано выше. В этот раз файл будет взять из кеша.
Ассоциации файлов.
Для ассоциации файлов, к примеру файлов р расширением «EXE», переходим в папку с файлом, где находится файл с таким расширением, щёлкаем по файлу правой кнопкой мыши и выбираем «Открыть с помощью. «
В открывшемся окне выбираем в низу окна «Другая. «.
Ищем в /usr/bin/ и выбираем «wine».
Выбираем внизу окна «Установить по умолчанию» и нажимаем «Открыть».
После данной процедуры все файлы EXE и ссылки на них будут запускаться через Wine.
Если необходимо запустить COM или иной файл, то необходимо сделать ассоциацию файла и для него.