essencer 发表于 2012-11-9 22:13

【原创】亲做嫁衣——只为Sony Gobi2000华丽转身

本文首发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 byessencer on 2012-11-16 13:48 ]

flu_flu 发表于 2012-11-9 22:23

坐个技术性沙发!

essencer 发表于 2012-11-9 22:31

板凳自己坐了。

pend 发表于 2012-11-9 22:42

看着头晕...不敢尝试..

yqw511 发表于 2012-11-9 22:49

:D:D:D高手啊 过程太复杂,表示只能纯粹帮顶{:1_183:}

essencer 发表于 2012-11-9 22:52

回复 #5 yqw511 的帖子

:D:D:D,前几日,有坛友要求分享,今天特地撰写此文..........

ladderhzy 发表于 2012-11-9 22:58

:D神贴

noes 发表于 2012-11-9 23:03

强大

tangxp 发表于 2012-11-9 23:03

请问你的GPS功能怎么调出来的,谢谢!

zj_98 发表于 2012-11-9 23:06

学习了!

rockbottle 发表于 2012-11-9 23:10

本月最佳技术文章之一!

essencer 发表于 2012-11-9 23:14

回复 #9 tangxp 的帖子

GPS,没有做什么参数修改,sony的原始参数。

zzye 发表于 2012-11-9 23:44

这个真得加技术分了。

yqw511 发表于 2012-11-9 23:48

楼主 请教个问题.我的是卡是高通的 GObi200060Y3263请问GPS不能下载XTRA数据,有办法解决么

essencer 发表于 2012-11-9 23:49

回复 #14 yqw511 的帖子

你这个问题,我没研究过啊,:D

yqw511 发表于 2012-11-9 23:51

essencer 发表于 2012-11-9 23:49 static/image/common/back.gif
你这个问题,我没研究过啊,

^hi^呵呵 啥时候有空了研究下哈

红尘局外 发表于 2012-11-10 00:18

等于等到了大神的出现。。。众网友等了快一年了。。。

话说这个技术还真无敌了。。。最后一段很有威胁性。。

雷哥 发表于 2012-11-10 07:14

很厉害,学习一下

雷哥 发表于 2012-11-10 07:22

搞一个un2420刷成fru的,可以用acess的,这样就有很多人行动了,虽然基本看懂了,还是怕搞错了

essencer 发表于 2012-11-10 07:55

回复 #19 雷哥 的帖子

可以这么做,因为都是用的芯片是一样的

kingkonglue 发表于 2012-11-10 08:12

顶了,自己可能搞不定

essencer 发表于 2012-11-10 08:41

回复 #21 kingkonglue 的帖子

胆大心细就OK。

HOPE 发表于 2012-11-10 08:54

好文章,加分,设精。

雷哥 发表于 2012-11-10 08:55

希望楼主写一篇刷fru的,谢谢了

bernie 发表于 2012-11-10 09:40

有技术含量,楼主很用心啊

pentrolsino 发表于 2012-11-10 10:51

^g^楼主大神,加精吧

azuresy 发表于 2012-11-10 10:54

技术帖,必须顶~

mars8848 发表于 2012-11-10 10:56

顶技术贴,我用的也是这款卡.

regspy 发表于 2012-11-10 10:57

特来支持, OH YE , 能改 VID 和PID了, 那 就不用白名单了,直接改成FRU

ycren 发表于 2012-11-10 11:06

技术,得顶!!!
页: [1] 2 3 4 5
查看完整版本: 【原创】亲做嫁衣——只为Sony Gobi2000华丽转身