Problems with network speed setup in F12

Rick Stevens ricks at nerd.com
Fri Jan 22 17:48:03 UTC 2010


On 01/22/2010 04:08 AM, Gianluca Cecchi wrote:
> Hello,
> in f11 I had a line into /etc/rc.d/rc.local to force speed/duplex/autoneg:
> /sbin/ethtool -s eth0 speed 100 duplex full autoneg off>>  /tmp/ethtool.log 2>&1
>
> In F12 I see that this setting is not maintained.
> After I log in in Gnome I see that:
> [root at tekkaman ~]# ethtool eth0
> Settings for eth0:
> 	Supported ports: [ TP ]
> 	Supported link modes:   10baseT/Half 10baseT/Full
> 	                        100baseT/Half 100baseT/Full
> 	Supports auto-negotiation: Yes
> 	Advertised link modes:  10baseT/Half 10baseT/Full
> 	                        100baseT/Half 100baseT/Full
> 	Advertised auto-negotiation: Yes
> 	Speed: 100Mb/s
> 	Duplex: Half
> 	Port: Twisted Pair
> 	PHYAD: 1
> 	Transceiver: internal
> 	Auto-negotiation: on
> 	Supports Wake-on: g
> 	Wake-on: d
> 	Current message level: 0x000000ff (255)
> 	Link detected: yes
>
> The log file has timestamp of my boot time, so that I know it was
> actually executed.
> If I run it manually it succeeds and I get now:
> 	Advertised link modes:  Not reported
> 	Advertised auto-negotiation: No
> 	Speed: 100Mb/s
> 	Duplex: Full
> 	Port: Twisted Pair
> 	PHYAD: 1
> 	Transceiver: internal
> 	Auto-negotiation: off
> 	Supports Wake-on: g
> 	Wake-on: d
> 	Current message level: 0x000000ff (255)
> 	Link detected: yes
>
>
> but after some minutes I get again:
> 	Advertised auto-negotiation: Yes
> 	Speed: 100Mb/s
> 	Duplex: Half
> 	Port: Twisted Pair
> 	PHYAD: 1
> 	Transceiver: internal
> 	Auto-negotiation: on
> 	Supports Wake-on: g
> 	Wake-on: d
> 	Current message level: 0x000000ff (255)
> 	Link detected: yes
>
> So there is something external that manage this kind of changes.

It's NetworkManager doing that to you.

> Some questions:
> - network guys say me that switch port is fixed at 100/full (it is a
> gigabit ethernet) so, if this is true, even in autoneg there is an
> error in getting settings

Is there a reason they've set that up as fixed?  Is there an autoneg
issue with the switch (some don't do autonegotiation correctly).

> - what is the component that changes the settings? I walked through NM
> applet to edit connections but I don't see any parameter....

Yet another issue with NM.  It doesn't give you the ability to run any
special "ethtool" stuff.

> Hw is a Dell laptop XPX M1330 with updated F12 x86_64
> lspci for network card gives:
> 09:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M
> Fast Ethernet PCI Express (rev 02)
> 	Subsystem: Dell XPS M1330
> 	Flags: bus master, fast devsel, latency 0, IRQ 31
> 	Memory at f1bf0000 (64-bit, non-prefetchable) [size=64K]
> 	Expansion ROM at<ignored>  [disabled]
> 	Capabilities: [48] Power Management version 3
> 	Capabilities: [50] Vital Product Data
> 	Capabilities: [58] Vendor Specific Information<?>
> 	Capabilities: [e8] MSI: Enable+ Count=1/1 Maskable- 64bit+
> 	Capabilities: [d0] Express Endpoint, MSI 00
> 	Capabilities: [100] Advanced Error Reporting
> 	Capabilities: [13c] Virtual Channel<?>
> 	Capabilities: [160] Device Serial Number 00-1d-09-ff-fe-3d-82-50
> 	Kernel driver in use: tg3
> 	Kernel modules: tg3
>
> Strange thing is that after booting the laptop less that 4 hours ago,
> with dmesg I get these messages:
> tg3.c:v3.99 (April 20, 2009)
> tg3 0000:09:00.0: PCI INT A ->  GSI 17 (level, low) ->  IRQ 17
> tg3 0000:09:00.0: setting latency timer to 64
> tg3 0000:09:00.0: PME# disabled
> eth0: Tigon3 [partno(BCM95906) rev c002] (PCI Express) MAC address
> 00:1d:09:3d:82:50
> eth0: attached PHY is 5906 (10/100Base-TX Ethernet) (WireSpeed[0])
> eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[0]
> eth0: dma_rwctrl[76180000] dma_mask[64-bit]
> ...
> tg3 0000:09:00.0: PME# disabled
>    alloc irq_desc for 31 on node 0
>    alloc kstat_irqs on node 0
> tg3 0000:09:00.0: irq 31 for MSI/MSI-X
> ADDRCONF(NETDEV_UP): eth0: link is not ready
> Bridge firewalling registered
> virbr0: starting userspace STP failed, starting kernel STP
> tg3: eth0: Link is up at 100 Mbps, full duplex.
> --------------------------->>>>  this I think is about my rc.local
> command
> tg3: eth0: Flow control is off for TX and off for RX.
> ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
> lo: Disabled Privacy Extensions
> type=1305 audit(1264148879.894:25902): audit_enabled=0 old=1
> auid=4294967295 ses=4294967295 subj=kernel res=1
> eth0: no IPv6 routers present
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, full duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> ...
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> CE: hpet increasing min_delta_ns to 22500 nsec
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
> tg3: eth0: Link is down.
> tg3: eth0: Link is up at 100 Mbps, half duplex.
> tg3: eth0: Flow control is off for TX and off for RX.
>
> So I have many link down messages and (apparently) renegotiation tthat
> then gives 100/half
> Any suggestions???

This is a wild-assed guess, but you could try editing the
"/etc/sysconfig/network-scripts/network-functions" file.  Find the
"check_ethtool()" function (around line 256 or so).  Add a line (marked 
by "ADD--->") as shown below:

	check_ethtool ()
	{
	   [ -x /sbin/ethtool ] || return 2
ADD--->	   LC_ALL=C ethtool -s $1 speed 100 duplex full autoneg off
	   output=$(LC_ALL=C ethtool $1 2>&1)
	   echo $output | LC_ALL=C grep -q "Link detected: yes" && return 1
	   echo $output | LC_ALL=C grep -q "Link detected: no" && return 0 || 
return 2
	}

It's a butt-ugly hack, but may serve your purpose.

> BTW I have libvirtd started but no vm created
> Thanks in advance,
> Gianluca
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer                      ricks at nerd.com -
- AIM/Skype: therps2        ICQ: 22643734            Yahoo: origrps2 -
-                                                                    -
-     Better to understand a little than to misunderstand a lot.     -
----------------------------------------------------------------------


More information about the users mailing list