![如何向 OS X 添加尚不受支持的 WWAN 设备支持?](https://linux22.com/image/1311911/%E5%A6%82%E4%BD%95%E5%90%91%20OS%20X%20%E6%B7%BB%E5%8A%A0%E5%B0%9A%E4%B8%8D%E5%8F%97%E6%94%AF%E6%8C%81%E7%9A%84%20WWAN%20%E8%AE%BE%E5%A4%87%E6%94%AF%E6%8C%81%EF%BC%9F.png)
我的最大目标是让我的 OS X 机器支持我的华为 E1550 加密狗,而无需安装任何第三方驱动程序。
事实上,AppleWWANSupport*.kext 和整个 WWAN 基础设施是 Apple 编写的最粗糙的代码之一。浏览他们的 Info.plist,很容易看出他们的目标是支持几乎所有主要的蜂窝调制解调器品牌(可能除了中兴通讯),但是当你插入“受支持”的华为加密狗时,什么都没有发生——至少 CDC 驱动程序会显示未找到有效配置。
到目前为止,我修改了 CellPhoneHelper.kext/Contents/Info.plist,将加密狗识别为实际的 WWAN 设备,并在 /Library/Modem Scripts/WWAN.ccl 中为其添加了一个部分。结果是:
- 当我插入适配器时,菜单栏中会出现 WWAN 图标
- 设备文件出现,因此我可以真正与调制解调器对话
- 系统分析器将调制解调器列为 WWAN 设备并准确查询
无效的方法:
- WWAN 图标就停在那里,停留在“正在初始化...”
- 因此,WWAN 接口不会出现且无法配置
...这就是一切的重点。
华为 E1550 有四个端点:其中一个是“调制解调器”(0),另一个是“诊断”(1),还有一个称为“PCUI”(2),还有一个用于语音数据 (5)。我怀疑我错误地分配了它们,OS X 使用了错误的端点,因此无法看到调制解调器是否正常工作,更不用说准备接口了。
显然是“数据”端口(调制解调器?)仅响应命令,不响应 USSD 请求等。标有“诊断”的端口没有响应,我实在说不出它是用来做什么的。“PCUI”端口接受 AT 命令,响应这些命令,并定期发出信号级别和其他状态消息,而无需轮询它们。
OS X 知道四个端点,最终分别是 /dev/wwan (数据、调制解调器、很少有不同的端口)、/dev/wwanCNTL (控制) 和 /dev/wwanCMD (命令)。
所以最大的问题是,如何正确搭配?
另一个大问题是,说我傻,但是在 WWAN(GSM/UMTS)设备中,控制端口和命令端口之间有什么区别?
此外,非常欢迎提供有关华为 E1550 又名华为数据卡 (ven:dev = 0x12d1:0x1001) 的数据表和其他此类信息的链接。
答案1
我尝试过类似的方法。
我已经编辑了 /System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/AppleWWANSupport.kext/Contents/Info.plist /System/Library/Extensions/CellPhoneHelper.kext/Contents/Info.plist
并得到了类似的结果,但我忽略了 /Library/Modem Scripts/WWAN.ccl 部分。
我相信这三者都必须正确“配对”,另外我认为您仍然需要他们提供的华为调制解调器脚本。
我很好奇你是如何收集到这么多有关端口等的信息的。有什么建议吗?
我使用我的 (e176) 和华为驱动程序,但通过常规调制解调器接口连接。“移动连接”软件很糟糕,连接需要很长时间,但我在需要额外信息时会保留它(并用它来禁用 PIN 请求!)
我将再次尝试编辑所有文件并创建适当的条目...但最后我不知道这是否有任何好处。如果它连接速度更快(比如少于 5 秒)并且可能从菜单栏提供额外信息,这对我来说才有意义。
顺便说一句,在 ubuntu 12.10 中,它似乎以这种方式工作。有一个非常相似的菜单项和信号强度计,更不用说它在不到 3 秒的时间内就能连接!!!
四处搜索后,我还发现 /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBMergeNub.kext/Contents/Info.plist 中有一个“华为手机”条目,但产品 ID 和供应商 ID 与我的不匹配。我已经更改了它,但目前还没有什么可报告的。我必须尝试编辑其他文件 :-(
不过,我不明白,如果苹果有针对调制解调器和手机的驱动程序和框架设置,为什么在这种情况下,华为不“插入”它。他们已经为自己的设备开发了一个完全独立的基础设施。难道他们不知道 AppleWWANSupport 吗?还是苹果把他们排除在外了?