A few Tweaks to get Shuttle SN95G5 work well with Linux
From BB-ZONE
|
After I got the Shuttle ST62K to use as PVR I liked it so much, I had to get another one. My old desktop machine (a dual P3 1000) machine got replaced by a Shuttle SN95G5V2 Powered by an AMD Athlon64 3200+ and running SuSE Linux Professional 9.2. The box works nicely. But I found two minor issues that needed a bit tuning: The on-board Gigabit NIC didn’t want to work without throwing a lot of error messages like these: Jan 21 13:26:35 linux kernel: eth0: – ERROR –
Jan 21 13:26:35 linux kernel: Class: internal Software error
Jan 21 13:26:35 linux kernel: Nr: 0x19e
Jan 21 13:26:35 linux kernel: Msg: Vpd: Cannot read VPD keys
Jan 21 13:26:35 linux kernel: eth0: – ERROR –
Jan 21 13:26:35 linux kernel: Class: internal Software error
Jan 21 13:26:35 linux kernel: Nr: 0x19e
Jan 21 13:26:35 linux kernel: Msg: Vpd: Cannot read VPD keys
It looks like Shuttle messed up the BIOS and the checksum calculation of the driver fails. If you disable the checksum check (here is a small patch to the sk98lin driver) it works perfectly stable and even operates at Gigabit speed. I did it with a very small patch to @@ -507,12 +496,12 @@
x += pAC->vpd.vpd_buf[i];
}
- if (x != 0) {
- /* checksum error */
- SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL,
- ("VPD Checksum Error\n"));
- return(1);
- }
+// if (x != 0) {
+// /* checksum error */
+// SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL,
+// ("VPD Checksum Error\n"));
+// return(1);
+// }
/* find and check the end tag of the RW area */
if (!(r = vpd_find_para(pAC, VPD_RW, &rp))) {
The second issue is the sound card driver. I don’t have a 5.1 setup at my desk, so I like to use plain stereo sound. After a bit experimenting with the rear sound jacks (forget the mainboard manual, it’s obviously faulty) I found that you have to connect the speakers to the middle one of the three jacks (the manual names it Rear-Out Port Connector). OSS playback is distorted (something to address later...), but ALSA playback works very well. But in the standard setup, the controls for Master and Surround are swapped. This can be easily correted by passing the option ac97_quirk=3 to the snd-intel8x0 module. For SUSE Linux all you need to do is to add the line options snd-intel8x0 ac97_quirk=3 to |
|
