Hi,
since my update to F12 I've a problem with my network. At system start the network doesn't work (I have to force it manually) and when it starts it is much slower than it should be.
Before proceeding with the report, this is the scenario. This is the card:
Code:
lspci | grep Ether
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
and this is my running kernel:
Code:
uname -r
2.6.31.5-127.fc12.x86_64
As I anticipated, every time I boot the link is reported as being down:
Code:
ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: no
I can only bring it up by forcing a 'service network stop/start' or an 'ifdown eth0 -- ifup eth0' (and even this way I sometimes have to trigger the sequence again). This way the link goes up, but at 100mbit and not 1000mbit as it should:
Code:
ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
mii-tool output:
Code:
mii-tool eth0
eth0: negotiated 100baseTx-FD flow-control, link ok
The 100mbit is confirmed from the orange light on my router (should be green). 1000mbit is surely supported (as the Supported/Advertised list conforms). I already verified that this is not a cable problem.
Whenever I try to force a 1000mbit using ethtool:
Code:
ethtool -s eth0 speed 1000
I get no output on the console, but the link goes down again (which means I have to force it going up again as already explained). When it goes up, needless to say speed is 100mbit and not 1000mbit.
Digging around I found some older, similar, reports, that suggested making use of the Realtek drivers instead of the provided r8169 driver. I tried the last one (r8168-8.015.00), which supports 2.6.31 kernels: this built a r8168.ko driver, which however was even worse than the r8169 one:
Code:
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: Unknown!
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: no
I could find no way to bring the link up. I then tried some older driver (pre-015), for which I needed a patch since in 2.6.31 there was an API change regarding network drivers. I used the r8168_scripts.tar.bz2 patch (source:
http://www.jamesonwilliams.com/hardy-r8168) and the results were exactly the same: Speed reported as unknown and no way to bring the link up.
Using lsmod I could at least verify different behaviours of the drivers, since with r8169 I get:
Code:
lsmod | grep r8169
r8169 34004 0
mii 5104 1 r8169
while with r8168 I could only get
Code:
lsmod | grep r8168
r8168 58344 0
showing that the Realtek driver didn't involve the mii driver (whatever this means).
Now, after all these attempts, I really don't know what else to try. In F11 the network surely worked as it should (I guess kernel was 2.6.30ish, can't remember precisely), so either something in the new Fedora release broke it, or the new kernel driver is broken somehow. Do any of you know what may be the cause?
Thanks in advance for all the help you'll be able to provide me with!
Edit: Some additional details. This is a more verbose report from mii-tool:
Code:
mii-tool -vv
eth0: negotiated 100baseTx-FD flow-control, link ok
registers for MII PHY 32:
1000 796d 001c c912 0de1 45e1 0005 0000
0000 0300 0000 0000 0000 0000 0000 3000
0000 0000 0000 ec40 1660 0000 0101 2108
2740 8c00 0040 011a 8404 0000 0000 0000
product info: vendor 00:07:32, model 17 rev 2
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
So no 1000 support seems to be detected by mii-tool (unlike ethtool). Trying to force 1000:
Code:
sudo mii-tool -vv -F 1000baseTx-FD eth0
Invalid media specification '1000baseTx-FD'.
It seems a lot of people generaly suggest using ethtool instead of mii-tool, since it's assumed to be more powerful and complete. Nevertheless, the driver doesn't seem to be listening to what ethtool (while instead causing the link to go down, as already explained). Is there any way I can disable the mii driver or something, if this can help?