LINUX.ORG.RU

Не могу запустить wine

 ,


0

2

Установлен wine64 version 5.0.4 при помощи pkg install wine

При запуске exe файла вылетает с ошибками в консоли:

wine64 setup.exe

0016:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\NDIS": 00000001
000f:fixme:service:scmdatabase_autostart_services Auto-start service L"NDIS" failed to start: 731
0022:err:heap:HEAP_GetPtr Invalid heap 0x440000!
0022:err:heap:HEAP_GetPtr Invalid heap 0x440000!
0022:err:plugplay:get_device_instance_id Failed to get device ID, status 0xc0000017.
0022:err:heap:HEAP_GetPtr Invalid heap 0x440000!
0022:err:heap:HEAP_GetPtr Invalid heap 0x440000!
0025:err:svchost:AddServiceElem failed to load library L"C:\\windows\\system32\\wevtsvc.dll", err=126
0025:err:svchost:wmain Failed to load requested group: L"LocalServiceNetworkRestricted"
000f:err:service:process_send_command service protocol error - failed to write pipe!
000f:fixme:service:scmdatabase_autostart_services Auto-start service L"Eventlog" failed to start: 1053
0009:err:module:__wine_process_init
0009:err:module:__wine_process_init L"Z:\\home\\user\\data\\game\\setup.exe" not supported on this system
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!
001c:err:heap:HEAP_GetPtr Invalid heap 0x440000!

что дальше? на haiku или на kolibrios игоры запускать будете?

anonymous
()
Ответ на: комментарий от mord0d

То есть мне нужно искать какие-то нативные чтобы запустилось?

bambie
() автор топика
Ответ на: комментарий от mord0d

Под 6.0.1-вайном они же запускаются, я проверял

bambie
() автор топика
Ответ на: комментарий от amd_amd

Компилять нужно только mesa и всё что связано с видео, wine и i386-wine — совершенно необязательно.

@bambie, я не знаю что ты хочешь запустить, но ты уверен что оно именно PE32+ (x86-64), запуская его через wine (amd64)?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

ты уверен что оно именно PE32+ (x86-64), запуская его через wine (amd64)?

Я могу в этом убедиться только запустив его с 32битным wine:

wine setup.exe

wine: '/home/user/.wine' is a 64-bit installation, it cannot be used with a 32-bit wineserver.
bambie
() автор топика
Ответ на: комментарий от mord0d

mesa и всё что связано с видео

mesa не компиляю - только видеодрайвера

amd_amd ★★★★★
()
Ответ на: комментарий от mord0d

Был не прав, оно действительно было PE32

@Kron4ek, спасибо большое.

bambie
() автор топика
Ответ на: комментарий от mord0d

как удалить старое ядро? было у меня оно одно, но подвезли новый drm-kmod который со старым ядром отказался работать, пришлось собрать новое ядро и установить в него новый drm-kmod - теперь у меня два ядра, но старое не нужно - как его удалить? может есть какое нибудь remove-old-kernels или что то типа такого?

amd_amd ★★★★★
()
Ответ на: комментарий от bambie

Я могу в этом убедиться только запустив его с 32битным wine

file -b /path/to/file.exe

Сам понимаешь, телепаты в отпуске. (%

Был не прав, оно действительно было PE32

Бывает. ☺

mord0d ★★★★★
()
Ответ на: комментарий от amd_amd

как удалить старое ядро?

rm -R /boot/kernel.old

FreeBSD хранит только два ядра — последнее и предыдущее, каждый make installkernel перемещает /boot/kernel в /boot/kernel.old (и удаляет старый /boot/kernel.old, если он существует), затем ставит новое в /boot/kernel.

А вот что происходит с /boot/modules я не помню, при обновлении GENERIC на следующий релиз оно вайпает чуть ли не всю систему.

mord0d ★★★★★
()
Ответ на: комментарий от bambie

Тебе не обязательно собирать wine с другим PREFIX, достаточно распаковать куда угодно и написать обёртку со всеми нужными переменными окружения.

Могу поделиться скриптом, но он во-первых нифига не документирован (могу на пальцах объяснить что как, но никакой поддержки не обещаю, об этом дальше), а во-вторых не работает с wine >=6.0 (там что-то с окружением, гуглить сейчас лень, фиксить не планирую, ибо проще переписать скрипт с нуля, там костылей за два года быстроправок скопилось).

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от anonymous

а что, у вас там есть уже собранный wine с esync патчем?

А что, на фряхе появился eventfd?

UPD: Фигасе, The eventfd() system call first appeared in FreeBSD 13.0.

Все, фря готова для гейминга

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 2)
Ответ на: комментарий от annulen

Есть форк — PlayOnFreeBSD, но я никогда его не тыкал. А вот Lutris на FreeBSD судя по всему вообще не работает (нет никаких упоминаний на официальном сайте, никаких упоминаний на официальном форуме FreeBSD и на сабреддите).

Мне проще накидать скрипт на двадцать пять килобайт и пару лет не париться по этому поводу. Причём в эти двадцать пять килобайт бонусом влезла поддержка dosbox, renpy, gzdoom, pcsxr и dolphin-emu как для amd64, так и для i386.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

