Linux Family Desktop
Hopefully useful information, use at your own riskThis page describes the setup I use to run a Linux based desktop system for my familiy. This is not about setting up debian. Installing debian is easier than most people think and can be read elsewhere. This is about getting additional features - most prominent 3d graphics and multi seat - up and running.
Hardware
The board is a
enter:~# dmidecode | grep -A3 -i "base board" Base Board Information Manufacturer: ASUSTeK Computer INC. Product Name: M3A32-MVP DELUXE Version: Rev 1.xx
with AMDs 790fx chipset. The board was choosen because it provides 4 PCIex16 slots.
All graphics cards are from nvidia.
enter:~# lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 LE] (rev a1) 02:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 LE] (rev a1) 06:00.0 VGA compatible controller: nVidia Corporation Device 0a65 (rev a2)
Note that the third card is a Gainward G210 which is cheap, passively cooled and has most of the latest features (OpenGL 3.2). It does however require nvidia-glx 190.42 from debian unstable. The card in the middle is currently unused.
Choosing nvidia cards was probably a lucky choice. According to Chris Tylers everything else is less stable or will not work in a multi seat system.
Software
I am running this on debian lenny amd64. Debian is - I know I am repeating myself - by now quite easy to use. A lot of things just work out of the box.
To get 3D graphics acceleration is required. Not only is it necessary for lots of
games. Smooth scaling of videos depends on it and youtubes audio stays in sync if you
have it. Fortunately it is quite easy.
apt-cache show nvidia-glx will tell you which cards are
supported. If yours are among them a simple apt-get install
nvidia-glx will install all the nvidia drivers including the
necessary kernel module. You need to have main contrib non-free
in your /etc/apt/sources.list since the nvida drivers are non-free.
To find out if 3d acceleration is working ask glxinfo from the mesa-utils package from inside an xterm.
jo@enter:~$ glxinfo | egrep -i direct\|opengl
direct rendering: Yes
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 6200 LE/PCI/SSE2
OpenGL version string: 2.1.2 NVIDIA 190.42
OpenGL extensions:
...
More Software
For access to youtube, freecaster and
lots of games a working flash plugin is a must.
You may try gnash, but most likely you still need
to apt-get install flashplugin-nonfree.
If you do this after opengl is working the plugin
automatically uses opengl. Otherwise you will need
to reconfigure your flash plugin later.
A nice piece of software that saves a lot of argueing is timekpr. It lets you limit your kids login time. The ubuntu deb is installable on lenny with:
enter:~# dpkg -i timekpr_0.3.0~ppa1~ubuntu1_all.deb
Multiseat
Setting up a working multiseat is hard. This is partially due to the fact that multi card setups are broken in most distros. The status of the xorg head revision is somewhat unclear. See 18160 for details.
Our xorg.conf and gdm.conf are provided as examples. The option sharevts that is according to all sources needed for multi seat setups is undocumented. So I only have a rough idea why my Xorg servers need to share vts. For my setup it was however necessary to omit that option for the first seat.
The other trick that made our system finally stable was to preload the nvidia kernel module:
enter:~# grep nvidia /etc/modules nvidia
My theory was that multiple starting xorg servers loading the nvidia
module lead to concurrency problems. It seems that there now is
/etc/modprobe.d/nvidia-kernel-nkc to do this,
so you may not need it.
Wine Gaming
Installing wine is - you guessed it - easy.
apt-get install wine does it,
no matter if you are on i386 or amd64. If you are on amd64, you do
however also need nvidia-glx-ia32 to pass the nvidia opengl from 64bit
to 32bit wine.
To test if your wine has a working opengl via dri I recommend the GPU Caps Viewer. If wine opengl is working via dri the string it displays in OpenGL>OpenGL Version must exaxtly match glxinfos OpenGL version string. The GCV also comes with several test demos for opengl 2+ features. This is actually a much better test than glxgears for your linux opengl.
If the version string does not match, use
LIBGL_DEBUG=verbose to find out why. If it displays
something like
jo@vostro:~$ env LIBGL_DEBUG=verbose WINEPREFIX="~/.wine" wine "C:\Programme\..." libGL: OpenDriver: trying /usr/lib/dri/tls/r300_dri.so libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so libGL error: dlopen /usr/lib/dri/r300_dri.so failed (/usr/lib/dri/r300_dri.so: wrong ELF class: ELFCLASS64) libGL error: unable to load driver: r300_dri.so ... libGL error: reverting to indirect rendering
you are probably encountering
bug 566953.
Your best bet is then to check if you do have the 32 bit libraries installed and
start wine with
LIBGL_DRIVERS_PATH=/usr/lib32/dri.
Working opengl makes lots of games playable. There are however still lots of graphics issues and there are copy protection schemes that will probably never work in wine.
References
A very similiar system (debian, 790fx, nvidia) is described here. Especially that description gives you more details on assigning mouse and keyboard to a seat.
Contact
This text was written some time after I did the setup. By then I could not remember all the details. If there are critical details missing contact me.