The big goal of mine is to make my OS X machine support my Huawei E1550 dongle without installing any 3rd party driver.
The fact is, that AppleWWANSupport*.kext and the whole WWAN infrastructure is one of the sloppiest pieces of code ever authored by Apple. Skimming through their Info.plist, one can easily see that they aim at supporting almost every major cell modem brand (except probably ZTE), but when you plug in a Huawei dongle which is "supported", nothing happens — at least the CDC driver tells no valid configuration is found.
So far, I modified the CellPhoneHelper.kext/Contents/Info.plist to recognize the dongle as an actual WWAN device, and added a section for it into /Library/Modem Scripts/WWAN.ccl. The results are:
- WWAN icon appears in the menu bar when I plug the dongle in
- Device files appear so I can actually talk to the modem
- System profiler list the modem as a WWAN device and queries it accurately
What does not work:
- The WWAN icon just sits there stuck at "Initializing..."
- Consequently, WWAN interface does not appear and can't be configured
...which is kinda the point of it all.
The Huawei E1550 has four endpoints: one of them is "modem" (0), another one "diagnostics" (1), yet another is called "PCUI" (2) and there is one more for voice data (5). I suspect that I misassign them and OS X uses the wrong ones, being thus unable to see that the modem works, let alone prepare an interface.
The port which is apparently "Data" (modem?) only responds to commands and does not provide responses to, say, USSD requests. The one marked "Diag" is silent, I can't really say what it's used for. The "PCUI" port accepts AT commands, responds to them and spits out signal level and other status messages at regular intervals without being polled for them.
OS X knows about four endpoints which ultimately end up being /dev/wwan (data, modem, very rarely different ports), /dev/wwanCNTL (control) and /dev/wwanCMD (command).
So the big question is, how to match them correctly?
Another big question is, call me stupid but what is the difference between a control port and a command port in context of WWAN (GSM/UMTS) devices?
Also, links to data sheets and other such information on Huawei E1550 aka Huawei Datacard (ven:dev = 0x12d1:0x1001) are immensely welcome.