…достаточно распаковать куда угодно и написать обёртку со всеми нужными переменными окружения.

Хочу узнать об этом поподробнее. Как это сделать?

Могу поделиться скриптом, но он во-первых нифига не документирован (могу на пальцах объяснить что как, но никакой поддержки не обещаю, об этом дальше), а во-вторых не работает с wine >=6.0 (там что-то с окружением, гуглить сейчас лень, фиксить не планирую, ибо проще переписать скрипт с нуля, там костылей за два года быстроправок скопилось).

Пожалуй, давай, это лишним не будет. В инете информации по этому поводу мало, а этот вопрос может быть интересен не только мне. Ну и если проще переписать, может быть кто-то подскажет, кому будет не лень? А так я не против в этом разобраться.

bambie
() автор топика
Ответ на: комментарий от mord0d

Мне проще накидать скрипт на двадцать пять килобайт и пару лет не париться по этому поводу.

Еще проще - установить games/homura.

anonymous
()
Ответ на: комментарий от bambie

…достаточно распаковать куда угодно и написать обёртку со всеми нужными переменными окружения.

Хочу узнать об этом поподробнее. Как это сделать?

Нужно понимать как устроено окружение и что нужно конкретному приложению для полноценной работы.

Если раскуришь скрипты многоуважаемого @Kron4ek, многое поймёшь конкретно про Wine. Мой скрипт местами переусложнён и/или сильно несовершенен, но он никогда не пилился для публичного использования, потому он такой какой он есть.

Пожалуй, давай, это лишним не будет.

Ссылка в конце комментария.

В инете информации по этому поводу мало, а этот вопрос может быть интересен не только мне. Ну и если проще переписать, может быть кто-то подскажет, кому будет не лень? А так я не против в этом разобраться.

Ну, FreeBSD никогда не позиционировалась как игровая платформа, потому готовых решений до сих пор нет, а все попытки быстро загибаются.

Я не особо геймер, потому не пытался сделать что-то с планами на будущее.

>>> https://0x0.st/-3Oi.txz

Внутри быстро накиданный README, наверняка с кучей очепяток и ошибок, но в общих чертах должно быть понятно. А если нет — задавай свои ответы, завтра (если повезёт) гляну.

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

Wine64 6.0.1 имеет проблему, связанную с невозможностью выделить память. Может быть это и есть та проблема окружения wine 6.0.1

Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 1)
Ответ на: комментарий от mord0d

Я посмотрел, скрипт ппц на 1000 строк. Разбираться придется долго. Я так понял, нужно создать папку с этими файлами, закинуть туда скрипт и запустить?

а wine_file=game/setup.exe - запуск wine?
wine_args= не представляю, что за аргументы. Тут указывать opengl? dxvk? Это для всех ехе или одного?
wine_dlls=mfs42 - это winetricks, установит компоненты?
wine_settings= - это настройка winetricks, где командами указывать префикс, настройка шрифта, winecfg и тд?

Чувствую себя глупым. @Kron4ek, ты репетиторством не занимаешься?

bambie
() автор топика
Ответ на: комментарий от mord0d

FreeBSD никогда не позиционировалась как игровая платформа, потому готовых решений до сих пор нет, а все попытки быстро загибаются.

То-то я смотрю: SONY PlayStation быстро загнулась.

iZEN ★★★★★
()
Ответ на: комментарий от bambie

скрипт ппц на 1000 строк. Разбираться придется долго

Тебе курить только то что связано с wine и те функции, которые оттуда вызываются. Максимум строк триста будет.

а wine_file=game/setup.exe - запуск wine?

Нет, просто wine_file=setup.exe. Сделано на случай если в дире много всяких exe, ибо угадалка может запустить какой-нибудь uninst000.exe, и ой, ну и плюс exe может лежать в глубокой заднице (как, например, у S.T.A.L.K.E.R. или в играх на Unity3D).

wine_args= не представляю, что за аргументы

Это аргументы к самому exe. Не все exe их поддерживают.

Тут указывать opengl? dxvk?

Нет, эти в wine_dlls.

Это для всех ехе или одного?

Это для wine_file.

wine_dlls=mfs42 - это winetricks, установит компоненты?

Да.

wine_settings= - это настройка winetricks, где командами указывать префикс, настройка шрифта, winecfg и тд?

Префикс фиксированный, он будет создан рядом с game. Всё что может wine_settings аналогично тому, что делает winetricks settings. Дефолты более-менее универсальны, так что туда можно вообще не лезть, если всё работает.

Чувствую себя глупым.

Не, это нормально. Мой скрипт действительно наркоманский.

mord0d ★★★★★
()
Ответ на: комментарий от iZEN

FreeBSD никогда не позиционировалась как игровая платформа, потому готовых решений до сих пор нет, а все попытки быстро загибаются.

То-то я смотрю: SONY PlayStation быстро загнулась.

А они прям без патчей юзали FreeBSD как есть, или всё же просто утащили что им нужно и сделали своё? ^_~

mord0d ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Затем, что с Linux уже бегут, и бегут почему-то именно на FreeBSD… хоть и не приживаются. :3

