Linux on the Abit NF7-S Motherboard

I recently setup a rack server with an Abit NF7-S V2.0 motherboard, utilising the nForce2 motherboard featuring dual-bus DDR memory architecture for the AMD socket-A Athlon XP range of processors. This page documents my experience with building, configuring and overclocking this system for use with the Linux operating system.

Overclocking | Installing Linux | IDE and DMA | Temp Sensors | USB | Firewire | LAN & Sound | Links

Overclocking

This is one of the nicest overclocking boards I have used with AMD processors. The PCI and AGP busses are locked at 33/66MHz and the AGP bus can be setup in 1MHz increments from 66MHz. This locked clocking of PCI and AGP busses means you are free to clock either of both the CPU and memory busses well over 200Mhz, so long as your CPU and memory can handle it! I highly recommend Corsair XMS memory, Antec power supplies, Thermalright heatsinks and Papst fans. These products are more expensive that most other alternatives, but in the end their quality and reliability are second to none.

Fitted with an AMD Barton XP2500+ AQXDA stepping week 0319, I managed an overclock to 227 x 11.0 for 2501MHz! These CPU's are very sweet, they feature 512Kb of L2 cache, 333DDR FSB and a default clock of 166.6x11.0 (1832Mhz) yet with a little o/c lovin perform like an XP3200+ for a quarter of the cost! You do TheMath (tm)...

Cooling the CPU is a Thermalright SLK-800 heatsink fitted with a Papst 3200rpm 80mm fan. This amazing overclock was achieved with elevated Vcore (1.85V), Vchipset (1.7V) and Vdimm (2.8V) voltage setting. Tests revealed that temperatures where lower with the fan installed to suck warm air from the heatsink rather than blow. This is due mostly to the fact the board is installed horizontally in the case, vertically mounted boards may not achieve the same results. I have one stick of Corsair XMS3500C2PT DDR memory fitted, running at totally stock settings of 434DDR 2-3-3-7-1T although I have increased Vdimm to 2.8 volts. I have ordered a matched pair of Corsair TWINX1024-3200LL memory to take advantage of the dual-bus memory controllers that the nForce2 chipset provides, it should be here in several days.

Installing Linux

I did not install Linux with this motherboard, the system was already running Linux and this motherboard was fitted in place of an existing Gigabyte GA-7VAXP board. Fitting the NF7-S and firing up resulted in a stable Linux system, however numerous devices did not function and disk access was terrible. The following text details the steps taken to resolve these issues.

IDE and DMA

Initially, I found disk access poor and running /sbin/hdparm -tT /dev/hda returned the following pathetic results:-

    /dev/hda:
     Timing buffer-cache reads:   128 MB in  0.60 seconds =213.33 MB/sec
     Timing buffered disk reads:  64 MB in  17.2 seconds = 3.72 MB/sec
Obviously this drive was not running DMA...

Attempts to enable DMA on this drive with:
    /sbin/hdparm -d1
would result in an error. I can't speak for new distro installation's, as the system I build was using an existing drive that had RH9 already installed on it, and it used a source compiled 2.4.21 kernel. Perhaps the main Distro's will have a module available and load it automatically. If you, like me are using a self-compiled kernel, then make sure you have this option set in your config:-
    CONFIG_BLK_DEV_AMD74XX=y
With the correct IDE driver configuration, disk performance is now on par for a Seagate Barracuda IV ATA100 drive running udma5:-
    /dev/hda:
     Timing buffer-cache reads:   128 MB in  0.21 seconds =609.52 MB/sec
     Timing buffered disk reads:  64 MB in  1.58 seconds = 40.51 MB/sec





Temp/Fan/Voltage Sensors.

Head over to the lm_sensors project, download and install both i2c and lm_sensors sources. I used 2.7.0 as this is most current. You compile and install both (i2c first) with the usual:-

    .configure
    make
    make install
The resulting drivers are installed into your current kernel modules tree.

Load the following kernel modules in this order:-
    /sbin/modprobe i2c-proc
    /sbin/modprobe i2c-isa
    /sbin/modprobe w83781d
