Hackintosh, Networking updates

I’ve made a few sporadic updates to my Hackintosh, so I thought I’d share them here.

First, the update to 10.6.7 went smoothly, as anticipated.

Second, I put in wired networking in my house, so I needed a wired-NIC solution. (I had been using wireless). I also needed something better than 100mbit, because that was a big motivator of bothering to put in wired networking in the first place. After enabling the onboard realtek gigabit NIC in my BIOS, it “just worked” in macos using built-in drivers. (Remember, I have a patched DSDT). However, realtek nics are less than stellar performers and are not that reliable. I could never get more than 750 mbit/s with it, and it would periodically just go down — this happened in both MacOS and Windows. Resetting the driver wouldn’t work. I’d have to reboot the machine. This is actually somewhat common with realtek hardware because of their crappy heavily MMIO-based interface — too many MMIOs in a short period of time and the state machine in the NIC’s firmware gets wedged (because some portions of the state machine do not have positive acknowledgement that they’ve completed – you do step A, then B, then C from the driver), and that’s it, you’re done.

So, I looked for an add-in card. I have a BCM5721 gigabit NIC, but I could not get this to work with stock drivers. I’d read people had success copying drivers from old MacOS builds, but I wanted to avoid this path because it could get killed in any subsequent update, and I’d have to redo it. There were multiple problems here. First, the driver attempts to enable wake-on-lan, and it fails given my system + hackintosh’s acpi information. However, you can disable wake-on-lan in the driver’s Info.plist. (this setting *is* sticky across most updates, btw). Even doing that, however, I couldn’t get the driver up. After a great deal of debugging (and playing with writing my own driver, which I discovered others had started on as well), I found that basically the stock driver isn’t handling message-signaled interrupts (MSIs) correctly. Likely Apple does not have this hardware installed on any systems that use MSI, or for those that do, the default interrupt vector is the correct one. I considered either modifying other drivers or writing my own, but at this point, I’d already spent a lot of time on this problem.

So, I took a gamble on a Marvell-based gigabit NIC. I bought a Rosewill RC-401-EX from Newegg for $23. And, I’m happy to report that it works out-of-the-box, with stock drivers. (No modified plists, nothing). I get line-rate with it (~940mbit/s using TCP netperf), and I have yet to have the interface wedge on me. It’s a great solution to this sort of problem, if you run in to it.

Tags: , , ,

One Response to “Hackintosh, Networking updates”

  1. oldag says:

    If you can read this, you are not a nascar fan.