Автор Тема: Запуск Windows/x86 приложений на OPI PC  (Прочитано 634 раз)

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 108
  • Лайков: 44
  • Карма: +5/-0
  • Orange Pi PC
    • Просмотр профиля
Запуск Windows/x86 приложений на OPI PC
« : Ноябрь 05, 2016, 08:35:44 pm »
использовал OPI PC с имиджем Armbian_5.20_Orangepipc_Debian_jessie_3.4.112_desktop.img
QEMU+Wine

команды от user:root

предупреждение:
•Никогда не запускайте программы с подозрительных сайтов
•Никогда не используйте root пользователя для запуска приложений!

Обновление системы:
apt-get update && apt-get upgrade -y

Проверка ядра системы
modprobe binfmt_misc && [ -e /proc/sys/fs/binfmt_misc/status ] && echo works
если вывод "works", ставим QEMU
QEMU - виртуальная машина. В QEMU можно поставить почти любую ОС - любой Windows (начиная с Windows95 до WindowsXP включительно)

apt-get install qemu-user-static -y

debootstrap установит базовую систему Debian i386 в подкаталог установленной системы.

apt-get install debootstrap
debootstrap --arch=i386 --foreign jessie chroot-jessie-i386 http://ftp.de.debian.org/debian
echo "deb http://ftp.de.debian.org/debian/ jessie main" > /root/chroot-jessie-i386/etc/apt/sources.list
dpkg --add-architecture i386
sudo apt-get update

Wine — Wine Is Not a (CPU) Emulator это прослойка, которая транслирует Win32API в POSIX API, то есть свободная реализация Windows API, которая позволяет запускать программы Windows, переводя вызовы программы под Windows в вызовы Linux

apt-get install wine:i386 -y
mv  /usr/lib/i386-linux-gnu/wine/bin/wine-preloader  /usr/lib/i386-linux-gnu/wine/bin/wine-preloader.renamed

библиотеки I:386
apt-get install libsdl-mixer1.2:i386 libcurl3-gnutls:i386 libgl1-mesa-dev:i386 libode1:i386 -y

создаем префикс:
при старте системы эту строку надо добавить в автозагрузку например в файл rc.local
echo ':i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/usr/bin/qemu-i386-static:' > /proc/sys/fs/binfmt_misc/register

WINEARCH=win32 WINEPREFIX=~/.wine winecfg

Всё. Отдельный префикс создан. Там хранятся различные конфигурации реестра и сами программы.
Установку программы также производим через консоль.

для проверки запускаем windows notepad++ 

mkdir /root/notepadpp
cd notepadpp
wget http://download.tuxfamily.org/notepadplus/archive/6.7.5/npp.6.7.5.bin.zip
unzip npp.6.7.5.bin.zip
запуск notepad++.exe в терминале:

sudo qemu-i386-static /usr/lib/i386-linux-gnu/wine/bin/wine /root/notepadpp/notepad++.exe

Документация пользователя эмулятора процессора QEMU http://jack.kiev.ua/docs/qemu-doc-ru.html
Wine ARM support https://wiki.winehq.org/ARM
Run x86 code on OPI http://wiki.orange314.com/Run_x86_code_on_OPI
I got Wine/x86 1.5.11 to run on Linux/ARM with qemu! https://forum.winehq.org/viewtopic.php?f=8&t=17701
Старые утилиты для Windows http://www.oldapps.com/index.php
« Последнее редактирование: Ноябрь 05, 2016, 09:46:36 pm от ua3nbw »

Оффлайн VeterMir

Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #1 : Ноябрь 06, 2016, 06:09:17 pm »
Я верно понимаю, что запускать win приложение мы будем, эмулируя команды х86 через qemu, запуская дебиан в виртуальной машине, навешивая на него вино и оттуда работая?
« Последнее редактирование: Ноябрь 06, 2016, 06:10:53 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #2 : Ноябрь 06, 2016, 08:53:26 pm »
На этапе
sudo apt-get update
Получаю
W: Failed to fetch http://apt.armbian.com/dists/jessie/InRelease  Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.
И при выполнении
apt-get install wine:i386
ругается
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 wine:i386 : Depends: wine64:i386 (>= 1.6.2-20) but it is not installable or
                      wine32:i386 (>= 1.6.2-20)
E: Unable to correct problems, you have held broken packages.

В общем-то прошу помощи, ибо прикрутить сюда одно приложение хотелось бы. Его аналога под линухи не существует, к сожалению.
« Последнее редактирование: Ноябрь 06, 2016, 09:06:21 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 108
  • Лайков: 44
  • Карма: +5/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #3 : Ноябрь 06, 2016, 10:26:51 pm »
На этапе
sudo apt-get update
Получаю
W: Failed to fetch http://apt.armbian.com/dists/jessie/InRelease  Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.


не обращайте внимания.

Цитировать

И при выполнении
apt-get install wine:i386
ругается

попробуйте
apt-get install -f
apt-get purge wine*

Как вариант можно вместо apt-get попробовать aptitude. Он сам подскажет варианты решения проблемы.
aptitude install wine:i386
Если там ответить 'n', то будет предложено другое решение
но проще переустановить систему

Оффлайн VeterMir

Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #4 : Ноябрь 06, 2016, 10:51:19 pm »
Я немного продвинулся
В строке echo "deb http://ftp.de.debian.org/debian/ jessie main" > /root/chroot-jessie-i386/etc/apt/sources.list
Заменил конечный пункт назначения на /etc/apt/sources.list, т.е. репозиторий прикрутил к своей машине.
Вино стартануло, notepad запустился.
Сижу прикручиваю свое приложение, mt4. Сейчас копирую с машины под виндой в установленном виде, вино ставить не хочет его, ругается.
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #5 : Ноябрь 06, 2016, 11:28:24 pm »
В общем.
Приложение не стартует, ругается вот так:
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d0c10 (device=2d access=0 func=304 method=0)
fixme:thread:GetThreadPreferredUILanguages 56, 0x32f544, 0x32f554 0x32f548
fixme:module:load_library unsupported flag(s) used (flags: 0x00000060)

« Последнее редактирование: Ноябрь 06, 2016, 11:33:42 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 108
  • Лайков: 44
  • Карма: +5/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #6 : Ноябрь 07, 2016, 05:41:12 pm »
MT4 на ARM, c помощью winetricks мне удавалось запускать на этой связке: Linux orangepipc 3.4.112-sun8i + x2go + qemu-i386 version 2.5.1 + wine-1.6.2
Метатрейдер работал только для осуществления самих сделок. Даже на полноценном сервере юзать MT в Wine - бред. Если только побаловаться.

Оффлайн VeterMir

Re: Запуск Windows/x86 приложений на OPI PC
« Ответ #7 : Ноябрь 07, 2016, 06:14:31 pm »
MT4 на ARM, c помощью winetricks мне удавалось запускать на этой связке: Linux orangepipc 3.4.112-sun8i + x2go + qemu-i386 version 2.5.1 + wine-1.6.2
Метатрейдер работал только для осуществления самих сделок. Даже на полноценном сервере юзать MT в Wine - бред. Если только побаловаться.
У меня там висят совы, ведущие сделки (б/у, трейл).
Почитал отзывы, что вполне реально. Думал, нагрузить заодно маршрутизатор данной функцией =)
Ко мне лучше на "ты". Я ещё слишком молод =)