如何向 OS X 添加尚不受支持的 WWAN 设备支持?

如何向 OS X 添加尚不受支持的 WWAN 设备支持?

我的最大目标是让我的 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 吗?还是苹果把他们排除在外了?

相关内容