linux sky2 network driver

My main linux server here has a ASUS P5LD2 motherboard. I got it when the core 2 duo chips came out and it was one of the few motherboards that was affordable and that supported the core 2 duo. In many ways it’s quite a good motherboard as it has four SATA connectors and quite a few IDE connectors (you’re lucky to find one IDE channel on most modern socket 775 boards). This is great if you want to run lots of drives in some sort of RAID arrangement (I use LVM2 on top of md RAID5 using three drives)

Anyway I run Debian Etch on the box. It works great except occasionally the network just stops. By stops I mean that you can’t ping or connect to anything. The only way to bring it back to life is to down eth0, rmmod the network driver module, modprobe the network driver module and up the eth0 interface again. Very painful and very dodgy.

The built in gigabit NIC on the ASUS motherboard is a Marvell 88E8053 PCI-E Gb LAN controller. In linux you use the sky2 driver for this (there is a 3rd party driver, but I find these next to useless as they often only work with certain kernel versions … and are usually rarely updated). If you google for ‘linux sky2 problem’ you’ll find heaps of forum discussion about network problems similar to mine. It sounds like if you load up the network interface it seems to shut down. Now, Debian Etch still runs a 2.6.18 kernel. So given that the latest is 2.6.26, I thought it’d be worthwhile upgrading the kernel to see if that fixes the network problem. Now, this server also has a nvidia video card and a Hauppage PVR 500 card for recording TV. I quite liked Etch when I put it on this box as Debian includes the necessary ivtv drivers to make the TV card go. The nvidia card is generally easy to get going but does required getting the nvidia linux driver from nvidia.

So initially I tried 2.6.26. Doing a make oldconfig highlights that there have been a lot of changes since 2.6.18. I compiled the kernel into a debian package. Tried it. Got a kernel Ooops on booting (I tried a few different compile options and still got the Oops) so I thought I’d go back to 2.6.24 as I’ve had that kernel running on a few other boxes … and it was still much more recent than 2.6.18. Using 2.6.24 I got the box to boot OK. Then I had some trouble getting the ivtv stuff to work … as it seems to change constantly so far as the kernel is concerned. I ended up getting some new firmware files from the site, reseating the card and then it seemed to work. For the nvidia card I had to use a newer driver. So it took a while, but it all seems to be running again.

So far so good on the network driver. It hasn’t stopped working so far.