Что, не помнишь как было когда набижали на убунту? Или может напомнить более свежее веяние с калолинупс?

mord0d ★★★★★
()
Ответ на: комментарий от Clockwork

Память под 64-битные процессы не заканчивается примерно никогда — в случае нехватки oom killer убивает процесс целиком. С 32-битными процессами может закончится свободное адресное пространство, но тут все версии Вайна ведут себя совершенно одинаково. Последнее частично можно улучшить подняв user_space_limit и working_set_limit, что, собственно, и сделано в Протоне с опцией PROTON_FORCE_LARGE_ADDRESS_AWARE (включено по умолчанию).

anonymous
()
Ответ на: комментарий от Clockwork

env PATH=/usr/local/wine-proton/bin:$PATH wine winecfg, например.

anonymous
()
Ответ на: комментарий от mord0d

Вроде понятно, но уточнить хочу, правильно ли я делаю.

$ mkdir -p /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/game
$ touch /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/gamelib.conf
$ cp $Файлы_с_установкой_игры /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/game
$ export GAMELIB_GAMES_DIR="/usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/games"
    
    ./path/to/gamelib/gamelib help

У меня вот эта ошибка:

[FTL] 2021-09-20 18:19:53 $GAMELIB_GAMES_DIR is not set or it is not a directory or have wrong permissions

Что забыл сделать?

bambie
() автор топика
Ответ на: комментарий от bambie

$GAMELIB_GAMES_DIR — это дира где лежит условный gamename, в котором лежит файл gamelib.conf и дира game, в котором лежат ресурсы игры/приложения.

То есть у тебя должно быть так:

$ mkdir -p /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/game
$ touch /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/gamelib.conf
$ cp $Файлы_с_установкой_игры /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/game/
$ export GAMELIB_GAMES_DIR="/usr/home/bambie/DATA/GAMELIB_GAMES_DIR"

Для wine gamelib.conf с указанной в нём переменной wine_file, которая ссылается на существующий exe-файл в дире game обязательно. Все остальные переменные — опциональны.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

там не сколько в патчах для системы в целом, сколько в том, что у них крайне ограниченный ренж оборудования(гпу) и они для этого гпу предоставляют инструментарий, позволяющий делать ААА игры. которого очевидно нет на ванильной фрибсд. подробностей писать не буду, т.к. НДА %)

Keltir
()
Ответ на: комментарий от Keltir

Ну оборудование-то как-то должно работать с ядром, а значит как минимум linuxkpi патчить придётся.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Запускаю /usr/home/bambie/DATA/gamelib/gamelib run gamename

И через некоторое время закрывается.

gamelib.log

Executing mkdir -p /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/prefix
grep: /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/prefix/.wine/*.reg: No such file or directory
------------------------------------------------------
WINEPREFIX INFO:
Drive C: .
..
windows

Registry info:
/usr/home/bambie/DATA/GAMELIB_GAMES_DIR/gamename/prefix/.wine/*.reg:
------------------------------------------------------
------------------------------------------------------
warning: /usr/home/bambie/DATA/GAMELIB_GAMES_DIR/.gamelib/lib/amd64.wine32/bin32/wine cmd.exe /c echo '%AppData%' returned empty string, error message "input in flex scanner failed
wine: could not load kernel32.dll, status c0000135" 
------------------------------------------------------
err:environ:init_unix_codepage unrecognized charset 'US-ASCII'
err:environ:init_unix_codepage unrecognized charset 'US-ASCII'
00dc:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
00dc:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
00dc:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
input in flex scanner failed
wine: could not load kernel32.dll, status c0000135
bambie
() автор топика
Ответ на: комментарий от mord0d

хранит только два ядра — последнее и предыдущее

я вкурсе и это очень удобно - если новое не стартануло завсегда на старом стартонуть можно, но в данном случае как у меня это старое ядро совершенно бесполезно - новый drm-kmod с ним не дружит, если только работать в tty.

при обновлении GENERIC на следующий релиз

у меня и старое и новое 14.0-current это не следующий релиз - просто очередной недельный срез.

amd_amd ★★★★★
()
Ответ на: комментарий от bambie

В скрипте нет никаких проверок на наличие lib32, оно установлено? Проверь наличие файла /libexec/ld-elf32.so.1.

mord0d ★★★★★
()
Ответ на: комментарий от amd_amd

14.0-current

Никто на официальном форуме не помогает с CURRENT, потому что это срез для разработчиков, они знают что делают.

Ну и повторю уже в тысячный раз: CURRENT собирается с debug, оно медленное и глючное, и это нормально. Ладно iZEN на фряхе уже много лет, и даже он юзает STABLE, потому что CURRENT — это не для конченного конечного пользователя.

CURRENT для разработчиков, и саппорта на нём никакого нет, даже на официальном форуме тебя с ним пошлют в рассылку разработчиков, где с пользовательскими проблемами тоже никто разбираться не станет.

mord0d ★★★★★
()
Ответ на: комментарий от bambie

Вот мой gamelib.conf для Worms Armageddon:

wine_file="WA.exe"

# vim: ft=sh
mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.