View previous topic :: View next topic |
Author |
Message |
plate Bodhisattva
Joined: 25 Jul 2002 Posts: 1663 Location: Berlin
|
Posted: Thu Jul 21, 2005 6:37 pm Post subject: Unhappy with HappyMeal |
|
|
I've heard of the HappyMeal NIC's devastating reputation, but it's all I've got in my U10, and I'd really like to make it work properly, if at all possible. "work properly" as opposed to its failing attempts at autonegotiation:
Code: | eth0: HAPPY MEAL (PCI/CheerIO) 10/100BaseT Ethernet 08:00:20:c0:62:a6
eth0: Link is up using internal transceiver at 100Mb/s, Half Duplex. |
Every other autonegotiating host in the house gladly accepts the 100 Mbps full-duplex prescribed by the fat Alpine switch sitting in our attic. Any ideas how I could talk the HappyMeal into doing the same? |
|
Back to top |
|
|
gust4voz Retired Dev
Joined: 09 Sep 2003 Posts: 373 Location: Buenos Aires, Argentina
|
Posted: Thu Jul 21, 2005 8:04 pm Post subject: |
|
|
Force it with ethtool in /etc/local.start or something like that. _________________ Gustavo Zacarias
Gentoo/SPARC monkey |
|
Back to top |
|
|
plate Bodhisattva
Joined: 25 Jul 2002 Posts: 1663 Location: Berlin
|
Posted: Thu Jul 21, 2005 9:03 pm Post subject: |
|
|
Well, I'd love to, but ethtool doesn't seem to have much power over that thing. No matter how much I bang on it, it doesn't divert from its half-duplex mode. I've tried Code: | ethtool -s eth0 autoneg off
ethtool -s eth0 duplex full |
But the HappyMeal simply ignores all that: Code: | eth0: Link has been forced up using internal transceiver at 100Mb/s, Half Duplex.
|
|
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Fri Jul 22, 2005 12:51 pm Post subject: |
|
|
This is not an answer nor a solution, but only a bit of information. Briefly poking around in the (sunhme kernel) driver indicates that at start-up, the kernel tries to set the hme card to the highest performance possible in the order: 100/full, 100/half, 10/full, 10/half, failure. As best as I can tell, this information is provided by the card itself: it tells the kernel what it can do in your environment (system + network connection), and the driver just watches a timer during autonegotiation.
That's not a very satisfying "answer" I understand, but it suggests that ethtool might be able to change things: for what it is worth, it is possible to drive hme at 100/full on a U10 (300) (I verified with a Solaris system), but when you boot, the kernel's auto negotiation loop's timing information allows only 100/half.
Sorry for not really telling you anything. |
|
Back to top |
|
|
gust4voz Retired Dev
Joined: 09 Sep 2003 Posts: 373 Location: Buenos Aires, Argentina
|
Posted: Fri Jul 22, 2005 3:36 pm Post subject: |
|
|
I'm perfectly able to force and autoneg fine here on my u5 (sunhme too) against a Lucent switch.
eth0: Link has been forced up using internal transceiver at 100Mb/s, Full Duplex.
eth0: Link has been forced up using internal transceiver at 100Mb/s, Half Duplex.
eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.
Didn't try 10Mb/s since it's kinda moot.
Running a 2.6 kernel here. _________________ Gustavo Zacarias
Gentoo/SPARC monkey |
|
Back to top |
|
|
plate Bodhisattva
Joined: 25 Jul 2002 Posts: 1663 Location: Berlin
|
Posted: Fri Jul 22, 2005 5:28 pm Post subject: |
|
|
That was a piece of misinformation, very sorry about that. I was too impatient when I wrote the above, checking dmesg revealed only the first message (100/HD), but I didn't wait for the second message (100/FD) before complaining again here... So, I've put a line Code: | ethtool -s eth0 autoneg off speed 100 duplex full | into /etc/conf.d/local.start now, and everything works just as advertised. Thanks a lot! |
|
Back to top |
|
|
millermiller n00b
Joined: 26 May 2005 Posts: 52
|
Posted: Mon Aug 01, 2005 6:09 am Post subject: |
|
|
plate wrote: | That was a piece of misinformation, very sorry about that. I was too impatient when I wrote the above, checking dmesg revealed only the first message (100/HD), but I didn't wait for the second message (100/FD) before complaining again here... So, I've put a line Code: | ethtool -s eth0 autoneg off speed 100 duplex full | into /etc/conf.d/local.start now, and everything works just as advertised. Thanks a lot! |
I followed the guild and put the command line in my /etc/conf.d/local.start. It seems doesn't work for me. Did I miss anything?
Thanks _________________ Free as in Freedom |
|
Back to top |
|
|
|