doc:appunti:hardware:ga-m55plus-s3g

Mainboard GA-M55plus-S3G Rev. 1.x

I purchased this motherboard manufactured by Gigabyte from Next, an Italian chain of franchising shops. Here it is the official overview page from Gigabyte site.

ga-m55plus-s3g

I chosed this one because it has plenty of features and expansion slots:

  • AMD Athlon™64 X2/ Athlon™64 socket AM2 platform
  • Northbridge: nVIDIA® GeForce 6100
  • Southbridge: nVIDIA® nForce 430
  • 4 PCI slots
  • 1 PCI Express x 16 slot
  • 2 PCI Express x 1 slot
  • 1 External parallel port
  • 1 External serial port
  • 1 Externa FireWire port
  • 4 External USB 2.0/1.1 ports
  • 2 IDE connectors
  • 4 SATA 3Gb/s connectors
  • 1 RJ-45 port Marvell 88E1116 Gigabit Ethernet controller

Assembling notes

I'm very satisfied by the features of this motherboard and the price was fair (89.50 €). What really disappointed me are the mechanical caracteristics.

First of all the CPU mounting has a plastic plate on the back side of the PCB, which however is absolutely insufficient in preventing the bend of the board itself when the CPU is locked in the socket.

Also the heat sink on the Northbridge is absolutely inadequate. After a few minutes of work with the case opened, you cannot touch the sink without burning your finger. IMHO a fan or a bigger heat sink is required.

I removed 0.3 mm of thickness from the metal bracket that retains the CPU, so the lock force is lower and PCB bending is less horrible. In the photo the bend is still noticeable after the hack, let you imagine how it was before! On the Northbridge I replaced the heat sink with two (!) bigger ones and plenty of thermal grease: an horrible hack!

ga-m55plus-s3g beding ga-m55plus-s3g heat sink ga-m55plus-s3g heat sink

Using Linux kernel 2.6.17

Kernel modules required

Subsystem Kernel module Kernel config
EIDE amd74xx CONFIG_BLK_DEV_AMD74XX=y
SATA sata_nv CONFIG_SCSI_SATA_NV=y
Ethernet forcedeth CONFIG_FORCEDETH=m
USB 2 ehci-hcd, ohci_hcd CONFIG_USB_EHCI_HCD=m, CONFIG_USB_OHCI_HCD=m
FireWire ieee1394 CONFIG_IEEE1394_RAWIO=m
Audio snd_hda_intel, snd_hda_codec CONFIG_SND_HDA_INTEL=m, CONFIG_SND_AC97_CODEC=m

BIOS

EIDE

00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1)

The nForce 430 Southbridge incorporates an IDE controller supporting ATA33/66/100/133. Using the amd74xx kernel driver, the using_dma feature is automatically detected and activated (according to hdparm(8) output).

SATA

00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1)
00:0f.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1)

The nForce 430 Southbridge incorporates a Serial-ATA controller with four ports. The kernel module to load is sata_nv. I attached an hard disk Western Digital WD1600JS 160Gb SATA2, as a rough performance test I run this command:

# hdparm -t /dev/sda
/dev/sda: Timing buffered disk reads:  182 MB in  3.01 seconds =  60.39 MB/sec
# hdparm -T /dev/sda
/dev/sda: Timing cached reads:   4080 MB in  2.00 seconds = 2040.90 MB/sec

Ethernet

00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a3)

The nVIDIA nForce 430 Southbridge incorporates a Marvell gigabit Ethernet controller drived by the forcedeth kernel module.

The wake-on-LAN function is supported via the MagicPacket; enter the BIOS Power Management Setup menu and enable the PME Event Wake Up option.

Unfortunately it does not work out of the box with Linux. On the internet there are several pages which suggest some fixes for this problem; one is using the pci-config to change the sleep state of the card, another is double-clicking the power button on startup. None of this fix works in my case, the definitive solution was found on this page.

The problem seems to be a bug in the forcedeth module, when you use the etherwake utility you must provide the MAC address in the reversed order. If the MAC address is 00:0F:EA:53:1C:E6, you can wake the motherboard running this command from another PC:

