crazney@crazney.net
mayof1937@crosswinds.net
c948114@student.dtu.dk
Version 0.4, d. 1. juni - 2001
| Revisionshistorie | ||
|---|---|---|
| Revision 0.4.1 | 2001-06-03 | Gennemset af: David |
| Opdaterede min e-mail-adresse og ændrede nogle få ting der var "out-of-date." | ||
| Revision 0.4 | 2001-06-01 | Gennemset af: Lars |
| Ændrede dokumentstilen til Docbook SGML 4.1. Lav dokumentet som beskrevet i: Using ldp.dsl | ||
| Revision 0.3 | 2001-03-19 | Gennemset af: Adam |
| Jeg rettede mest grammatiske fejl, jeg tilføjede noget tekst i OpenGL fejlfindings og lyd afsnittene, og generelt ryddede det lidt op. Der er en lille notits til jer nede i lyd fejlfindings afsnittet så det bør I bestemt se på. Jeg ved *intet* om SGML så jeg åbnede bare filen, så at det lignede HTML, og gik så i gang med det. Hvis jeg har gjort tingene værre så fortæl mig det endelig. | ||
Denne HOWTO vil hjælpe de fleste folk med opsætningen af Half-Life, der dog vil køre i en meget ustabil tilstand, under Linux og andre un*xer, ved brug af WINE. WINE er ikke en Windows-emulator, men det lader dig køre mange Windows-programmer under Linux. Denne HOWTO er lavet for brugere af OpenGL, for software Half-Life, anbefaler jeg at I ser på the EHL project
Denne HOWTO er blevet bygget på oplysninger fra mange forskellige steder, som f.eks. andre HOWTOs, web sites, newsgroups, folk på IRC og min personlige erfaring. De to steder hvorfra der er hentet flest oplysninger var David McBrides HOWTO og WINE newsgroupen. Et par idéer kom også fra Sting of Death som har en webside Emulated Half Life
Linux Half-Life Howto: Running Half-Life under WINE Copyright (C) 2000, 2001 David Hammerton
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
A copy of the GPL can be found at the GNU Homepage
En x86 PC der opfylder Half-Lifes systemkrav. Faktisk, måske en smule bedre end hvad der står på kassen da WINE ikke kører knapt så godt som en ægte Windows
En rimelig ny Linux installation
XFree86 4.0.1 eller nyere (XFree86 4.0.3 er anbefalet for DRI brugere).
Half-Life
Et 3D-accelerator kort der understøtter OpenGL under Linux
Dit 3D kort er sat op og virker i XFree86
Du har IKKE brug for nogen Windows partition eller installation
Denne HOWTO dækker ikke installation og opsætning af dit 3D kort til Linux. Denne HOWTO formoder at du har et fungerende 3D kort (du kan køre Quake3, Heretic2, Descent3 eller noget i den stil ved brug af 3D-acceleration). Her er der nogle links:
NVidia chipsets (TNT/TNT2/GeForce/GeForce2 etc): NVidia Linux Drivers
Nye 3DFX chipsets (Voodoo's 3, 4 & 5): DRI Project 3DFX glide drivere for XFree86 3.3.6: 3DFX og the Glide project
Matrox GX00 / ATI Rage 128 / Intel i810/ 3dlabs Oxygen: DRI Project
NVidia kort er de bedste til at få det her til at køre. De har den bedste support under Linux og kører derfor hurtigere og mere stabilt i de fleste situationer. Der behøves ingen specielle indstillinger for NVidia brugere, bare følg denne HOWTO.
Siden udgivelsen af XFree86 4.0.2, er den seneste TDFX gren blevet lagt ind i DRI CVS - så det er måske muligt for 3DFX brugere at downloade og kompilere XFree86 og DRI fra CVS - dette er ikke afprøvet! Det er måske endnu bedre med den nyeste udgivelse af XFree86 4.0.3, men dette er heller ikke afprøvet. Hvis nogen prøver dette og det virker, så lad nogen vide det. Ellers, fortsæt med den gamle metode:
3DFX brugere ser ud til at have det lidt hårdt, men det er stadig muligt. Jeg har været i kontakt med en meget hjælpsom person som til sidst fik CS til også at virke med hans 3DFX kort (voodoo 3). Du har to muligheder, DRI (x4.0.1), men på nuværende tidspunkt virker dette latterligt langsomt, så det vil jeg undlade at beskrive nærmere. Den anden mulighed er Glide (x3.3.6). Eftersom jeg ikke har et voodoo 3 kort, kan jeg ikke være sikker på hvad der vil virke korrekt, dette bør dog virke.
E-mail fra Lars Munch <c948114@student.dtu.dk>
Her er hvad jeg gjorde:
------
Først fjernede jeg alle spor af glide og mesa.
Få fat i den nyeste Device3Dfx driver fra cvs på
glide.sourceforge.net og installer disse. Påkrævet hvis du
kører med kerne 2.4.x.
Få fat i Glide V3 kode-rpm'en fra linux.3dfx.com. Genopbyg og
installer disse, både bibliotekerne og devel tingene.
Så få fat på Mesa 3.4 fra mesa3d.sourceforge.net. Du har brug for
både MesaDemos og MesaLib. Kompiler det ved brug af
# ./configure --without-svga --without-ggi --with-glide=/usr \
--prefix=/usr --sysconfdir=/etc
Og gør
# make; make install.
Nu bør du teste det meget, for at være sikker på at det rent
faktisk virker (testGlide3x, quake etc..).
Du kan bruge export MESA_FX_INFO=1 for at få nogle brugbare
statistikker.
Installer WickedGL driverne (miniGL fra Wicked3D) og de
giver en MEGET god ydeevne 30-70 fps ved 640x480.
Konfigurer så wine koderne med --enable-opengl muligheden ,
og kør halflife/counter-strike med:
# export MESA_GLX_FX=fullscreen
# wine -desktop hl.exe -- hl.exe -gl -gldrv Default -w 640 -full \
-game cstrike -noipx -nojoy -numericping -console -toconsole |
Jeg er endelig blevet kontaktet af en bruger der kører LHL vidunderligt med hans G400. Der er nogle få ting der skal gøres, det virker nemmere end 3DFX brugerne. Vær klar over at du formodentlig behøver en rimelig hurtig CPU (500+ en eller anden?).
Nu hvor XFree86 4.0.2 (XFree86 4.0.3 en eller anden?) er udkommet, er alt du behøver at gøre at installere det. Det vil IKKE virke med den normale X4.0.1 udgivelse, du SKAL bruge XFree86 4.0.2. Det begynder sikkert at flimre. For at ordne dette bør du se nede i fejlfindingsafsnittet, der er en løsning der.
Jeg har endnu ikke hørt fra nogle andre DRI brugere, men lad mig endelig vide hvordan det går. Prøv at få fat på den seneste XFree86 DRI fra CVS som beskrevet i G400-afsnittet, lad mig vide hvordan det går (ATI Rage128 eller Radeon en eller anden?)
Den første ting du skal gøre er at installere WINE. Alt afhængig af hvor meget du har leget med Linux bør det ikke volde store problemer. Hvis du allerede har WINE installeret fra en RPM/binary pakke eller på andre måder, så fjern det: på RPM-baserede systemer gøres det sådan:
# rpm -qa |grep WINE # rpm -qa |grep wine # rpm -e "hvad end der viste sig på skærmen" |
På et Debian-baseret system skal du gøre dette:
# apt-get remove wine |
Hvis du tidligere har kompileret og installeret WINE fra kildekoden, så gå ind i mappen der indeholder den og skriv:
# make uninstall |
Download nu WINE. Jeg anbefaler yderst meget at du får fat i den nyeste CVS version, men den nemmeste måde at gøre det på er at downloade den nyeste CVS Snapshot Tarball og så opdatere den via CVS til den nyeste version. Instruktioner om dette kan findes her: "http://www.winehq.com/devstart.html" (se Getting Wine via FTP and converting to CVS). Jeg formoder også at du downloader WINE ind i mappen /usr/src/wine, så din WINE kode vil komme ind i /usr/src/wine/wine.
Hvis du bare vil bruge CVS, så prøv dette:
# export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine # cvs login *** The password is "cvs" *** # cvs -z3 co wine |
Læg venligst mærke til at det er en rimelig stor CVS checkout. Dette er ikke anbefalet for modem brugere. Der er ikke nogle WINE binaries kompileret med OpenGL support. Disse er uafprøvede så vidt jeg ved.
Få fat i OpenGL's development pakker til din distribution. For Debian er dette xlibmesa-dev. Andre distributioner burde have lignende pakker. Du får også brug for en fil der hedder glext.h. Lad os se om du har den:
# updatedb # locate glext.h |
Hvis dit system ikke allerede har glext.h, så skal du have fat i den inden du kompilerer WINE. Du kan hente en kopi her: "http://lhl.linuxgames.com/glext.h", download den og læg den ind i "/usr/X11R6/include/GL/". WINE vil ikke kompilere med OpenGL support uden denne fil.
For at kompilere skal du nu køre den inkluderede wineinstall, fra '/usr/src/wine/wine' kør './tools/wineinstall'. Du bør se WINE konfigurere sig selv og så kompilere og installere. Dette installationsværktøj laver også en mappe for dig osv. De sidste versioner vil automatisk inkludere OpenGL support. Dette tager et stykke tid. Se bare, var det ikke meget nemmere end i manuel installation?
Tid til at konfigurere wine.conf. Åben wine.conf i din favorit editor. Den er blevet placeret i '/usr/local/etc/wine.conf' afhængig af hvor det blev installeret. Dit standard C-drev bør formodentlig være indstillet til /usr/local/wine, check at det også er sådan i wine.conf. Du vil også skulle bruge et drev der leder til dit CD-ROM mount point for at installere Half-Life. Gå nu ned til [x11drv]-delen, og sørg for at double-buffering er ON. UseDGA kan være både på (on) eller af (off) eftersom DGA nu virker i XFree86. Nogle folk har rapporteret problemer med dette. Prøv at lege lidt med useDGA og double-buffering (sæt dem til at være af (off) hvis der er noget som ikke virker). Når så config filen virker, så gå ind i din hjemmemappe (med den bruger som du vil benytte til at køre LHL) og skriv:
# mkdir ~/.wine/ # cp /usr/local/etc/wine.conf ~/.wine/config |
WINE bør nu være installeret og konfigureret.
Half-Life bør være klar til at blive installeret.
Læg HL CD'en i dit CD-ROM-drev og skriv så:
# mount /xxx (dit CD-ROM-drevs mount point) # cd /xxx # wine SETUP.EXE |
Følg installationen og så bør det installere perfekt. Hvis installationen hænger til sidst (hvilket den ofte gør), så gå tilbage til din hovedkonsol med "CTRL+ALT+F1", login som root og skriv:
# killall -9 wine # ps -ax |
for at være sikker på at ingen WINE klienter/servere kører endnu. Hvis der er nogle som kører, så dræb dem en ad gangen.
Gør det samme hver gang du vil loade en patch (HL, CS etc.).. Du skal dog huske at du kun kan køre en .exe-fil fra en sti der eksisterer i wine.conf!
Nu er det nu, godt eller dårligt ;-). cd ind i din Half-Life mappe 'cd /usr/local/wine/games/Half-Life/' (eller hvor du nu installerede det) og kør så:
# wine hl.exe -- hl.exe --console |
(læg venligst mærke til at når du får det til at virke, så kør det ikke på denne måde.. kør det fra mit script som kan findes i afsnittet "mangler du gamespy?") Nu ser du at menuerne LANGSOMT kommer til syne foran dig. Når de er færdige, så klik på "Configuration" -> "Video" -> "Video Modes". Sæt den til OpenGL, den skærmopløsning du ønsker at spille med og din standard driver. Klik på ok. Det fryser måske når du klikker på OK, men det bør ikke have nogen betydning (det havde det ikke for mig) - bare gå tilbage til konsollen med "CTRL+ALT+F1" og `killall -9 wine`. Vær sikker på at den skærmopløsning du vælger er en du har konfigureret i din "XF86Config" ("XF86Config-4" for Debian) fil (X Windows konfigurationen).
Konfigurer nu dine taster. Den interne key-binder virker nu, så du bør ikke have nogle problemer. Hvis det er nødvendigt så kan du manuelt rette i din "config.cfg".
Jeg havde nogle problemer med nogle lyde lidt sent (f.eks. skud fra en pistol i CS, og den lyd kom for sent). For at ordne det skal du i din "config.cfg" tilføje teksten i den grå kasse for hver mod
_snd_mixahead "0.23" |
(værdien 0.23 virker 100% for mig, nogle folk siger at andre værdier virker bedre for dem. Brug IKKE en negativ værdi her, for så virker det overhovedet ikke!) Dette bør løse det problem. Hvis Half-Life begynder at gå ned (crashe) efter du har indstillet dette, så prøv dig lidt frem med de værdier.
Der er nogle som ikke kan løse dette problem med denne metode. Hvis du har ordnet det på en anden måde, så vær venlig at kontakte mig.
Med nogle lydkort, kan "Enlightened Sound Daemon (esd)" nogle gange være skyld i at lyden ikke virker (dette er generelt kun under Gnome). Prøv dette:
# ps aux | grep esd |
Hvis "esd -nobeeps" eller noget lignende kommer frem så er det måske dit problem. Højreklik på Gnome-panelet, "Panel" -> "Add to Panel" -> "Applet" -> "Multimedia" -> "Sound Monitor". Højreklik på den nye applet, og vælg "Place esound in standby". esd er nu slået fra, så nu kan du prøve igen.
Dette er et problem med ikke at have "-game cstrike" på kommandolinien - du kan downloade det nyeste hl launch script til brug med XQF - linket kan findes i afsnittet "Mangler du gamespy?".
Hvis du synes at teksten, i nogle spil, ser lidt underlig ud (f.eks. i scoreboardet), så bør du få nogle få fejlmeddelelser omkring skrifttyper der ikke kan findes. Disse fejl vil kunne ses i konsolvinduet når du loader spillet. En af filerne er måske "1026_Scoreboard Text.tga". Ja, du kan se at den dømmer opløsningen forkert, derfor kan filen ikke findes. Så find ud af hvilken opløsning den leder efter. Gå ud af Half-Life, gå ind i undermappen fra din HL installation "valve/gfx/vgui/fonts" og kopier de opløsningsfiler du BURDE bruge, til de filer som Half-Life tror du bruger. F.eks. har jeg dette i min:
1024_Briefing Text.tga 1024_Scoreboard Text.tga 1026_Briefing Text.tga@ 1026_Scoreboard Text.tga@ 1024_CommandMenuText.tga 1024_Team Info Text.tga 1026_CommandMenu Text.tga@ 1026_Team Info Text.tga@ 1024_Primary Button Text.tga 1024_Title Font.tga 1026_Primary Button Text.tga@ 1026_Title Font.tga@ |
En anden måde der ser ud til at løse dette er ved ikke at køre Half-Life full screen ("umarker" kassen i Video Modes) og i WINE config filen, lad din window manager tegne vinduer. Dette bør også fjerne den grønne linie som mange har rapporteret om. Det er ret smart for så kan du stadig se dine IRC beskeder eller hvad du vil, mens du spiller. Men ved at bruge denne metode kan du muligvis ikke fokusere full screen korrekt.
Dette problem opstår generelt for DRI brugere. Der er dog en nem løsning på det, tilføj/ret den følgende linie i alle Half-Lifes config.cfg filer:
gl_ztrick 0 |
Nogle brugere har fortalt at dette ikke løser problemet, vi leder stadig efter en korrekt løsning.
Alt afhængig af hvilken skærmopløsning du har sat Half-Life til at køre med, bør CS køre i en kasse (der har din valgte skærmopløsning) i midten af din skærm. Bare tryk "ctrl+alt+keypad_plus" indtil det passer bekvemt. Denne skærmopløsning skal være en de skærmopløsninger der er definerede i XF86Config. For at komme tilbage til normal, tryk "ctrl+alt+keypad_plus" igen indtil du når din ønskede skærmopløsning.
Dette er et problem som flere folk har haft, og det lader til at være nemt at ordne. Brug programmet "xgamma" til at ændre klarheden af XFree86.. f.eks. kan du i dit launch script tilføje noget lignende dette, før Half-Life loader:
# xgamma -gamma 3.0 |
3.0 værdien er den ting du ændrer efter smag og behag. Efter at have kørt Half-Life i dit script, så vær sikker på at ændre gamma-værdien tilbage, ellers vil det se spøjst ud.
Der kan være flere ting som har indflydelse på dette. Der dog størst sandsynlighed for at det er underlige GL drivere der ligger rundt omkring. Hvis du bruger NVidia driverne skal du lige checke at du har fjernet alle gamle mesa biblioteker (søg efter libGL.so, lad kun NVidia'erne blive tilbage). Se også afsnittet nedenunder "Den understøttede OpenGL er ikke understøttet af dit grafikkort".
Dette er et problem med at WINE henviser til de korrekte OpenGL drivere.. først skal du checke om OpenGL er kompileret ind i WINE (undersøg outputtet af ./configure manuelt). Det meste af tiden skal du finde ud af om WINE henviser de forkerte .so og .a-filer. Denne URL er meget behjælpelig: http://wine.screenweavers.com/cgi-bin/fom?file=139
Først, find ud af hvor WINE ligger din libopengl32.so (Dette er WINE's OpenGL understøtnings bibliotek. Min ligger i /usr/local/lib). Så skal du skrive dette:
$ ldd libopengl32.so |
Outputtet bør være noget lignende det følgende for et NVidia kort:
libx11drv.so => /usr/local/lib/libx11drv.so (0x4004a000)
libkernel32.so => /usr/local/lib/libkernel32.so (0x40099000)
libwine.so => /usr/local/lib/libwine.so (0x40113000)
libncurses.so.5 => /lib/libncurses.so.5 (0x40137000)
libm.so.6 => /lib/libm.so.6 (0x40177000)
libutil.so.1 => /lib/libutil.so.1 (0x40195000)
libdl.so.2 => /lib/libdl.so.2 (0x40198000)
libc.so.6 => /lib/libc.so.6 (0x4019b000)
libuser32.so => /usr/local/lib/libuser32.so (0x402aa000)
libgdi32.so => /usr/local/lib/libgdi32.so (0x4037b000)
libwine_tsx11.so => /usr/local/lib/libwine_tsx11.so (0x403e7000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x403f4000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x403fd000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40413000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x40421000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40458000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40466000)
libntdll.so => /usr/local/lib/libntdll.so (0x40540000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40637000)
libwine_unicode.so => /usr/local/lib/libwine_unicode.so (0x40842000) |
De vigtigste linier er libGL.so.1 og libGLcore.so.1. Vær sikker på at de peger på de rigtige NVidia libGL.so.1 og libGLcore.so.1. For at checke dette så gå ind i deres mappe (i dette tilfælde /usr/lib/) og:
# ls -l libGL* |
Se efter noget der ligner dette:
lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so -> libGL.so.1.0.769 lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so.1 -> libGL.so.1.0.769 -rwxr-xr-x 1 root root 218388 Mar 17 09:33 libGL.so.1.0.769 lrwxrwxrwx 1 root root 13 Mar 17 02:17 libGLU.so -> libGLU.so.1.3 lrwxrwxrwx 1 root root 13 Mar 17 02:16 libGLU.so.1 -> libGLU.so.1.3 -rw-r--r-- 1 root root 487348 Feb 21 21:13 libGLU.so.1.3 lrwxrwxrwx 1 root root 20 Mar 17 09:33 libGLcore.so.1 -> libGLcore.so.1.0.769 -rwxr-xr-x 1 root root 2075568 Mar 17 09:33 libGLcore.so.1.0.769 -rw-r--r-- 1 root root 26168 Feb 21 21:13 libGLw.a |
Læg mærke til at libGL.so.1 er et symlink til libGL.so.1.0.769 og det samme med libGLcore.so.1 (som er de korrekte biblioteker for 0.9-769 NVidia drivere). Hvis du har andre ting, så er det sikkert spor af Mesa der stadig er tilbage og det sørger for at det IKKE VIRKER. Fjern dem og kør så ldconfig igen.
Der er også en chance for at dit biblioteks sti ikke er rigtigt indstillet. Hvis det er tilfældet så ret i /etc/ld.so.conf og tilføj en linie til din libopengl32.so sti.
Hent XQF @ "http://www.linuxgames.com/xqf/", det har support for Half-Life. Men den måde den starter Half-Life er ikke passende for os, så jeg har lavet et script der virker fint, "http://lhl.linuxgames.com/hl". Læg det hvor du vil have det og konfigurer XQF til at bruge det. Du bliver nødt til at ændre min hl fil og ændre skærmopløsningen og mappen du vil benytte. Du skal også skrive 'chmod +x hl' for at gøre det "kør-bart." Du vil måske også tilføje det xgamma stads vi talte om tidligere.
ALT BØR VIRKE. Men, vær venligst opmærksom på at dette er en BETA howto. Hvis det ikke virker så VÆR RAR at prøv på forummet (http://lhl.linuxgames.com), check IRC (#lhl on irc.openprojects.net), eller send e-mail til mig, og så vil jeg prøve at hjælpe <dhammerton@labyrinth.net.au>
Hvis du vil være rigtig sej, så sæt tagget [TUX] eller (linux) i starten eller slutningen af dit navn hver gang du hopper ind på en server. Så kan andre LHL brugere identificere dig - jeg bruger det i begyndelsen (crazney)! Jeg (may1937) skriver (linux) i slutningen så folk ikke forveksler det med en klan nær så meget... "Vil Linux have en klan-krig?"... "Øh, nej. Det er ikke en klan."... "øh... ok. wtf?"... "Jeg spiller på Linux."... "Der findes ikke en Linux klient?" ELLER "Hvad er Linux?"... "Nej. jeg ønsker." ELLER /mig giver en patron til hoved-stykke med mine fede boombatty elites ; )