Ethernet plus iMac plus MacOS X equals Broken

Problem solved!

The catch turned out to be to force the port to 10/Full (10Mbps, full duplex) and the problem disappeared. All other combinations of speed and duplex, for whatever reason, didn't solve anything. It wasn't a bad cable, or a duplex mismatch; known good cables were used and I could see speed and duplex settings from both ends. My hardware is a tray-loading iMac 333 running MacOS X (any version) connected to a Cisco Catalyst 2924-XL-EN.

Now I'll grant you that it was an easy fix if one has a managed Ethernet switch and you can easily set the speed and duplex for each port. (Even though it was the most annoying problem I've ever come across in computer.) I still think it's a problem with Apple's chipset in this particular model and its interaction with the drivers for it in MacOS X. Having said that, I don't see a fix coming our way from Apple.

My original rant on the problem is included below. And I'm not crazy; someone else has the same problem.

Why did setting the port on the switch side to 10/full fix the problem? I honestly don't know. Like I said, I blame a poorly implemented Ethernet driver on Apple's part, but I'm no hardware driver wizard.


This is more of me whining about a problem that Apple chooses to ignore or is unable to let me talk to someone who might actually know what the hell the problem may or may not be. I sent this letter to MacInTouch and it was added to their Mac OS X "Jaguar" report; I also posted it in other places.

There is also a Cisco tech note related to this: Troubleshooting Cisco Catalyst Switches to NIC Compatibility Issues (It's also a good read for any admin type person, even though it doesn't apply to my problem.)

<soapbox>

I have a really annoying and apparently unsolvable problem. After installing MacOS X on a tray-loading iMac 333, the built-in Ethernet port is no longer able to transmit data properly. Several calls to Apple and a trip to an Apple dealer didn't produce any results.

The problem is quite real, but only under MacOS X. When the machine is booted under 9.x, there is no problem. This leads me to believe that the specific Ethernet driver in X for this iMac is poorly written, or the motherboard needs replacement.

Traffic to the iMac (i.e. a download) not a problem. Large amount of traffic from the iMac (i.e. upload) causes massive amounts of CRC errors to be reported on my switch, in addition to being too slow to use. The switch is a Cisco Catalyst 2924XL-EN which reports the following stats:

11485029 packets input, 1401481503 bytes
Received 33805 broadcasts, 0 runts, 0 giants, 0 throttles
94183 input errors, 94183 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 24406 multicast
0 input packets with dribble condition detected
15331127 packets output, 55139736 bytes, 0 underruns
0 output errors, 1841 collisions, 6 interface resets
0 babbles, 0 late collision, 2377 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out

That "94183" number for CRC errors should be zero, or something not in the 94,000 range. The iMac is transmitting bad frames for whatever reason. (Simple Ethernet hubs just have a solid collision light when this iMac is on the network.)

What am I to do? It's not my network, as there are 12 other computers (Macs, Windows PC's and Linux boxen) on the same switch that work fine. Support calls to Apple usually result in a specialist calling back for about a week to suggest things I've already tried, or that the guy before them tried, as did the one before that.

The only thing I can think of would be a USB Ethernet adapter with a properly written driver, however no such thing seems to exist for MacOS X at this time.

</soapbox>