本文首发51nb,未经同意不得转载。
亲做嫁衣——只为Sony Gobi2000华丽转身
打造能正常收发CDMA中文短信,支持电信CAVE和MD5双重拨号验证的Gobi2000 问题描述 3G模块Gobi2000支持联通WCDMA、电信CDMA2000和移动EDGE而备受坛友喜爱,但CDMA短信问题一直是个没有彻底解决的问题。再者,因为大部分Gobi2000的驱动里不含针对ChinaTelecom的Firmware,所以,不能支持电信的CAVE拨号验证,而只能进行MD5验证,MD5验证对于新发行的电信UIM卡是没有问题的,但是,目前仍然有相当数量的联通发行的老卡在坛友中使用,这类卡只能进行CAVE拨号验证,验证通过就直接EVDO,否则,就只能1xRTT。 因此,本人一直在寻找一块相对完美的Gobi2000,联通电信双模,支持CDMA中文短信(不乱码),支持CAVE拨号验证,有软件支持对其无线通讯的开/关,结果是一直没找到。 解决方案 找不到,那就只能基于现有的Gobi2000模块改造了。现有Gobi2000模块有很多,常用的有带Fru号的Thinkpad原配Gobi2000模块、HP UN2420、非中国大陆版Dell Wireless 5620(后面简称为DW5620)、Sierra Gobi2000和Sony Gobi2000。这些模块各有利弊,经过坛友各种折腾,除了Sony Gobi2000外,其余都能实现CDMA中文短信的收发,但不支持CAVE拨号验证;Sony Gobi2000支持CAVE拨号验证,但没有软件支持其CDMA短信收发。于是,本人琢磨了好几个方案: (方案一):将SonyGobi2000驱动里的ChinaTelecom固件(Firmware)移植到其余任一种模块里,结果是没法加载进去。分析其原因是这类Gobi2000与Sony Gobi2000在硬件上有些区别:后者在硬件层上多个AT Port端口,见图。即:这类Gobi2000在硬件上就不支持ChinaTeleocm的Firmware。这条路就此作罢。 (方案二):修改现有的管理软件,使其识别Sony Gobi2000,这条路也折腾了好久,也未能成功。 (方案三):将SonyGobi2000改造成中国大陆版DW5620(因为Dell的那个管理软件能够很好地支持中文短信收发)。这里重点讲述这一点,偶然间,将DW5620的驱动解包后发现有AT Port这个设备,如图2。 窃喜,遂99元入手DW5620一块,到手后立马上机测试,结果是让我失望,仍然没有出现AT Port这个端口,当然加载电信Firmware也是枉然,后来了解到DW5620还有细分,有中国大陆版和非中国大陆版之分,Dell内部的DPN部件号(类似TP的FRU)也不一样,即:普通的DW5620硬件上没有AT Port这个端口设备。于是想找个大陆版的DW5620,结果是某宝上根本没有卖。既然没有卖,就自己打造。 如何打造?本人的思路是将SonyGobi2000的硬件设备ID(VID:05C6;PID:9225)修改为DW5620的(VID:413C;PID:8186),再修改DW5620的驱动,以适应修改后的Sony Gobi2000,从而正确驱动之。 1. 修改Sony Gobi2000的设备ID (注:所有操作全部在XP下进行,因为QXDM软件只能XP下安装使用,部分截图是后来在Win8中补充的) 首先,将Sony Gobi2000安装到插槽里,安装好Sony的驱动。再安装QPST和QXDM这两个软件。打开QPST,Add New Port添加端口,将Diagnostic端口添加进去。 需要注意的是QPST软件可能将AT Port也识别为Diagnostic,操作时,可将两个端口都添加进去,然后看看哪个显示为Gobi2000,显示为No Phone的不是我们需要的端口。记下显示为Gobi2000的端口,最小化QPST,不要退出关闭。 打开QXDM,打开菜单Option –Communications,将Target Port修改为上述端口。 再执行菜单View – New – Common -NV Brower,读取并修改ID:5077的值(依据图示进行),记住修改后,要Write。 至此,设备ID修改完毕。备份Sony Gobi2000的固件,将“C:\Program Files\QUALCOMM\Images\Sony”里的所有固件文件夹复制一份,卸载Sony Gobi2000驱动。 2. 修改DW5620的驱动 设备ID修改完后,DW5620的驱动还不能完全适应修改后的Sony Gobi2000(这里暂且起个别名Sony 5620),需要对原版驱动作适当修改。 先从Dell网站下载DW5620驱动,解除非Dell机型安装限制,提取出MSI类型的安装文件。对MSI文件解包,找到“QDLService2kDell.exe”这个文件,用Winhex打开,Unicode方式找到413c,替换成05c6,后面的8186替换为9224。这里只需替换第一处的413c即可,后面的无需改动。这里说一下为什么这么修改,05c6和9224分别是Sony Gobi2000的QDLoader设备的VID和PID。因为在第一步中没有涉及到QDLoader设备ID的修改,所以这里将DW5620驱动里的QDLoader的ID修改成Sony的。修改完,保存一份修改后的“QDLService2kDell.exe”。 继续(注:以下修改特别针对XP下安装,Win7/8下无需修改),在解包后的DW5620驱动里找到“qcserdl2k.inf ”这个文件,记事本打开,修改其中的
USB\VID_413C&PID_8185(DW 5620的QDLoader)为: USB\VID_05C6&PID_9224(Sony Gobi2000的QDLoader)
注:qcserdl2k.inf有2个,每个文件里有两处,都要修改。 至此,驱动修改完毕。
驱动的安装,Win7/8下使用的话,直接用前面提取后的MSI文件安装,安装结束后,到系统服务里停止掉“Qualcomm Gobi2000 DownloadService(Dell)”这个服务,用先前修改过的“QDLService2kDell.exe”替换“C:\Program Files \QUALCOMM\QDLService2k”里的同名文件,然后,将“C:\Program Files\QUALCOMM\Images\Dell”里的固件文件夹全部删除,用先前备份的Sony Gobi2000固件文件夹替换。再启动“Qualcomm Gobi2000 Download Service(Dell)”这个服务,接着设备管理里就会出现完整的Gobi2000相关设备了。 另外,如果,安装过程中没有自动安装Gobi2000的相关设备,设备管理里开始会出现一个设备,其ID为05C6和9224,那么这个设备是QDLoader,手动安装,型号按下图选择。 QDLoader设备安装好后,接着就会自动安装其余的设备,安装好后,QDLoader设备不会出现在设备管理器里。 最后可能还会出现一个设备没有自动安装好,这个设备是AT Port端口,可以手动更新安装,选择设备类型为“端口”,文件指向“C:\Program Files(x86)\QUALCOMM\DriverPackage\Dell\amd64\qcserdl2k.inf”,然后在设备列表里选择“AT Port”,如图: XP下安装的话,需要用解包并修改过“qcserdl2k.inf”后的驱动安装,安装过程与前面类似,不再重复。有一点注意的是,AT Port端口手动安装驱动可能也不成功, 但此时应该已经不影响实际使用,因为本人在win7/8下发现最后AT Port端口的驱动不安装的,也能正常使用了。完整的设备列表如下 使用测试 (以下使用联通发行的只能CAVE验证的老卡) 测试环境:X220,Win7/8,刷白名单BIOS,屏蔽Gobi的20针。 发现,可以直接切换使用ChinaTelecom运营商固件,当然也可以使用WCDMA固件。 无线通讯可以关闭,如下图。另外,短信来到时,有提示标志。 中文短信,不再乱码。 Win8下,直接Connect成功;Win7发现连接后立刻断开,具体原因不明,不要紧,在Win7的托盘区网络图标里找到“移动宽带连接”,在里面设定配置参数(#777, ctnet@mycdma.cn,vnet.mobi),然后连接即可。 GPS功能: 本文总结 本文将Sony Gobi2000硬件和DW5620的软件巧妙的结合,实现了预期的目标,很好的解决了Gobi2000一系列问题。至此,Sony Gobi2000已经实现了华丽的转身,如果没有语音通话需求的话,可以把EM660扔在一边了。 依照此法,将un2420变成Fru的,将DW5620变成un2420,等等,也是小菜一叠了。因此,可以说让带fru的gobi2000去见鬼吧,我用便宜的un2420自己造个fru的。
免责申明 由于,涉及到硬件设备ID的更改,由于人为或未知原因,更改过程可能出现意外导致3G模块变成小砖块,本人不承担任何责任,玩友慎重操作。 最后祝大家玩卡愉快!Bye.
后记
前面提到硬件ID的修改,其实修改还不够全面和彻底,因为没有涉及到QDloader的ID的修改,所以要对DW5620的驱动里QDloader的ID做修改。如果将Sony Gobi设备QDloader的ID也一并修改为DW5620的,那么驱动里对应部分就不用修改了。
[ Edited by essencer on 2012-11-16 13:48 ] |