Posted 2004-07-10T15:33:00+01:00 in unix
Another blatant piece of memo-what-i-ve-done text
I bought an EPoX 8RDA+ motherboard last year, primarily because I wanted to work with bigger Photoshop documents. A new motherboard, Athlon CPU and more memory made that possible for relatively little money. I didn't consider Linux driver support for the motherboard, as I expected to mostly use it with Windows.
Lately I have been using Linux more and more. Obviously, I wanted to make good use of the system. The Debian installer created a booting system, but without network and audio support. Oops.
The nVidia nForce2 chipset on the EPoX motherboard takes care of many things. Apart from the usual CPU/Memory-controller stuff, it does:
USB and FireWire are supported through the standard drivers. In order to use AGP, Audio, Ethernet and take full advantage of the IDE capabilities, you need to get some extra drivers.
First of all, recent Linux kernels come with support for the IDE controller and AGP (I'm running 2.4.26), but it's probably not turned on in the kernel that comes with your distribution. That means you'll need to get the kernel source tarball.
(Debian Reference: Compiling your own kernel)
$ apt-get -u install kernel-source-2.4.26
... Unpack tarball
... Run make oldconfig
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --append_to_version "-040710" kernel_image modules_image
$ cd ..
# dpkg -i kernel-image*.deb
... Add the new kernel to the bootloader (in my case Grub, and not lilo)
The Linux kernel needs to be compiled with the
AMD and nVidia IDE support
(CONFIG_BLK_DEV_AMD74XX=y)
turned on. In the character devices list, the
/dev/agpart (AGP Support)
(CONFIG_AGP=y)
needs to be turned on, together with
NVIDIA chipset support
(CONFIG_AGP_NVIDIA=y).
Contrary to what the help file suggests, setting the
Use PCI DMA by default when available
feature made my system
freeze when the kernel loaded the init program. So I turned that
feature off. DMA worked anyway, eventually.
The driver modules for the audio and network can be downloaded from the nVidia website. Note that the network driver includes some binary code that will "taint" the kernel, license-wise. The driver download also includes a kernel patch for the AGP support that you can use in older kernels.
(Note: I'm using GCC 2.95 for compiling the kernel and the driver modules.)
Note: I GRUB as bootloader. Edit the menu.lst with boot options. Then write that file to the boot block from the grub shell:
#grub
grub>root (hd0,0)
-- my boot partition where it reads menu.lst is
on device `hd0`, filesystem `0`
grub>setup (hd0)
-- write the boot code to the master boot record on disk hd0
2007 Update: I just reset the BIOS. dumb dumb dumb. GRUB
now hangs. After stage 1.5 it says:
GRUB loading, please wait. Nothing happened.
It suddenly dawned on me that I changed some disk setting in the BIOS to fix this problem. Unfortunately, that was three years ago and I had no idea which setting that was. After trying all the UDMA, PIO, DMA modes (read: more than an hour of trial and error rebooting), I remembered: Change the disk setting (Standard CMOS setup) from Auto to Large. Now the disk is initialized in a way that GRUB can actually find it.
0000:00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev a2)
0000:00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev a2)
0000:00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev a2)
0000:00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev a2)
0000:00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev a2)
0000:00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev a2)
0000:00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a3)
0000:00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
0000:00:05.0 Multimedia audio controller: nVidia Corporation nForce MultiMedia audio [Via VT82C686B] (rev a2)
0000:00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)
0000:00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
0000:00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
0000:00:0d.0 FireWire (IEEE 1394): nVidia Corporation nForce2 FireWire (IEEE 1394) Controller (rev a3)
0000:00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev a2)
0000:01:0a.0 SCSI storage controller: Adaptec AIC-7892B U160/m (rev 02)
0000:02:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
Module Size Used by Tainted: P
nvidia 1965408 6 (autoclean)
nvaudio 34008 0 (autoclean)
ac97_codec 12140 0 (autoclean) [nvaudio]
soundcore 3396 2 (autoclean) [nvaudio]
nvnet 26080 1 (autoclean)
nls_cp437 4380 4 (autoclean)
keybdev 1824 0 (unused)
input 3136 0 [keybdev]
usb-ohci 18088 0 (unused)
usbcore 57024 1 [usb-ohci]
(With a 120GB WD Caviar.)
/dev/hda:
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
readahead = 8 (on)
busstate = 1 (on)
February 20, 2007: Added the BIOS note
Written Sat 10 July 2004