Linux Familiy Desktop

## Linux Family Desktop

Hopefully useful information, use at your own risk

This 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 I recommend the GPU Caps Viewer. If wine opengl is working 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.

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.