This article discusses some specific issues with getting Linux to work on the Shuttle SN41G2 with Nvidia chipset, but may be applicable to other Nvidia boards.
To use Xfree86 in accelerated mode (ie to make it usable) you need a binary-only kernel driver supplied by Nvidia. This is annoying because it breaks almost every time a new kernel comes out. The kernel developers take a dim view of closed source drivers, and seem to take pleasure in watching them break as often as possible. I don’t blame them, but it’s us poor sods who are stuck with the situation that end up suffering.
The same applies to audio and network support, but it’s not all bad news because there is a reverse-engineered open source driver called
forcedeth which replaces Nvidia’s closed source
nvnet driver and seems to work ten times better. No sign of anyone doing this for the audio yet, alas, and there’s not much chance at all of anything similar happening for the video chipset.
Let’s just say, in future I won’t be buying any hardware which requires closed source drivers.
See also my general instructions for compiling a custom Debian kernel with added modules.