# Problems with Intel 82566DM network card [almost solved]

## merlijn

Hi,

I am trying to get a new box up and running, but the network card is being a bit of a pain. while searching the forums i did find a few similar threads, but none described the exact problem i am having.

When i used the 2007.0 minimal cd, the network card was working fine at gigabit speed. So I can be sure this is not hardware related. I compiled the latest stable kernel (2.6.20-gentoo-r :Cool:  with the e1000 driver and when booting into it, there is a few errors in dmesg:

```

ADDRCONF(NETDEV_UP): eth0: link is not ready

e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

e1000: eth0: e1000_reset: Hardware Error

e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

e1000: eth0: e1000_watchdog: NIC Link is Down

e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex

e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

```

What I make from this, is that it gets the link up at gigabit, then something very strange happens and it falls back to 100 mbit.

lspci:

```
00:19.0 Ethernet controller: Intel Corporation 82566DM Gigabit Network Connection (rev 02)
```

Also on the screen attached (not in dmesg) it displays an error about MTU 64 being too low. (not sure if this is relevant)

What can I do to get the connection to gigabit speeds like they are on the livecd (No, I dont like to switch to a genkernel, thank you). Any thoughts will be appreciated as well as requests for more info  :Smile: 

Cheers,Last edited by merlijn on Sat Jun 02, 2007 7:14 am; edited 2 times in total

----------

## merlijn

I am still trying to get this working properly, but without much luck. On the livecd everything seems to work smoothly, but it falls back into 100 mbit every time i boot my own kernel.

livecd ifconfig eth0:

```

eth0      Link encap:Ethernet  HWaddr 00:1A:92:0E:A6:86  

          inet addr:10.0.0.7  Bcast:255.255.255.255  Mask:255.255.255.0

          inet6 addr: fe80::21a:92ff:fe0e:a686/64 Scope:Link

          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:51 errors:0 dropped:0 overruns:0 frame:0

          TX packets:52 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:7979 (7.7 Kb)  TX bytes:9253 (9.0 Kb)

          Base address:0xd880 Memory:fe9c0000-fe9e0000 

```

livecd dmesg | grep eth0

```

e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection

e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex

eth0: no IPv6 routers present

```

I figured i would apply the settings from the livecd on the install: ifconfig eth0 mtu 1500 -trailers. Still the same problem persists. After this command dmesg gives me:

```

ADDRCONF(NETDEV_UP): eth0: link is not ready

e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

e1000: eth0: e1000_watchdog: NIC Link is Down

e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

eth0: no IPv6 routers present

```

Could anyone please shed some light on what is going on here?

----------

## warrawarra

You can cheat it by running the live cd /dvd and copying /etc/net and similar files directly to your installed hd in the same place.

It is not the right way to do it but it works.

MTU for cable / 100mb/s is generally 1492 and for gignet 9000 or jumbo could be even upto 15000 not sure but 9000 seems right.

With the kernel compile did you have the network device load as part of the kernel or as module.

Someone has had problems with modules loading too soon after the kernel is up and then it kills the hardware.

What would help as well is doing the gentoo.org manual / help how-to compile pages and doing the network part there from scratch.

modprobe bcm43xx -r modprobe bcm43xx 

= unloads then loads it again and see if it is different.

Also load the module via "nano -w /etc/modules.autoload.c/kernel-2.6" and adding say ndiswrapper or apm into the file. This will load it at startup.

Hope this helps will add some more info have to go very it first.

----------

## merlijn

Thank you for your reply, I got lucky last night with my 6th or 7th google session to try to see if anyone else has had this problem, I figured there'd have to be some info available as Intel hardware is generally popular.

First to answer your question, I tried it built-in to start off with, after that failed i have ended up trying completely modular networking support. Both had the same result as described above.

As for the answer to fix this, it appeared for me that the e1000 driver wasnt recent enough (7.3.3-k2 in 2.6.21-gentoo-r2), I have upgraded to the standalone 7.5.5.1 and things are better now. When the network comes up it bangs out every second until you run `ifconfig eth0 down && ifconfig eth0 up` everything seemed stable after this point. More information can be found at http://sourceforge.net/tracker/index.php?func=detail&aid=1684273&group_id=42302&atid=447449 and why the minimal cd did give me proper gbit speeds without any hassles (e1000 7.2.9-k4) remains a big mystery to me.

For future reference this occurred to me on an Asus P5B-VM DO mainboard, but this fix should be applicable to any mobo with the chipset.

As a last question, what is the proper way to automate the ifdown && ifup command after everything has been started in gentoo?

Cheers

----------

## lramos85

I have the exact same problem but instead of having 82566DM I guess I have a newer one:

```
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
```

It uses e1000e instead of e1000, do you think I will have the same solution? Its different version numbers and all.

My Network Card works find on the live cd but not on the system, even after rmmod e1000e and them modprobing it again.

ifconfig shows eth0 up, I don't know what to do.

Thanks.

----------

## merlijn

The e1000e driver is a much newer incarnation of Intels network driver. This could mean that the problem is entirely unrelated, but a similar solution might work for you.

You should first make sure which driver the livecd uses (lspci -k) and which version (probably somewhere in dmesg or the header of the kernel source file). Upgrading to the latest kernel or building the latest version or the module by hand might work or at least provide more detail on your situation.

In my situation eth0 would just come up and work, but it would not give me the full speed until after having to mess around with it a lot.

----------

## lramos85

I have no way to copy and paste since I've been trying to install this, I'll do my best to type it correctly, thanks.

lspci -k (Relevent to Ethernet Controller):

```
00:19.0 Ethernet Controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
```

dmesg | grep eth0

```

eth0: (PCI Express: 2.5GB/s:Width x1) 00:21:...

eth0: Intel(R) PRO/1000 Network Connection

eth0: MAC: 5, PHY: 6, PBA No: 1041ff-0ff

eth0: Unable to allocate MSI interrupt Error: -1

eth0: Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

```

dmesg | grep e1000e (LiveCD):

```

e1000e: Intel(R) PRO/1000 Network Driver - 0.2.0

e1000e: Copyright...

```

modinfo e1000e (on LiveCD):

```

filename: /lib/modules/2.6.24-gentoo-r7/kernel/drivers/net/e1000e/e1000e.ko

version: 0.2.0

...

```

modinfo e1000e (on System 2.6.27-r3):

```

I don't have it as a module, should i?

```

dmesg | grep e1000e (System):

```

e1000e: Intel(R) PRO/1000 Network Driver - 0.3.3.3-k6

e1000e: PCI INT A -> GSI 21 (level, low) -> IRQ 21

e1000e: setting latency timer to 64

```

Any Suggestions? Thanks.

----------

## merlijn

The important part of lspci -k was the driver it uses on the LiveCD, which is on the line after the one you posted.

Compiling it as a module usually does not matter much, but it allows for some easier tweaking, like rmmod && modprobe instead of having to reboot to reload the driver.

You may also want to try leave the driver out of the kernel and using the newest one available (0.4.1.12): http://sourceforge.net/project/showfiles.php?group_id=42302&package_id=272252

Cheers,

----------

## lramos85

I'm floored...I tried using different versions of the drivers/kernels, I even tried using the same stuff as the livecd with no luck. Then check this out: I go out and buy a different NIC, which uses Tulip drivers, its a Linksys NC 100...I install that, it gives me an IP Address, just like the intel card, everything seems to work but when I try to  ping www.google.com it doesn't work. 

I've gone through the dmesg's and the thing that overlaps is: 

```

eth0: no IPv6 routers present

eth1: no IPv6 routers present

```

There are some other stuff there too but I can't copy and paste. I'm starting to think it has nothing to do with my NIC's or their drivers...what else can it be?

Like I said: I get an IP address on both cards, they both are recognized and everything but when I try to access the web...no luck.

Thanks.

----------

## pgf

 *lramos85 wrote:*   

> There are some other stuff there too but I can't copy and paste. I'm starting to think it has nothing to do with my NIC's or their drivers...what else can it be?

 

What dos your routing look like? Try netstat -an and make sure you can ping your default gateway. Also, i there a firewall in between you and Google that is blocking ICMP (ping)?

----------

## lramos85

Got it working, it was a problem with /etc/resolv.conf and the nameserver.

https://forums.gentoo.org/viewtopic-t-715496-highlight-.html

----------

