Realtek NIC Installation Problem

Installed a TP-Link TG-3269 Gigabit card in a machine running OS 11.3 32 bit, when I go into Yast, Network Devices, Network to try configuring the card I get this errormsg:

Unable to configure the network card because the kernel device (eth0, wlan0) is not present. This is mostly caused by missing firmware (for wlan devices). See dmesg output for details.

Couldn’t find any mention of the card in dmesg’s output, (though the 8139 onboard card is in there) there is some stuff about pci host bridge but I don’t know whether they would be relevant or not

The chip on the card says it’s rtl8169sc but lspci lists it as being 00:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8369 (rev 10)

Done some googling and there don’t seem be any drivers for a Realtek 8639 and it returns no matches from a search on realtek’s site, but there is a driver there for rtl8169sc chips, which I downloaded and installed, no errors when installing it

Even after a reboot I still get the same error in Yast’s Network Settings screen, lspci still lists it as 8369 and the device isn’t listed at all if I run ifconfig

Don’t really know what to try next and my best friend google isn’t really telling me anything that I don’t already know and/or haven’t tried so any help or suggestions on what I can try now will be much appreciated

On 11/30/2010 05:06 PM, Ecky wrote:
> The chip on the card says it’s rtl8169sc but lspci lists it as being
> 00:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8369
> (rev 10)

Please post the output of ‘lspci -nn’ for this device. The PCI IDs are needed.

> Done some googling and there don’t seem be any drivers for a Realtek
> 8639 and it returns no matches from a search on realtek’s site, but
> there is a driver there for rtl8169sc chips, which I downloaded and
> installed, no errors when installing it
>
> Even after a reboot I still get the same error in Yast’s Network
> Settings screen, lspci still lists it as 8369 and the device isn’t
> listed at all if I run ifconfig

The 8369 is in ROM and will not change. It would seem that the driver is not the
correct one.

> Don’t really know what to try next and my best friend google isn’t
> really telling me anything that I don’t already know and/or haven’t
> tried so any help or suggestions on what I can try now will be much
> appreciated

Once the PCI ID is available, we will know what driver is needed, and if it
needs external firmware.

Thanks for the quick reply there mate, would’ve got back to ya sooner but I was wallowing in a much needed bath

Here’s the lspci-nn output:

00:00.0 Host bridge [0600]: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge [1106:3189] (rev 80)
00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8237/VX700 PCI Bridge [1106:b198]
00:05.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
00:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. Device [10ec:8369] (rev 10)
00:10.0 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80)
00:10.1 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80)
00:10.2 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 80)
00:10.3 USB Controller [0c03]: VIA Technologies, Inc. USB 2.0 [1106:3104] (rev 82)
00:11.0 ISA bridge [0601]: VIA Technologies, Inc. VT8235 ISA Bridge [1106:3177]
00:11.1 IDE interface [0101]: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE [1106:0571] (rev 06)
00:11.5 Multimedia audio controller [0401]: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller [1106:3059] (rev 50)
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon R200 QM [Radeon 9100] [1002:514d]

As I’m sure you can see it’s this entry:

00:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. Device [10ec:8369] (rev 10)

On 11/30/2010 06:06 PM, Ecky wrote:
>
> Thanks for the quick reply there mate, would’ve got back to ya sooner
> but I was wallowing in a much needed bath
>
> Here’s the lspci-nn output:
>
> 00:00.0 Host bridge [0600]: VIA Technologies, Inc. VT8377 [KT400/KT600
> AGP] Host Bridge [1106:3189] (rev 80)
> 00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8237/VX700 PCI
> Bridge [1106:b198]
> 00:05.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
> 00:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> Device [10ec:8369] (rev 10)
> 00:10.0 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI
> USB 1.1 Controller [1106:3038] (rev 80)
> 00:10.1 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI
> USB 1.1 Controller [1106:3038] (rev 80)
> 00:10.2 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI
> USB 1.1 Controller [1106:3038] (rev 80)
> 00:10.3 USB Controller [0c03]: VIA Technologies, Inc. USB 2.0
> [1106:3104] (rev 82)
> 00:11.0 ISA bridge [0601]: VIA Technologies, Inc. VT8235 ISA Bridge
> [1106:3177]
> 00:11.1 IDE interface [0101]: VIA Technologies, Inc.
> VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE [1106:0571] (rev
> 06)
> 00:11.5 Multimedia audio controller [0401]: VIA Technologies, Inc.
> VT8233/A/8235/8237 AC97 Audio Controller [1106:3059] (rev 50)
> 01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon
> R200 QM [Radeon 9100] [1002:514d]
>
> As I’m sure you can see it’s this entry:
>
> 00:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> Device [10ec:8369] (rev 10)

Yes, that is your device. None of the drivers in the kernel, nor the one I
downloaded (r8169-6.013.00.tar.bz2) support your device.

You can add your device to the PCI ID table with the following patch:

Index: r8169-6.013.00/src/r8169_n.c

— r8169-6.013.00.orig/src/r8169_n.c
+++ r8169-6.013.00/src/r8169_n.c
@@ -114,6 +114,7 @@ static const struct {
static struct pci_device_id rtl8169_pci_tbl] = {
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },

  •   { PCI_DEVICE(PCI_VENDOR_ID_REALTEK,     0x8369), 0, 0, RTL_CFG_0 },
    

{0,},
};

Add that new line (the one with the + on the left) and rebuild the driver. If it
works, I’ll push the change upstream. If it happens fairly soon, the change
should be in openSUSE 11.4.

Just wanna check I have this right before I proceed

You can add your device to the PCI ID table with the following patch:
In the driver’s installation script /r8169-6.014.00/src/r8169_n.cis a sction that looks like this:

