# Intel 82541PI Refuses to do Gigabit

## slaterson

just put an Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05) in my server, compiled the e1000 driver as a module and statically in the kernel (tried both methods) but it refuses to do gigabit, only 100 mbit.  the card is plugged into a gigabit switch that has been performing fine for a couple years now, i also tried two different cables, both of which have worked in gigabit networks without issue.

this server also has an Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 01), which uses the e100 driver.  i tried removing the e100 driver from my kernel config to no avail, thinking that maybe the two drivers were conflicting with one another.

does this card really work at 1000 mbit/s?

i also tried to force it to gigabit using

```
ethtool -s eth0 speed 1000
```

that didn't work...  the lights on the card and the switch port went dark after issuing the ethtool command, however came back on a few seconds later and the card was still running at 100 mbit/s.  dmesg simply states that the card is brought up in 100 mbit/s full duplex.

do i need a different card?

thanks

----------

## BradN

The best thing to try would be seeing if windows or other livecd's can get gigabit speeds using the same hardware (card, cable, and everything).

----------

## slaterson

unfortunately it is very hard to test the card in another machine.  the card is in my server, if i take it out i loose connectivity.  i'm going to try to find another inexpensive intel card to try, unless someone has another way to diagnose this.

thanks

----------

## slaterson

i put another brand new gigabit card (this time the linksys 1032) in the server, replacing the intel card that was also brand new.  it won't do gigabit either.  i have a feeling my linksys gigabit switch is dieing, however other computers attached to the same switch operate at gigabit speed (laptop).

----------

## infinite1der

Last I recall, gigabit must be auto-negotiated. So, if you have any "forced" settings (either in the if_up-type scripts or with the module) try removing them and going with a vanilla config.

Is the switch managed? Tried a different port on the switch? Can you use a crossover cable to another device that has a gigabit card?

--JamesT

----------

## slaterson

here is my output from ethtool:

```
# ethtool eth0

Settings for eth0:

        Supported ports: [ TP ]

        Supported link modes:   10baseT/Half 10baseT/Full

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

        Advertised auto-negotiation: Yes

        Speed: 100Mb/s

        Duplex: Full

        Port: Twisted Pair

        PHYAD: 0

        Transceiver: internal

        Auto-negotiation: on

        Supports Wake-on: pumbg

        Wake-on: g

        Current message level: 0x00000033 (51)

        Link detected: yes
```

it isn't a managed switch.  i have tried several ports also, even a known good port.  odd thing, the other gigabit connection i have to the same switch has never failed or flickered.

i ordered a new gigabit wireless router today, should have it early next week to test.

thanks

----------

## paul_zm

@TS: Did you find a fix? I have exactly the same card and exactly the same problem. 

I have also used ethtool and got the same results you described.

The strange thing is that it has worked earlier, but now I cannot get it to

1000Mbit again. And sometimes it works for a few days or hours and then 

it suddenly starts working on 100Mbit???

----------

## slaterson

 *paul_zm wrote:*   

> @TS: Did you find a fix? I have exactly the same card and exactly the same problem. 
> 
> I have also used ethtool and got the same results you described.
> 
> The strange thing is that it has worked earlier, but now I cannot get it to
> ...

 

i never got it fixed.  the card now sits in my closet as a backup in case the card in the server fails.  i got a linksys gigabit nic that works perfectly to replace the intel nic.

----------

## paul_zm

 *slaterson wrote:*   

>  *paul_zm wrote:*   @TS: Did you find a fix? I have exactly the same card and exactly the same problem. 
> 
> I have also used ethtool and got the same results you described.
> 
> The strange thing is that it has worked earlier, but now I cannot get it to
> ...

  Ok, thanks for the answer. I am probably gonna do something similar.

----------

## Mousee

Sorry if this is a bit of an old thread, but I spent most of yesterday pulling my hair out over why I couldn't get this brand new Intel Gigabit NIC (82541PI) to work at the advertised 1000Mb/s speeds.

Thankfully I did find a solution that worked for me... hopefully it works for anyone else searching the forums with a similar problem.

The Ubuntu discussion group I found here is where I found the info below (so credit to those guys!).

First download the latest Intel drivers for the card from Intel's site directly. If you google "intel driver 82541PI" you should find the product support page and thus the download for the driver. The driver I'm using currently, for reference, is 8.0.13 built 7/08/2009.

Second, extract the driver package somewhere. I just used my home directory. Once extracted, use the following commands to build and install the e1000 driver as a module as well as activate it. Be sure to use sudo if you're running this as a normal user (as you should be!):

make CFLAGS_EXTRA=-DE1000_MASTER_SLAVE=1 install

rmmod e1000

modprobe e1000 AutoNeg=0x28

And there you have it - a fully functional Intel 82541PI Gigabit NIC!

To also note - I've found that for myself, with the 8.0.13 drivers at least, compiling the drivers without using any of the above options/cflags worked to enable full gigabit mode, however I do like the AutoNeg option as it removes the 10Mbps Auto Negotiation method from the active field (I don't have anything that uses that speed...).

Anyways, hope that helps someone else!  :Smile: 

----------

## ztom

Just sitting on same problem with new intel DP55WB board and integrated NIC.

Using e1000e module

While the exact same hardware/cables works perfectly under 64bit windows7 going to UNSEEN(for windows) speeds of 60..70+ MB/sek over samba with other gentoo box, 

it auto-negotiates only to 10MBit Full duplex under gentoo on its own and forcing 

```
ethtool -s eth0 advertise 0x028 autoneg on
```

works only for 100MBit, 0x020 will simply fail to negotiate anything

..going to search for those intel drivers and see what's going on..

----------

## ztom

driver from intel support indeed works.. better.

even better than under windows, going at stabile 90+ MB/sek over nfs

the NIC's name lspci gave me ( 82578DC ) was no help at all. it wasn't even mentioned in any downloads.

Just search for "Network Adapter Driver for PCI-E Gigabit Network Connections under Linux"

in http://downloadcenter.intel.com

Compiled without any additional tweaks, just 

```
make
```

 and 1000GB led on the switch went on right after 

```
modprobe e1000e
```

.

For reference, current version was 1.0.15.0.

Probably the 2.6.32 kernel comes with this version.

----------

## doctork

 *ztom wrote:*   

> driver from intel support indeed works.. better.
> 
> even better than under windows, going at stabile 90+ MB/sek over nfs
> 
> the NIC's name lspci gave me ( 82578DC ) was no help at all. it wasn't even mentioned in any downloads.
> ...

 

A quick look at the source for the e1000e driver in the 2.6.31 kernels indicates that they claim to support the 82578DC.

--

doc

----------

## ztom

 *doctork wrote:*   

> ...
> 
> A quick look at the source for the e1000e driver in the 2.6.31 kernels indicates that they claim to support the 82578DC.
> 
> --
> ...

 

What a surprise.. well ofcourse, device id 8086:10f0 is recognized by the kernels e1000e driver, but that's exactly how well it works afterwards. Current situation is probably even more confusing compared to the case, were it would not even load. I wasted hours on figuring out how to trick it into negotiating higher speed instead of few minutes on just going and downloading a working driver.

At the same time I am mildly happy that it works at all, as none of the current live CD's I tried would give me even eth0 device. Had to use emergency PCI card for installation (didn't try ubuntu 9.10 beta, since I ran out of CD-R's late in the evening).

----------

