Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
Хочу запустить сервер ил-2 под линуксом, вроде слышал что под wine работать все должно. Не подскажете, есть ли там подводные камни какие ? Чтобы на грабли не наступать по второму разу :)
Какая последовательность действий ?
Сам сервер уже настроен и работает под виндой. Хочу перенести на линуксовый сервер.
Спасибо !
У нас DS работает под вайном...
Никаких проблем с запуском нет совершенно... Ставишь вайн, настраиваешь, запускаешь ил (я запускаю его в бэкграунде) и выходишь с консоли... И все...
Re: Сервер Ил-2 под Linux
Если хочешь иметь возможность переключаться на консоль сервера в любой момент и свободно отключаться от удаленного сервера, то пускай ил через screen.
1) создать shell скрипт который запустит ил-2 под wine (используй wineconsole)
2) после подключения по ssh вводи команду "screen -d -m -S il2 ./runil2.sh"
3) после этого можешь свободно отключаться от сервера - сессия ил-2 будет жить. Для переключения на консоль ил-2 необходимо после повторного коннекта ввести "screen -r il2". Чтобы отключиться от консоли не прерывая работу ил2 нажми последовательно "сtrl+a d" (сначала ctrl+a потом их отпускаешь и потом d)
5) У нас вылетает сервер если не убрать f.cmd и из стартовых скриптов il2, не знаю почему. Если периодически подключаться и вводить вручную GC то всё ок.
6) косяки начинаются когда начинаешь il2dcg юзать :) Дело в том что wine не умеет работать с разными типами X серверов(стандартный X, Xvnc,Xfake,Xvfb, X-win32 и т.д. - разные под разные задачи). "Настроившись" на один, он не даст запустить окно приложения ни на каком другом. Но и это решается :) Когда немного освобожусь на какой-нибудь вике выложу подробный step-by-step по поднятию Ил-2 на линухах
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
basurman
...Ставишь вайн, настраиваешь, запускаешь ил (я запускаю его в бэкграунде)...
Вот по настройкам мне и было не ясно, так как я никогда с Wine дела не имел раньше
Цитата:
Сообщение от
MoHaX
Если хочешь иметь возможность переключаться на консоль сервера в любой момент и свободно отключаться от удаленного сервера, то пускай ил через screen.
1) создать shell скрипт который запустит ил-2 под wine (используй wineconsole)
2) после подключения по ssh вводи команду "screen -d -m -S il2 ./runil2.sh"
3) после этого можешь свободно отключаться от сервера - сессия ил-2 будет жить. Для переключения на консоль ил-2 необходимо после повторного коннекта ввести "screen -r il2". Чтобы отключиться от консоли не прерывая работу ил2 нажми последовательно "сtrl+a d" (сначала ctrl+a потом их отпускаешь и потом d)
5) У нас вылетает сервер если не убрать f.cmd и из стартовых скриптов il2, не знаю почему. Если периодически подключаться и вводить вручную GC то всё ок.
6) косяки начинаются когда начинаешь il2dcg юзать :) Дело в том что wine не умеет работать с разными типами X серверов(стандартный X, Xvnc,Xfake,Xvfb, X-win32 и т.д. - разные под разные задачи). "Настроившись" на один, он не даст запустить окно приложения ни на каком другом. Но и это решается :) Когда немного освобожусь на какой-нибудь вике выложу подробный step-by-step по поднятию Ил-2 на линухах
Спасибо за конкретные советы :)
На самом деле это сэкономило мне время, а то я открыл документацию и вижу там три способа запуска приложения из-под Wine в консольном режиме.
Поставил себе Федору, мне понравилось как там легко и просто все устанавливается. Всего две команды, чтобы поставить Wine и screen
su -c 'yum install wine'
su -c 'yum install screen'
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
Вот по настройкам мне и было не ясно, так как я никогда с Wine дела не имел раньшеСпасибо за конкретные советы :)
На самом деле это сэкономило мне время, а то я открыл документацию и вижу там три способа запуска приложения из-под Wine в консольном режиме.
Поставил себе Федору, мне понравилось как там легко и просто все устанавливается. Всего две команды, чтобы поставить Wine и screen
su -c 'yum install wine'
su -c 'yum install screen'
Нашего полку прибыло, велкам :beer:.
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
MoHaX
Если хочешь иметь возможность переключаться на консоль сервера в любой момент и свободно отключаться от удаленного сервера, то пускай ил через screen.
1) создать shell скрипт который запустит ил-2 под wine (используй wineconsole)
2) после подключения по ssh вводи команду "screen -d -m -S il2 ./runil2.sh"
3) после этого можешь свободно отключаться от сервера - сессия ил-2 будет жить. Для переключения на консоль ил-2 необходимо после повторного коннекта ввести "screen -r il2". Чтобы отключиться от консоли не прерывая работу ил2 нажми последовательно "сtrl+a d" (сначала ctrl+a потом их отпускаешь и потом d)
5) У нас вылетает сервер если не убрать f.cmd и из стартовых скриптов il2, не знаю почему. Если периодически подключаться и вводить вручную GC то всё ок.
6) косяки начинаются когда начинаешь il2dcg юзать :) Дело в том что wine не умеет работать с разными типами X серверов(стандартный X, Xvnc,Xfake,Xvfb, X-win32 и т.д. - разные под разные задачи). "Настроившись" на один, он не даст запустить окно приложения ни на каком другом. Но и это решается :) Когда немного освобожусь на какой-нибудь вике выложу подробный step-by-step по поднятию Ил-2 на линухах
Ооооо!!! Монах, большое тебе данке шон!!!
ПыСы. У нас почему то сервак не вылетает, хотя f.cmd запускается..
Re: Сервер Ил-2 под Linux
А есть какой-нибудь способ настроить Wine из командной строки ? При старте winconsole il2server.exe поначалу вываливается огромное количество ошибок. Конечно, я же ничего не настраивал, да и мне не надо ничего кроме доступа к интерфейсу tcp/ip, чего по умолчанию, похоже, нет. Доступа к машине через иксы в ближайшее время нет.
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
А есть какой-нибудь способ настроить Wine из командной строки ? При старте winconsole il2server.exe поначалу вываливается огромное количество ошибок. Конечно, я же ничего не настраивал, да и мне не надо ничего кроме доступа к интерфейсу tcp/ip, чего по умолчанию, похоже, нет. Доступа к машине через иксы в ближайшее время нет.
А ssh -X ? Или ты из под винды?
Но в принципе можно просто руками этот файл поправить, благо там кроме путей особо править ничего не надо.
http://www.die.net/doc/linux/man/man5/wine.conf.5.html
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
А есть какой-нибудь способ настроить Wine из командной строки ? При старте winconsole il2server.exe поначалу вываливается огромное количество ошибок. Конечно, я же ничего не настраивал, да и мне не надо ничего кроме доступа к интерфейсу tcp/ip, чего по умолчанию, похоже, нет. Доступа к машине через иксы в ближайшее время нет.
Вот как раз через ssh -X (или опцию в putty если изподвинды) и славливаются косяки с wine, потому что потом при автоматическом запуске dcg каким-нибудь командером будет использован уже другой Х сервер, на который wine почему-то уже отказывается рисовать окно. Сразу скажу, если у других не так, и wine рисует свои окна на любой Х сервер, то я только рад за вас, но у меня эта проблема была в полный рост на несокльких версиях wine и я убил пару дней пока не раскопал этот баг.
Очевидное решение в данной ситуации это поднять свой локальный Х сервер на машине с Wine и отрисовывать на него все окна которые понадобится только отрисовать. Только сервер должен быть не простым а золотым :) А именно должен позволять подключаться к себе по сети и давать возможность смотреть/контролировать что там у него творится.
Для себя с сделал выбор "TightVNC" - это небольшой X сервер, позволяющий подключаться к себе по сети по vnc протоколу.
Далее в обсуждении я предполагаю что у тебя нет запущенного X сервера на сервере (простите уж за каламбур :) ), если есть то ты либо можешь легко его заменить на TightVNC, либо TightVNC поднимать паралельно указывая вместо номера дисплея ":1" какой-нибудь другой номер (например ":2")
1) Устанавливаешь TightVNC, потом логинишься по ssh тем пользователем который будет запускать il2 и wine.
2) Вводишь "vncserver :1"
3) отвечаешь на вопросы (попросит ввести пароль для подключения)
4) редактируешь ~/.bash_profile
добавляешь там строку "export DISPLAY=:1"
5) запускаешь "winecfg", теперь winecfg запущен на дисплее 1 котрый обслуживает наш волшебный TightVNC
6) идешь на сайт www.tightvnc.com и качаешь оттуда виндовую версию клиента (или можешь воспользоваться любым другим VNC клиентом)
7) устанавливаешь, запускаешь и вводишь в поле "куда соединиться" (извини у меня виндовой версии этого клиента нет по этому не знаю что и как там, но думаю разберешься) строку "IP_твоего_сервера:1"
8) вводишь пароль и вуаля, ты видишь удаленный дисплей и можешь им рулить.
Но к слову сказать у меня DS не потребовал никакой настройки wine :)
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
MoHaX
Но к слову сказать у меня DS не потребовал никакой настройки wine :)
И то верно. Чего там настраивать то? Я свой сервер один раз в жизни видел, когда базовую систему ставил на него, никаких иксов. Дальше все по ssh.
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
akirill
И то верно. Чего там настраивать то? Я свой сервер один раз в жизни видел, когда базовую систему ставил на него, никаких иксов. Дальше все по ssh.
DCG без иксов не запустить =(
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
MoHaX
DCG без иксов не запустить =(
Да и хрен с ним :)
Вложений: 1
Re: Сервер Ил-2 под Linux
Вот у вас всех всё работает без настроек, а у меня нет :(
Пробовал и под Wine, и под CrossOver (версии 5)
Сервер запускается, но порт 21000 не слушает. Вот такая ошибка появляется:
IL2 FB dedicated server v4.05m
Sound: Native library (build 1.1, target - P IV) loaded.
RTS Version 2.1
Core Version 2.0
ERROR socket: Bad LocalHost address
Сервер пока получает ip address по DHCP, но и мой лаптоп где сейчас тот же DS крутится, тоже айпи по DHCP получает и все отлично.
Прикрепляю мой confs.ini
уж не знаю, в чем причина может быть ...
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
Вот у вас всех всё работает без настроек, а у меня нет :(
Пробовал и под Wine, и под CrossOver (версии 5)
Сервер запускается, но порт 21000 не слушает. Вот такая ошибка появляется:
IL2 FB dedicated server v4.05m
Sound: Native library (build 1.1, target - P IV) loaded.
RTS Version 2.1
Core Version 2.0
ERROR socket: Bad LocalHost address
Сервер пока получает ip address по DHCP, но и мой лаптоп где сейчас тот же DS крутится, тоже айпи по DHCP получает и все отлично.
Прикрепляю мой confs.ini
уж не знаю, в чем причина может быть ...
В разделе [NET] файла confs.ini пропиши "localhost=IP сервера"
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
Baks
Андрей, wine.conf похоже уже не работает в новых версиях Wine. Наверное в реестр пишет настройки.
Да и, действительно, там нечего править :beer:
ошибок он мне кидает кучу при старте иловского сервера, но это серверу не мешает
Ошибки типа таких
fixme:heap:RtlCompactHeap stub
fixme:ttydrv:TTYDRV_GetBitmapBits (0x760, 0x7fdc643c, 128): stub
err:imagelist:ImageList_ReplaceIcon no color!
fixme:ttydrv:TTYDRV_DC_StretchBlt (0x204, 832, 0, 32, 32, 0x784, 0, 0, 32, 64, 13369376): stub
и такого рода сообщений строчек 50-60, после чего грузится сервер уже.
Но раз сервер работает, то и ладно, пусть пишет
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
MoHaX
В разделе [NET] файла confs.ini пропиши "localhost=IP сервера"
В точку ! Спасибо. Все заработало :bravo:
Re: Сервер Ил-2 под Linux
а 4.06 под линуксом не поднимается
вываливает кучу ошибок:
Цитата:
fixme:seh:check_no_exec No-exec fault triggered at 0x6d4d08b0, enabling work-around
err:seh:setup_exception nested exception on signal stack in thread 0016 eip ffffe405 esp 7ffdda18 stack 0x241000-0x350000
fixme:console:CONSOLE_DefaultHandler Terminating process 15 on event 0
wine: Unhandled page fault on write access to 0xffffff0f at address 0x7efd287d (thread 0018), starting debugger...
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\midimap.dll
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\msacm32.drv
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\msacm32.dll
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\wineoss.drv
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\imm32.dll
fixme:ntdll:RtlNtStatusToDosErrorNoTeb no mapping for c0000119
il2server.exe сильно уменьшился в размерах по сравнению с 4.05 и теперь при старте сервера под виндой, появилась иконка для этого окошка. Что-то они переделали, интересно что. Просто под wine еще не пробовал, пробовал только под wineconsole.
Re: Сервер Ил-2 под Linux
А у меня такая трабла вылезает: Invoking /usr/lib/wine/wine.bin wineconsole.exe c:\Programme\00dsserver_406m\il2server.exe ...
(B)0[?1049h[1;24r[m[4l[?7h[39;49m[?1h=]2;c:\Programme\00dsserver_406m\il2server.exe[?25l[39;49m[37m[40m[H[2J[0;1m[37m[40m[J[m[39;49m[37m[40m[?25h[?25l[?25h(B)0[?1049h[1;24r[m[4l[?7h[H[2Jfixme:ttydrv:TTYDRV_GetBitmapBits (0x7c, 0x7fd833e4, 128): stub
fixme:ttydrv:TTYDRV_GetBitmapBits (0x78, 0x7fd83464, 128): stub
fixme:ttydrv:TTYDRV_GetBitmapBits (0x84, 0x7fd83ec4, 128): stub
fixme:ttydrv:TTYDRV_GetBitmapBits (0x80, 0x7fd83f44, 128): stub
wine: Unhandled exception (thread 000b), starting debugger...
[0;1m[37m[40m#
# HotSpot Virtual Machine Error, Internal Error
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Error ID: 5448524541442C4F43414C33544F524147450E4350500042
#
# Problematic Thread:[H[m[39;49m[37m[40m[8;23H]2;Wine Debugger[0;1m[37m[40mWineDbg starting on pid 0xa[8;23H[m[39;49m[37m[40m
[H[0;1m[37m[40md4695ba).
In 32 bit mode.[K
Register dump:[K
CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
EIP:6d4695ba ESP:7fa9ea58 EBP:7fa9ea64 EFLAGS:00010246( - 00[70G-RIZP1)
EAX:00000000 EBX:00000000 ECX:00000000 EDX:00000000[K
ESI:00000000 EDI:6d4e0e90
Stack dump:
Может кто подскажет, че курить?
Re: Сервер Ил-2 под Linux
мда... кинули нас через бедро =( Годами сервер не менялся и тут бац. 4.06 оставил на работе, завтра забиру домой эксперементировать буду.
Не совсем понял что означает "появилась иконка для этого окошка" Но видимо теперь il2 ds не консольное приложение, а оконное.
Порядок действий-экспериментов примерно такой:
1) попробовать под wine, ане под winconsole. Обязательно проследить что б переменная окружения DISPLAY указывала на нормальный работающий X-сервер
2) обновить до 0.9.27 и попробовать пункт 1
3) сравнить список подгружаемых dll под windows серверами 4.05 и 4.06 все новые dll скопировать из винды в папку ~/.wine/drive_c/windows/system32
4) больше мыслей нет :)
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
MoHaX
Не совсем понял что означает "появилась иконка для этого окошка" Но видимо теперь il2 ds не консольное приложение, а оконное.
когда я стартую сервер под виндой, то вижу в taskbar-е и переключаясь между приложениями control-tab красивую иконку, а не как раньше, просто черное окошко cmd
Цитата:
Сообщение от
MoHaX
Порядок действий-экспериментов примерно такой:
1) попробовать под wine, ане под winconsole. Обязательно проследить что б переменная окружения DISPLAY указывала на нормальный работающий X-сервер
2) обновить до 0.9.27 и попробовать пункт 1
3) сравнить список подгружаемых dll под windows серверами 4.05 и 4.06 все новые dll скопировать из винды в папку ~/.wine/drive_c/windows/system32
4) больше мыслей нет :)
Согласен. Как раз собрался заняться пунктом 3.
Re: Сервер Ил-2 под Linux
Чтобы в личку не кидать, выложу здесь шаги по запуску ил-2 сервера под линуксом (я использую федору):
1. установить RedHat Fedora, достаточно скачать первые два CD
Я ставил Core 6, http://fedora.redhat.com/)
При установке можно сразу разрешить доступ к порту 22 (SSH), порту 21000 по udp и 20000 по tcp (для консоли)
2. установить wine и screen
из командной строки
$ su -c 'yum install wine'
$ su -c 'yum install screen'
3. создать среду для wine
$ wine
4. залить ил2 дедикейтед сервер в директорию ~/.wine/drive_c/il2 под своим новым пользователем (не root), предполагается, что сервер уже настроен под любой виндовой машиной
5. создать скрипт для запуска сервера ил2
$ vi ~/il2start
/usr/bin/wineconsole "c:\il2\il2server.exe"
:wq!
6. добавить ему права на выполнение
$ chmod u+x il2start
7. убедиться, что file
~/.wine/drive_c/il2/confs.ini
содержит строчку
localHost=<айпи адрес сервера>
8. запустить сервер
screen -d -m -S il2 ./il2start
для того чтобы перейти в окно сервера нужно использовать команду
screen -r il2
а чтобы выйти
Control+A
D
9. убедиться что сервер доступен
$ netstat -an | grep 21000
ответ должен быть примерно таким
udp 0 0 192.168.0.2:21000 0.0.0.0:*
где 192.168.0.2 - это айпи адрес интерфейса, с которым работает сервер,
а 21000 его порт
Еще раз проверить что фаервол не блокирует доступ по этому порту и протоколу (udp, 21000)
Можно на время настройки вообще выключить firewall и SELinux используя команду setup из терминального окошка.
Re: Сервер Ил-2 под Linux
Так у тебя 4.06 запустился?
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
basurman
Так у тебя 4.06 запустился?
Не, не запустился. Надеюсь, МГ еще переделает сервер.
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
Не, не запустился. Надеюсь, МГ еще переделает сервер.
Боюсь что нет. Их linux никогда не интересовал...
У меня тоже не запустился, скорее всго из-за новой защиты...
Re: Сервер Ил-2 под Linux
Цитата:
Сообщение от
VreVo
Не, не запустился. Надеюсь, МГ еще переделает сервер.
Cервер 4.07 запустился.
Цитата:
wine ./il2server.exe
fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.
RTS Version 2.2
Core Version 2.0
Sound: Native library (build 1.1, target - P IV) loaded.
fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
IL2 FB dedicated server v4.07m
fixme:msvcrt:MSVCRT__sopen : pmode 0x01b6 ignored
1>mission LOAD net/dogfight/ 3/1_Islands.mis BEGIN
Loading mission net/dogfight/ 3/1_Islands.mis...
Load bridges
Load static objects
fixme:msvcrt:MSVCRT__sopen : pmode 0x01b6 ignored
Mission: net/dogfight/ 3/1_Islands.mis is Playing
1>f gc.cmd
>GC
Memory: total(13697024) free(647712)
>GC
Memory: total(13697024) free(662800)
>GC
Memory: total(13697024) free(662528)
>timeout 3600000 f gc.cmd
7>
правда при остановке по ctrl-c падает
Цитата:
Current Java thread:
at java.lang.Thread.sleep(Native Method)
at com.maddox.il2.game.DServer.loopApp(DServer.java:185)
at com.maddox.il2.game.Main.exec(Main.java:436)
at com.maddox.il2.game.DServer.main(DServer.java:430)
И жава там все-таки 1.3... :pray:
Цитата:
# Java VM: Java HotSpot(TM) Client VM (1.3.1-b24 compiled mode)
Правда проверить что все работает как надо не могу, ибо нету у меня пока 4.07.
Да, система:
Цитата:
$ uname -a
Linux black 2.6.17-10-generic #2 SMP Fri Oct 13 18:45:35 UTC 2006 i686 GNU/Linux
$ wine --version
Wine 0.9.22
$ ldd `which wine`
linux-gate.so.1 => (0xffffe000)
libwine.so.1 => /usr/bin/../lib/libwine.so.1 (0xb7e63000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e42000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d0d000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d09000)
/lib/ld-linux.so.2 (0xb7f76000)
Цитата:
dpkg-depcheck -a wine il2server.exe
libx11-data 2:1.0.3-0ubuntu4
fontconfig-config 2.3.2-7ubuntu2
sun-java5-fonts 1.5.0-08-0ubuntu1
sun-java5-jre 1.5.0-08-0ubuntu1
libc6-i686 2.4-1ubuntu12
xfonts-terminus 4.20-2
fontconfig 2.3.2-7ubuntu2
libc6 2.4-1ubuntu12
xfonts-scalable 1:1.0.0-4ubuntu1
locales 2.3.22
libasound2 1.0.11-7ubuntu3
wine 0.9.22-0ubuntu3
libgcc1 1:4.1.1-13ubuntu5
libx11-6 2:1.0.3-0ubuntu4