Hei! Juhan Kundla kirjutas:
[...] > I have weird problem with my NIC. It has the Realtek 8169 chip on it. > The r8169 kernel module should drive it. The floppy, it came with, has > the r8169.c source on it. > > But when i compile the r8169 kernel module (either the one from kernel > source tree or the one from the floppy) it just won't load. I tried > different kernel versions and configurations, nothing. The r8169 module > will not initialize the interface. I tried both 2.6.8 and 2.4.27 > kernels. > > Now begins the weird stuff. lspci and /proc/pci shows, that this card > says, that it is actually with realtek 8129 chip. This means, that > 8139too module should actually drive this card. The 8129 is Fast > Ethernet, but i bought a gigabit ethernet card and the chip has 8169 > written on it! This problem is now sorted out. Here is the solution, if someone does this kind of bookkeeping. My NIC announces wrong device ID on PCI bus. It should be 8169, but it actually is 8129. Operating system drivers expect certain device ID and they'll load only when this device ID matches. That is why the r8169 module from kernel did not initialize this NIC. Ironically, the device ID 8129 belongs to another realtek NIC, which is drived by 8139too kernel module. This was a source to much of confusion. This 8139too driver loaded, but gave lots of puzzling errors. In the beginning i was thinking, that there is something wrong with my NICs firmware, perhaps some terrible mixup had happened in the factory. In my worst nightmares i was dreaming, that they are shipping 8169 NICs with 8129 firmware and vice versa. Well, luckily this is not the case. :-) Actually seems, that my NIC hardware has one bit of information reversed by accident. 1000 0001 0110 1001 = 8169 1000 0001 0010 1001 = 8129 As a workaround i changed the Realtek's r8169 driver source to match this incorrect device ID. See the patch below, with my changes. This worked only with driver from Realtek website, but not with the driver from kernel (2.6.8) source tree. Complete solution was to return this defective NIC and get a new one. Juhan diff -urN r8169/src/r8169_n.c r8169.new/src/r8169_n.c --- r8169/src/r8169_n.c 2004-08-09 11:54:32.000000000 +0300 +++ r8169.new/src/r8169_n.c 2004-10-18 17:59:35.000000000 +0300 @@ -183,7 +183,7 @@ static struct pci_device_id rtl8169_pci_tbl[] __devinitdata = { - { 0x10ec, 0x8169, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, + { 0x10ec, 0x8129, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, {0,}, }; -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]