Поскольку смотрю, что вопрос подымается довольно часто, решил вставить свои пару центов.
Здесь я не советчик. Я предпочитаю RedHat + часть пакетов с ALTlinux.
Нужен ли сервер или можно обойтись одноранговой сеткой? Ну если у вас так много денег, что вы в состоянии нанять человека, который будет строить линух на 8-20 тачек, то зачем вам линух? Купите себе win98 и закройте тему. Вобщем вопрос не нужен ли сервер, а какой он нужен.
В задачи сервера входит:
Думайте, считайте. Для 1-4 за глаза хватит PII300/64M, а вот уже 5-7 потребует чего-то большего. Особенно память.
К сожалению, на сегодня для линукса есть ровно одна фирма делающая видеокарточки с нормальным opengl и называется nNvidia. С радионом8500 я поигрался два часа, но хоть какого-то 3D там не обнаружил. (прим. ред.: пока или максимум 7200, или взять R-DDR и все -- 7500 сотоварищи должны быть в XF86 4.2) Память, ну CounterStrike отъедает 96M+, так что 128M минимум. Процессор, вообще-то wine/winex в 2D редкий тормоз*, но как ни странно, часть глюков на Duron800+ исчезают, хотя не странно, если проследить чего там вызывается.
*поправка - я еще не проверил, но судя по коду в последних winex сильно поднята скорость в 2D.
HDD от 1Gb, больше не нужно, можете продать свои 20-40Gb, накупить на металлоломе 4Gb, разницы как раз на сервер хватит ;-)
Получаем D800+/GF2MX+/128M+/1Gb+
Как _ЭТО_ собрать ручками?
autoconf
CFLAGS="-mcpu=i386 -march=i686 -O2" LDFLAGS="-s" \
./configure \
--prefix=/usr \
--with-x \
--enable-dll \
--disable-debug \
--disable-trace \
--enable-opengl \
--enable-mesaos
make
(make -k programs)
make install
Заметьте, что c gcc2.96 -mcpu и -march необходимы. Без них на четырёх _одинаковых_ машинах сделанных через dump/restore я получил совершенно разные результаты:
gcc2.95 собирает правильно, gcc3 бросает кору с простынёй кода, на котором сдох. gcc2.96-81 из RH71 нормально собирает с -O3, gcc2.96-98 из RH72 с -O3 собирает, но wine бросает кору на старте, с -O2 всё нормально. Короче, 2.96 - та ещё песня.
Потом ещё нужно сделать programs/regapi/regapi setValue < windefault.reg для получения правильного регистри. Кстати, если у вас свежепроставленный wine вывалится с матом на запускать нужно с опцией -desktop, то либо он не находит правильной регистри, либо winedefault.reg поменялся, те необходимо regapi запустить снова.
Всё, можете пробовать.
Ну с меню пока ничего не поделать. Хорошо ещё, что в cvs глюк с запуском сервера поправлен, правда за счет ещё хужей отрисовки меню, чёрт с ней, с отрисовкой, зато консоль работает, как надо. А opengl сейчас поправим. Всё, что нам понадобится, описано в первых 30 строках dlls/opengl32/make_opengl . Если у вас winex уже слит, то вам припёрло ;-) Если нет, то лучше слейте, всё равно вам понадобятся несколько файликов и легче залить winex целиком, чем кликать мышом по oss.sgi.com несколько раз на один файл. В winex всё это лежит в dlls/opengl32/specs. В wine ложим туда же. Прикладываем следующий патч, можно и ручками
--- wine/dlls/opengl32/make_opengl Wed Aug 29 22:37:07 2001и
+++ wine-ogl/dlls/opengl32/make_opengl Thu Nov 8 12:54:47 2001
@@ -43,11 +43,11 @@
$ext_file = "opengl_ext.c";
# Set to 0 for removing the ENTER / LEAVE GL calls
-$gen_thread_safe = 1;
+$gen_thread_safe = 0;
# Prefix used for the local variables
-$ext_prefix = "func_";
+$ext_prefix = "";
# If set to 1, generate TRACEs for each OpenGL function
-$gen_traces = 1;
+$gen_traces = 0;
(cd dlls/opengl32; ./make_opengl specs 1.2)
make install
О, теперь мы поехали быстрее. На нынешних билдах отставание от нейтива ~20%, а на билдах конца августа-начала сентября около 10%. Можете проверить с wine-20010824. Там windows.c еще лежит в x11drv, теперь перехала в wineserver. Вот и получили дополнительный тормоз. В высоких разрешениях отставание уходит в ноль, здесь уже карта тормозит.
Если судить по тому, что build, который раздается transgaming.com сабскрайберам бегает шибко быстрее, чем тот, что получается с cvs через configure;make, то билдят они его именно таким образом.
Стало лучше, но всё равно тормозит безбожно.
Мнээ, а выгрузите-ка саундовые модули и зпретите звук. Полегчало? Значит вам припёрло. Вам предстоят поиски правильного саундового модуля. В нескольких случаях мне помогла ALSA 0.9, в одном замена звуковой карты.
И не поедет, пока не приложите следующий патчик, kgm, с августа никак не замылю его в wine-devel, руки не доходят.
--- wine/graphics/x11drv/opengl.c Wed Aug 29 22:37:08 2001
+++ wine-ogl/graphics/x11drv/opengl.c Thu Nov 8 12:56:15 2001
@@ -200,7 +200,7 @@
ppfd->nVersion = 1;
/* These flags are always the same... */
- ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_GENERIC_ACCELERATED;
+ ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_SWAP_COPY;
/* Now the flags extraced from the Visual */
ENTER_GL();
Это с winex, в wine на две строки выше.
Ну, во-первых, winex две ветки. Одна доступна в cvs, другая доступна только в собранном виде. Пока разница между ними по словам Transgaming.com только в наличии/отсутствии SafeDisc и SecuRom, но если судить по вялой активности в доступном cvs, то разницы там больше, хотя может и ошибаюсь *.
*поправка - это они в другое здание переезжали.
Какого-нибудь кошерного снапшота не было, нет и не будет. Это даже не бета, это вечная альфа. Что-то правится, что-то ламается. Если сейчас поправили консоль в CounterStrike, то заламали ONI. Поправят ONI, перестанет ездить FAKK2 или что-то другое. Это вечная песня. Хотите, что бы оно у вас хоть как-то работало держите их все, вернее, все под которыми что-то работает лучше. Те ставить куда-нибудь в
/usr/local/wine${DATE} и /usr/local/winex${DATE}а запускать через /usr/local/bin/wine${DATE} и /usr/local/bin/winex${DATE} Надеюсь, что такое PATH и LD_LIBRARY_PATH известно
Вообщем-то я соответствующие wine.spec и winex.spec сочинил. Может завтра до ума доведу.
Ессесно, на другом сервере. Причин несколько.
Поэтому пускаем:
xinit /usr/local/bin/STARCRAFT -- :1 -layout gamer640x16
Правильные layout-ы напишете сами.
#!/bin/bash
export WINEPREFIX=/var/wine/apps/starcraft
cd /var/wine/disks/g/starcraft
wine20010824 game
Самый оптимальный путь - ставить под windows с diff regbefore regafter. Можно и из под wine, но здесь как получится. Игры требуют cdrom. Во-первых, не крекайте игру. У нас и так куча проблем, а тут ещё и непонятно wine глючит или крякалка так крякнула. Во-вторых, неизвестно как посмотрит на крякнутую игру "Общество защиты Билла Гейтса от голодной смерти". Так что поделим геймы на три группы:
А какой угодно. Но у нашего юзера gamer прописано icewm.
HTMLизация и публикация на совести Михаила Шигорина <mike at altlinux dot ru>.
Спасибо, Сергей!