static struct pci_device_id rtl8169_pci_tbl] = {
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
{0,},
};

Am I meant to add the line + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8369), 0, 0, RTL_CFG_0 }, so that the scection then looks like:

static struct pci_device_id rtl8169_pci_tbl] = {
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
+ { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8369), 0, 0, RTL_CFG_0 },
{0,},
};

I take it the + is meant to be there?

Couldn’t find it at first because I was looking for something starting with:

— r8169-6.013.00.orig/src/r8169_n.c
+++ r8169-6.013.00/src/r8169_n.c
@@ -114,6 +114,7 @@ static const struct {

Which isn’t there

There is a static const struct { section but it isn’t like what you posted, here’s how the file looks at present:

static const struct {
	unsigned int region;
	unsigned int align;
} rtl_cfg_info] = {
	[RTL_CFG_0] = { 1, NET_IP_ALIGN },
	[RTL_CFG_1] = { 2, NET_IP_ALIGN },
	[RTL_CFG_2] = { 2, 8 }
};

static struct pci_device_id rtl8169_pci_tbl] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8167), 0, 0, RTL_CFG_0 },
	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8169), 0, 0, RTL_CFG_0 },
	{0,},
};

If I’m understanding you correctly after I edit should it look like this

static const struct {
	unsigned int region;
	unsigned int align;
} rtl_cfg_info] = {
	[RTL_CFG_0] = { 1, NET_IP_ALIGN },
	[RTL_CFG_1] = { 2, NET_IP_ALIGN },
	[RTL_CFG_2] = { 2, 8 }
};

static struct pci_device_id rtl8169_pci_tbl] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8167), 0, 0, RTL_CFG_0 },
	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8169), 0, 0, RTL_CFG_0 },
      + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8369), 0, 0, RTL_CFG_0 },
	{0,},
};

Just want to make sure I’m doing it right so I don’t break anything

Added the line (without the + sign) and reinstalled the driver

In Yast Network Devices the second card was then showing as a realtek 8139, I thought ‘wrong card but let’s try a configuration anyway’, system then crashed when Yast was trying to apply the settings and I can now only boot the machine in failsafe mode

On 12/01/2010 07:36 AM, Ecky wrote:
>
> Added the line (without the + sign) and reinstalled the driver
>
> In Yast Network Devices the second card was then showing as a realtek
> 8139, I thought ‘wrong card but let’s try a configuration anyway’,
> system then crashed when Yast was trying to apply the settings and I can
> now only boot the machine in failsafe mode

The + sign is part of the patch syntax. It should not have been included.

This is the wrong driver for your card. You should remove it or blacklist that
module.

I have no idea what driver is needed for your card. There did not seem to be
anything else on the Realtek site that looked appropriate. Sorry.

Yeah mate, it’s a right pain to be honest, I’d bought four of these cards all for machines running OS 11.3

I did have a look through the driver cd that came with them and there is a linux driver on there so I thought I’d give it a try, returns this error when trying to install it:

/home/ecky/TPLINK_CD/src/Makefile:28: /usr/src/linux-2.6.34.7-0.5/src/Makefile_linux26x: No such file or directory
make[5]: *** No rule to make target `/usr/src/linux-2.6.34.7-0.5/src/Makefile_linux26x’. Stop.

From some other output it seems to be trying to use r1000.ko from /lib/modules/2.6.34.7-0.5-default/kernel/drivers/net/
which doesn’t exist and I have no idea what provides r1000.ko, again google isn’t much help there

On 12/01/2010 10:36 AM, Ecky wrote:
>
> Yeah mate, it’s a right pain to be honest, I’d bought four of these
> cards all for machines running OS 11.3
>
> I did have a look through the driver cd that came with them and there
> is a linux driver on there so I thought I’d give it a try, returns this
> error when trying to install it:
>
> /home/ecky/TPLINK_CD/src/Makefile:28:
> /usr/src/linux-2.6.34.7-0.5/src/Makefile_linux26x: No such file or
> directory
> make[5]: *** No rule to make target
> `/usr/src/linux-2.6.34.7-0.5/src/Makefile_linux26x’. Stop.
>
> From some other output it seems to be trying to use r1000.ko from
> /lib/modules/2.6.34.7-0.5-default/kernel/drivers/net/
> which doesn’t exist and I have no idea what provides r1000.ko, again
> google isn’t much help there

Please cd to your home directory and run the following command:

tar jcf TPLINK_CD.tar.bz2 TPLINK_CD

and send the file TPLINK_CD.tar.bz2 to the address I put in the private message
just sent to you. I get enough junk mail, thus I don’t post my email address
quite this publicly.

I’ll send you the file mate, but I’ve made some sort of progress

I put one of the other cards into another OS 11.3 machine running the x86_64 version, card was automatically detected as rt8169 and works perfectly ‘out of the box’

Seems that the 32 bit machine I tried first is either detecting the card wrongly, or the card itself isn’t identifying itself correctly

I’m going to try the card in the other pci slots and if it’s behaving the same try it in another 32 bit machine, get back to you as soon as I’ve done that

Tried the original card in another pci slot on the original machine and it worked fine, I’m kicking myself for not thinking to try that first

Sorry for wasting your time lwfinger and thanks a bunch for trying to help me out

On 12/01/2010 03:36 PM, Ecky wrote:
>
> Tried the original card in another pci slot on the original machine and
> it worked fine, I’m kicking myself for not thinking to try that first
>
> Sorry for wasting your time lwfinger and thanks a bunch for trying to
> help me out

When I saw the driver was from a long time ago, I wondered why it was not
already in Linux. You must have had a contact problem when you first inserted
it. Good luck.