I got hold of a Dell mini PCIe WWAN module for a D Series and decided to give it a try.
Not knowing if it’d be supported at all in OS X, I first gave it a shot in Win7 on my D630 nVidia. The module did not really show any indication of a model, so I just took a note of its PCI device ids and googled for it: Vendor id 0x413c and Device id 0×8137 came out as Dell DW5520.
So I downloaded the driver for that module off Dell’s web site D630 pages and, upon installation, I sure obtained a DW5520 3G modem in the device manager. I got a shortcut for a 3G modem app on the desktop too + a new little icon in the task bar.
I took the battery out, inserted my 3G SFR-network SIM card and launched the app. It sure detected the SIM card on the SFR network and, chance would have it, there was an existing dial-up profile for SFR. I clicked on the connect button and off it went: 3G connection to the Internet. Great!
I took the SFR SIM card out and tried my 3G Orange one. However, there was no existing Orange profile offered. So, I created one: ‘called it “Orange World” and just specified APN “orange” as found on the Net. That sure was enough to be able to kick-off and establish a 3G connection. Brilliant!
I had to try it with OS X then. ‘rebooted my D630 in Mountain Lion and checked the WWAN section of the System Report. Mmm, nothing.
Quick look at USB: ha! it showed a “Novatel wireless HSDPA modem”. Looking promising… However, no modem/new card/new interface in the Network Pref Pane.
Ok, so the card was seen, but not registering as a WWAN module. A quick search on the Net revealed the use of 2 kexts + 1 script for WWAN:
- /L/Modem scripts/WWAN.ccl
The IOSerialFamily kext contains a few plugins, 3 of them for WWAN: AppleWWANSupport + AppleWWANSupport1 + AppleWWANSupport2 (4th plugin is called AppleUSBIrDA). A quick look at the plugins showed entries for 0x413c vendor devices in AppleWWANsupport + AppleWWANSupport1. Things looked well covered from that point of view.
The CellPhoneHelp kext’s info plist was found to contain 2 entries for 0x413c vendor devices: one for device 0×8117, referenced as “Novatel Wireless EXPD CDMA (Dell 5700)” and one for device 0×8118, referenced as “Novatel Wireless HSDPA Modem (XU870)”. Interesting, a possible/likely place for patching…
The WWAN.ccl script showed many entries, including one for Novatel devices. All seemed in order on that front.
I therefore decided to try and patch that CellPhoneHelper kext. I made a copy of it to the desktop and edited the info plist: I copied the entire 0×8118 HSDPA modem part and pasted/edited it as “0x413c/0×8137 Novatel Wireless HSDPA Modem (Dell DW5520)”. At the bottom part of that section, I simply replaced the device id (in dec.) by 33079 (=0×8137 in hex.). After saving the plist file, I moved the modded kext to /E/E and ran myFix (full).
On reboot, bingo!, I had a WWAN module reported.
I opened up the Network Pref Pane and noticed a new 3G modem available to add. Once that was done, the card was listed on the left column and there was a default config to the right (auto-detected for Orange as it appeared). I checked the box to show modem status in the menu bar.
Now I could see a nice new little icon on the menu bar, showing the well-known vertical bars of cellular networks signal…
Clicking on it opened a little scroll-down menu with indication of network provider and a Connect option.
On clicking Connect, I could see attempts to establish a connection but it would always fail. I remembered seeing the default profile with username Orange and a password in the Network Pref Pane, so I thought I’d edit that. What was in fact required was a proper profile for Orange. I opted to do the same thing as I had previously done in Windows: a new profile called “Orange World” and a simple mention of “orange” as APN data.
Under Mac OS X however, the little bugger wanted a username and password! So, I decided to return to Windows and look for those credentials. None to be found in the profile I had created though; but I noticed I could export my created profile. That resulted in an XML file which, upon inspection in a text editor, revealed an empty username and an extremely long hexadecimal password. Back in Mac OS X, I simply copied this password in the Orange profile.
Bingo! I was then able to establish a connection to the Orange 3G network.
Once connected, the little vertical bars showing cellular signal strength become darker. Clicking on the icon allows to drop the connection when it’s no longer required (and it could be better for your phone bill to remember to disconnect !!!), although there’s an option to disconnect after a certain idle time (10min by default).
The scroll-down menu also provides a direct link to the Network Pref Pane. When the 3G connection is in place, the Novatel tab will show details of IP addressing, connection duration and 3G traffic volume. Not that useful but nice to watch.
I repeated the same process for Lion (10.7.5) and Snow Leopard (10.6.8) on my other D620/D630 laptops. It worked Ok in all cases but I noticed that, for Snow Leopard, there were 2 additional plugins in IOSerialFamily kext: InternationalModemSuport + MotorolaSM56KUSB. They had to be removed for the WWAN module to be detected and work. I therefore made a modded copy of that kext to /E/E, rather than modify the original next in /S/L/E. All was Ok on reboot. That’s the only configuration difference for Snow Leopard. I also noticed that SL offered the ability to turn WWAN On and Off in the scroll-down menu, something not offered under Lion and ML.
In a nutshell:
- for Lion & Mountain Lion: patched CellPhoneHelper kext in /E/E
- for Snow Leopard: patched CellPhoneHelper + plugins-modded IOSerialFamily kexts in /E/E
So, there you are, a nice little way to add 3G functionality to your Hackintosh if you possess a WWAN module and a 3G cell phone contract. This method was tested on the Latitude D Series, but should naturally be applicable to other models.