You can place these command in your /etc/rc.local so they are loaded each time your system boots.
Test by issuing the command "sensors". All being well, you should be presented with something looking like this:-
    [wayne@Criten linux]$ sensors
    w83627hf-isa-0290
    Adapter: ISA adapter
    Algorithm: ISA algorithm
    VCore 1:   +1.82 V  (min =  +1.80 V, max =  +2.20 V)              
    VCore 2:   +2.80 V  (min =  +1.80 V, max =  +2.20 V)              
    +3.3V:     +3.28 V  (min =  +2.97 V, max =  +3.63 V)              
    +5V:       +4.94 V  (min =  +4.50 V, max =  +5.48 V)              
    +12V:     +11.78 V  (min = +10.79 V, max = +13.11 V)              
    -12V:     -12.03 V  (min = -13.21 V, max = -10.90 V)              
    -5V:       -5.20 V  (min =  -5.51 V, max =  -4.51 V)              
    V5SB:      +5.56 V  (min =  +4.50 V, max =  +5.48 V)              
    VBat:      +3.48 V  (min =  +2.70 V, max =  +3.29 V)              
    fan1:     3276 RPM  (min = 3000 RPM, div = 2)                     
    fan2:        0 RPM  (min = 3000 RPM, div = 2)                     
    fan3:        0 RPM  (min = 1500 RPM, div = 4)              ALARM  
    temp1:       +35C    (limit =  +60C) sensor = thermistor
    temp2:       +47.5C  (limit =  +60C) sensor = thermistor
    temp3:       +208.0C (limit =  +60C) sensor = thermistor
    vid:      +2.000 V
    alarms:   
    beep_enable:          Sound alarm disabled
Notes:
  1. temp1 is the motherboard "SYS" thermistor, it is situated between the CPU and memory DIMM's.
  2. temp2 is the under-CPU thermistor.
  3. temp3 is not used on this board.
  4. fan1 is the CPU fan "CPUFAN1".
  5. fan2 is the Chassis CPU fan "CHAFAN1".
  6. fan3 is the Power Supply fan "PSUFAN1".
Check /etc/sensors.conf for config options, and /usr/src/lm_sensors2/doc/chips/w83781d for the documentation about this chipset.

Checking the /proc filesystem, we can see that the actual sensor chip is a W83627HF using the W83781D the sensor driver.
    [root@Criten wayne]# more /proc/bus/i2c-0
    290	W83627HF chip    W83781D sensor driver 

Having searched the support tickets at the lm_sensors project, I see many are trying the new "i2c-nforce2" driver without much success, I then discovered quite by accident that the Abit boards have an ISA based SMBus and use the Winbond sensors... :)

Onboard USB 2.0

My RedHat9 system detected this USB devices and loaded the appropriate kernel modules. They are:-

    usb-ohci               21896   0 (unused)
    ehci-hcd               28104   0 (unused)
    usbcore                86816   1 [usbnet usb-storage hid usb-ohci ehci-hcd]
I found it necessary to setup the BIOS "Onchip PCI Device" options like so:-
    USB Controller: V1.1+V2.0
    - USB Keyboard Support via: BIOS
    - USB Mouse Support via: BIOS

Onboard Firewire

Firewire is supported by the 2.4.20+ kernels (possibly earlier), using the ieee1394 kernel module. I personally have no use for Firewire, I have not actually tested the Firewire ports, but the module is loaded into the kernel... If anyone has experience with Firewire on this board with Linux, please let me know.

Onboard 10/100 LAN and Sound

Head over to the nVidia site and grab the non-GPL Linux nForce Drivers.

I have installed the nVidia LAN driver "nvnet" but not the sound driver. As I use the Alsa sound drivers, I opted to continue this tradition. The onboard sound works rather well with Alsa, I have seen several people complain of skipping but I have not experienced this, probably due to the fact my system run's the Linux Kernel pre-emptive and low-latency patches. To use the onboard sound with Alsa, follow the instructions on the Alsa site for the Intel i810 chipset here.

Links to Related Pages

Manufacturer's Links Drivers & Information