etherwake -i eth0 E6:1C:53:EA:0F:00

As usual you must enable the wake-on-LAN function before poweroff with this command:

/usr/sbin/ethtool -s eth0 wol g

Using Debian, you can conveniently add this command into /etc/network/interfaces as an up option:

auto eth0
iface eth0 inet static
    address 192.168.2.6
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.255
    gateway 192.168.2.2
    up /usr/sbin/ethtool -s eth0 wol g || true

Audio

00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2)

The Southbridge nForce 430 incorporates a Realtek ALC883 CODEC chip. The ALSA modules required are snd_hda_codec and snd_hda_intel.

A basic sound playback works out of the box with Linux; Master volume, PCM, Line-IN, CD and Mic channels are available into the ALSA mixer. The rear jacks for Line-OUT, Line-IN, MIC and the internal CD-Audio connector work as expected.

Unfortunately audio capture is less satisfactory: capture from the Mic does not extend to the full 16 bit range so it is always low and it is not centered, as you can see from the picture. As I switched on the capture channel, the silence wave is shifted up from the zero level. Loud sounds are clipped far before the 16 bit limit:

Mic capture

I experienced weird problems due - I think - the autoconfigure features of this audio board. Sometimes the mixer level for capture was uneffective: capture from Line-IN was sometimes locked very high and sometimes locked very low, despite how I slide the cursor. Other problems occurred experimenting with the load/unload of snd-hda-intel module and its options. Most likely probing the chip can leave the chip in an insane state (e.g. PCM level was missing), untill power cycled.

I tested both Linux kernel 2.6.17 with the included ALSA 1.0.11rc4 and kernel 2.6.18 adding the new ALSA 1.0.13. With 1.0.11rc4, the alternative Rockwell 883 chip models break the mixer function (see ALSA-Configuration.txt for known snd-hda-intel models):

# modprobe snd-hda-intel model=3stack-dig
hda_codec: num_steps = 0 for NID=0x7
amixer: Mixer hw:0 load error: Invalid argument
...
# alsamixer
alsamixer: function snd_ctl_open failed for default: No such device

Those alternative models work instead with kernel 2.6.18 and ALSA 1.0.13, but I got problems with interrupts, requiring me to boot with irqpoll boot parameter.

Basic sound setup

The program alsamixer reports the card as an HDA NVidia with a Realtek ALC883 chip. The names of the channels are a bit misleading:

Input channel Function
Headphone ?
PCM PCM
Front Master volume (unamplified out, green jack)
Front Mic ?
Surround ?
Center ?
LFE ?
Side ?
Line Line-in (blue jack)
CD CD (intenal CD audio connector)
Mic Mic (red jack)
IEC958 ?
Input Source ?
Input Source 1 Rec source: Mic, Front Mic, Line or CD
Capture channel Function
IEC958 ?
Capture On/Off and level capture of Input Source 1
Capture 1 ?

Advanced sound setup

With the provided Windows software and driver, the audio can be configured to use 2, 4, 6 or 8 audio channels:

  • 2 channels Center/Subwoofer Speaker Out (orange)
  • 2 channels Surround Speaker Out (Rear Speaker Out) (black)
  • 2 channels Side Speaker Out (grey)
  • 2 channels Line Out (Front Speaker Out) (green)

Five audio jacks (all but the Mic) can be reconfigured via software to perform different functions. The internal audio connector can be software configured to provide HD Audio or AC'97 Audio I/O channels. There is also the connector for digital audio IEC958 (S/PDIF).

I did not try to use this advanced sound features with Linux, may be a 6.1 speakers system can be used to reproduce 6.1 coded audio, or standard stereo audio can be routed to a 6.1 speakers system. You should definitively read the ALSA Multi-channel Audio mini-HOWTO .

FireWire (IEEE 1394)

01:0e.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)

VGA

00:05.0 VGA compatible controller: nVidia Corporation C51G [GeForce 6100] (rev a2)

Download

doc/appunti/hardware/ga-m55plus-s3g.txt · Last modified: 2006/11/17 16:32 by 127.0.0.1