As of a while ago, Quake 4 should work "out of the box" on an amd64 Debian system running Etch or Sid. Simply "apt-get install ia32-libs" if you haven't done so already.
I've left the obsolete instructions below in case they have any use.
I ran into all sorts of problems in the process of getting Quake 4 working on my debian-amd64 system, so I decided to document the steps I had to go through.
I use sid (unstable). At this point, the howto should also apply exactly to etch (testing). I've tried to note what steps are different for sarge (stable), but I haven't tested with sarge.
Please send me updates and corrections. My address is at the bottom of this page.
Follow the instructions on the official website:
http://zerowing.idsoftware.com/linux/quake4/
Try running the game. If it works, then you can safely ignore the rest of this
document.
I have a functioning i386 chroot, but I'd like to get rid of it. I try to do as much as I can with ia32-libs.
Quake 4 requires SDL libraries for sound; however, the standard ia32-libs deb doesn't include SDL, so that means either building a custom ia32-libs package or manually installing SDL to /emul/ia32-linux. Pick one or the other; I prefer building my own ia32-libs.
The ia32-libs source is 205MB of sources and debs that are a little outdated by now. For the convenience of dial-up users, I've made a stripped tar.gz so nobody has to download more than they need to: ia32-libs-1.6.q4-stripped.tar.gz. Download the source and extract to your usual source directory (/usr/local/src or something). Further installation instructions are in the README.
First, download the i386 versions of libasound2 and libsdl1.2debian-alsa (or libsdl1.2debian-oss). Then, extract them to /emul/ia32-libs.
dpkg -X libasound2_*i386.deb /emul/ia32-linux/
dpkg -X libsdl1.2debian-alsa_*i386.deb /emul/ia32-linux/
Last, run 'ldconfig'.
If you are using a chroot, you have to make sure you have the required libraries installed. quake4 will tell you when it's missing a library each time you run it.
Quake 4 will not run with libsdl1.2debian-all. See "Debian SDL Confusion" below.
Try running quake4. If you have problems, check the "Problems and Fixes" section below. If you have a problem and a fix I haven't listed, send me an email. My address is at the bottom of this page. If you have a problem but don't know the fix, you can try sending me an email. I will redirect you to the debian-amd64 mailing list if I don't know the answer.
Quake 4 segfaults when libsdl1.2debian-all is installed (on both i386 and amd64). Installing libsdl1.2debian-alsa or libsdl1.2debian-oss instead fixes the problem. The -arts, -esd, and -nas packages may or may not work (I haven't tried).
At this point, I don't know if the segfault is a bug in Quake 4 or in Debian's libSDL. When this ends up getting resolved, I will submit a wishlist bugreport against ia32-libs asking for libsdl1.2debian-all to be included. The other SDL packages conflict with each other and wouldn't be a good general solution.
After installing ia32-libs and running quake4, I get the following line:
/usr/local/bin/quake4: line 6: ./quake4.x86: No such file or directory
Old versions of ia32-libs seem to remove the symlink to the 32-bit dynamic
linker. Re-create it as root:
ln -s /emul/ia32-linux/lib/ld-linux.so.2 /lib
quake4 segfaults. Near the end of the output is the following line:
copy gamex86.so to /home/bugfood/.quake4/q4base/gamex86.so
Do you have libsdl1.2debian-all installed in your chroot or ia32-libs? See the "Debian SDL Confusion" above.
quake4 quits at startup with the following line:
Sys_Error: SDL_GL_LoadLibrary libGL.so.1 failed: Could not load OpenGL library
Do you have an nvidia card? If so, you need to either install nvidia-glx-ia32 (if you use ia32-libs) or nvidia-glx (into your chroot if you use one).
Id Software official Quake 4 page:
http://zerowing.idsoftware.com/linux/quake4/
Debian AMD64 howto:
https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html
Debian ia32-libs development page:
http://packages.qa.debian.org/i/ia32-libs.html
debian-amd64 mailing list thread:
http://lists.debian.org/debian-amd64/2005/10/msg00683.html
linuxgames.com Quake 4 discussion:
http://ppj.telefragged.com/news/feedback.php?identiferID=7972&action=flatview
Gentoo Quake 4 forum thread:
http://forums.gentoo.org/viewtopic-t-395036.html
2005-10-24 | Wrote initial version. |
2005-10-25 | Added instructions for extracting i386 debs to /emul/ia32-linux (thanks to
Robert Isaac). Added revision history. |
2005-11-16 | Added ia32-libs-1.5-stripped. |
2006-03-26 | Added ia32-libs-1.6.q4-stripped. ia32-libs no longer removes /lib/ld-linux.so.6 |
2006-08-24 | Added "obsolete" notice. |
2006-09-12 | Converted to XHTML 1.0 |
2006-09-12
Corey Hickey, bugfood-c [at] fatooh [dot] org
other stuff