[CentOS] hosts fail to negotiate 1000Mbps speed

Thu Jan 26 01:40:41 UTC 2006
Akop Pogosian <akopps at LS.Berkeley.EDU>

I am trying to connect two workstations (CentOS 3&4) directly using a
straight through cat 5e cable with a crossover adapter on one of the
ends. Both hosts have gigabit-capable ethernet card. According to
lspci host 1 has:

03:0e.0 Ethernet controller: Intel Corporation 82545EM Gigabit
Ethernet Controller (Copper) (rev 01)

and host 2 has:

05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8050
Gigabit Ethernet Controller (rev 17)

In order to get this controller work on host 2, I had to download and
install a more recent version of the sk98lin driver. Host 2 runs
CentOS 4. Host 1 runs CentOS 3 (with a stock e1000 driver).

After I setup networking, ethtool reported for both hosts that the
link runs at 100Mbps even though it says in both cases that the
capability for 
1000baseT/Half 1000baseT/Full modes and exists and is being
advertised. If I force 1000Mbps speed with "ethtool -s eth1  speed
1000", I get:

# ethtool eth1
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  1000baseT/Half 1000baseT/Full 
        Advertised auto-negotiation: No
        Speed: Unknown! (65535)
        Duplex: Unknown! (255)
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g

and the eth1 link stops working. What could be a problem here? I tried
loading both drivers with the parameter for 1000Mbps speed parameters
but that didn't help.

( I used on host 1, alias eth1 e1000 Speed=1000
 host 2, alias eth1 sk98lin Speed_A=1000 Speed_B=1000)


-akop