Installing a Reluctant Network Card on Debian

I was having some trouble installing a network card on my home server.  It wasn’t being autodetected.  I’m weak on Linux hardware  stuff, and networking in particular (since it’s always *just worked*), so this was starting from scratch.  I had a few extra handicaps, in that I didn’t have the orginal box, and this card was one I’d bought months ago, physically installed, and forgetten to configure, so my bad!  I didn’t even know the model number!

First, see what the system can see:

$ lspci -v

One of the entries was (in part):

Ethernet controller:  D-Link System, Inc. unknown device “4b01”

This is clearly the offender.

After googling around for “debian install networking card” and finally ‘unknown device “4b01″‘, I got:

Which had the surprisingly simple answer:

$ update-pciids


$ lspci -v

0000:00:0b.0 Ethernet controller: D-Link System Inc DGE-530T Gigabit Ethernet Adapter (rev 11) (rev 11)
Subsystem: D-Link System Inc DGE-530T Gigabit Ethernet Adapter (rev 11)
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 11
Memory at d6080000 (32-bit, non-prefetchable) [size=16K]
I/O ports at ec00 [size=256]
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data

Thank the gods!

Now, getting it running:

First I tried:

then to:

$ modprobe sk98lin   # no output, showing it’s there

But the card still didn’t work.  This didn’t surprise me, since the interwebs was full of contradictory opinions on sk98lin, skge, and the like, and the information was old. As it turns out, my drivers were just old, and the new skge driver was the right answer.

I updated the kernal from 2.6.8-k7 to 2.6.26-k7, rebooted, and things were mostly fine.  Except that the new card was being read as eth1 instead of eth0.

How to get the cards into the right order, if we care about such things:

Specifically, I added some udev rules to the created file:

cat /etc/udev/rules.d/10-network.order.grl.rules  #  grl is me 🙂

KERNEL==”eth*”, ATTR{address}==”00:05:1a:a1:b3:11″, NAME=”eth1″
KERNEL==”eth*”, ATTR{address}==”00:1c:1a:f3:b4:33″, NAME=”eth0″

Then another reboot.

$ dmesg | egep “eth[01]”

[    5.271221] eth0: RealTek RTL8139 at 0xe800, 00:05:1a:a1:b3:11, IRQ 10
[    5.271334] eth0:  Identified 8139 chip type ‘RTL-8139C’
[    5.272657] skge eth1: addr 00:1c:1a:f3:b4:33
[    9.102204] udev: renamed network interface eth1 to eth0
[    9.141651] udev: renamed network interface eth0_rename to eth1
[   20.912691] skge eth0: enabling interface
[   21.068972] eth1: link up, 100Mbps, full-duplex, lpa 0x45E1
[  251.460388] skge eth0: disabling interface
[  254.191092] skge eth0: enabling interface

I’m happily using it now, but this installation process, in a word, sucked.  Internet information was contradictory,  and it seems the hardware installation is one of the areas where linuxes vary the most.  Boo-urns on that.

Should this happen again, my new installation strategy will be:

  1. install the card, and if it doesn’t work,
  2. update the kernel
  3. if it’s still not working, throw it away

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s