打印

[ASUS] A639/A632N升级128M RAM 及 A639/A632N简体WM61 ROM 讨论跟踪贴

A639/A632N升级128M RAM 及 A639/A632N简体WM61 ROM 讨论跟踪贴

标题内容均已实现。用此贴讨论技术和进度。

ROM获得见下面连接:
A639&A632N WM6.1.21127 Ase V02 CHS ROM发布
http://www.pdaclan.com/viewthrea ... &extra=page%3D1

其它相关资源:
http://www.pdaclan.cn/viewthread.php?tid=29102&page=1&extra=page%3D1


这里记录了开始由想法,到研究实施,困难,成功的过程。
并且发布ROM的帖子不能搞得太乱,所以很多繁琐的事儿都在这里交代了。各位朋友有兴趣可以仔细看看。

------------------------------------------------------------------

前言
小弟用得是ASUS A639。2年了,用得很好也很是喜爱。虽然对电脑电子都还算比较懂,但一般情况都是稳定第一,很少去折腾。
后来随着导航软件不断升级,发现最喜欢的R2电子狗和CJT同时运行,会导致CJT无故退出,或者干脆不显示地图。

明显是可用内存太小导致。后开始了WM ROM学习工作。
先是查PP的作用,准备自己修改PP为0。(后发现改成0是一个愚蠢的做法。)
经过大概5天的看帖和准备工具,开始操刀。
因为ASUS 的官方ROM比较变态,只有本坛的osnbtool的作者的某个帖子提到了揭开A639官方ROM的方法,所以才用了这些天达到操刀的程度。
从机器直接读出的imgfs的bin文件,修改后,如果刷回去有问题,恢复的难度相对比较大,所以一开始放弃了这种方式。

最终当然很容易搞定了,试验了0,2,3M的PP,发现2,3会让机器变得比较慢,而多出来的2~3M内存(默认PP=5)根本不能解决前面的问题。

而0的PP 设定,会让机器变得很快,但一开机后可用内存先是,还不如默认pp=5的多。
实际上微软也说了,如果设置成0,那么将把文件读入RAM后才开始执行或操作。但是却没有一个清除的机构存在,这样会导致内存无止境的消耗。

而PP实际上是同样的作用,但限定了最大的缓冲上线,满了后,新进来的文件数据,将会把老的数据挤出去。
因此就算内存够多,也不要设定成0,哪怕设定成48M,32M都比0要好。

根据NAND Flash的原理,任何文件以及数据都必须读到RAM里面才能操作,而可执行文件的执行是另外的RAM内存空间。因此PP是给NAND FLASH专用的一个东西。关掉PP,随着你操作的文件多了,内存会一只消耗下去的(或者有什么限定,但是至少目前未知的情况下感觉是不受控的)。

最后只剩下一条路,就是增加物理内存了。有学习了1周,解开A639官方ROM的XIP,看内存映射表里面数字已经是128MB了。
也下载了P535的官方ROM和128MB版本ROM,解开XIP做了对比。
这个周末换颗粒。ROM搞不定就还用64MB的RAM。
做好了如下准备:
1,看内存映射表里面SDRAM数字已经是128MB了,直接能用。
2,若1不行,移植P535 128MB ROM的XIP中的NK.exe到A639的XIP里面。
3,若2还不行,直接吧P535的XIP插入A639的ROM里面。
4,当64M的机器先用着,慢慢再研究。

器件,还dump了官方的osimgfs.bin,做了一点点修改。删掉了多余的皮肤和确定没用的东西。我喜欢干练的ROM,需要什么可以再添加嘛。
(A639有800多M的Flash Disk,在硬件复位后数据不会消失,所以我认为没必要在ROM里面集成任何其他东西和工具。稳定第一。我认为越接近原厂就越稳定。)

A639用得内存颗粒是2颗 HYB18L256160BF-7.5 。核心和IO电压均可以工作在1.8V下(也可以更高)。
后发现寻找 HYB18L512160 颗粒很困难(确实存在但不好找到),加上很多人说机器本来设定电压就是2.5V,所以就打算上两片 HYB25L512160AC-7.5 的颗粒了,其核心工作电压是2.5V~3.3V,IO可以工作在1.8V~3.3V。

今天打开本想量一下内存工作电压的,看到其用得MAX8588电源芯片,然后很直观的看PCB以及芯片边上的电阻电容就知道实际上内存供电电压还是设定成2.5V的(PIN9接地,PIN9没有连接到外部电阻分压结构。因为设定其他电压需要外部两个电阻连接在PIN9上)。

而别的有些机型修改 HYB25L512160AC-7.5 后,需要短接掉某个电阻,其实就是将PIN9接地,以设定内存电压为2.5V(接地也就是使用MAX8588的默认设置了)。

等换完颗粒再向大家报告结果。

PS:玩A639和A632N GPS PDA的朋友很少哦。A632N繁体和英文的WM6出来这么久了,到现在还没有非官方的WM6简体发布(官方的不想了,严重鄙视官方!),貌似没啥高手玩这些机器。

折腾完我的A639后,本人打算制作一个A632N用得简体ROM,虽然是非官方,但是至少可以99%接近官方。
为什么敢说99%呢?
首先,A632N和A639的PCB是一样的。
A639板子上,上了WIFI模块,而空一颗W86L488Y Winbond 的SDIO扩展芯片(用来扩展出A632N特有的第二个Mini SD插槽功能)和Mini SD的插槽。
反之,A632N的板子上,空了WIFI模块,但是有W86L488Y 和Mini SD的插槽。
因此自己制作WM6简体ROM,颗参考的官方ROM有:
1,A639的简体WM6 ROM (计划基于这个ROM)
2,A632N的繁体WM6 ROM (参考)
3,A632N简体WM5 ROM 和 A639简体WM5 ROM 的对比结果(重要参考)
实际上光有1和2的就应该可以做出来的。加上3,可以99%接近官方ROM,可以让那些非官方ROM不用的朋友放心一点。

计划6.30前完成。如果运气好,工作上不太忙,并且我的A639升级顺利的话,或许只需要几天就行。

其实没有太多的技术含量,而且实际我认为该动作比很多定制XIP定制ROM还简单,只是无奈没有高手出面制作,我就献丑一次吧。
大不了做不出来,但是我认为比不去做要强很多。
而且至少只要实施这个计划(哪怕失败了),也算是我对咱们数码部落的回报。
这几天从这里学到了很多知识,下载到了不少好工具,加上从网络上下载到很多好东西,我想我也应该为别人付出一次了。

[ 本帖最后由 ase 于 2009-8-25 14:48 编辑 ]

TOP

回复 1# ase 的帖子

楼主很下功夫啊!
另外我想问一下怎么将外文的A639刷成简体的?

TOP

我有A632N,先等着,多谢楼主!!!

TOP

引用:
原帖由 阿宝 于 2009-5-16 10:32 发表
楼主很下功夫啊!
另外我想问一下怎么将外文的A639刷成简体的?
看weisun大大的这个帖子,里面有A632N/A639官方ROM的分解方法。
工具可以下最新版的osnbtool,也是weisun大大的帖子:
http://www.pdaclan.cn/thread-12817-1-1.html
得到内带XIP和OS的.NB文件后,用usbloader或者SD卡,进入工程模式刷机。
因为还原成ASUS格式后,内部的CRC对不上,所以不能用官方的工具以及破解过语言的官方工具升级。
USB刷机方法和P535的一样很容易找到。
SD卡的刷机方式,找一张小于2G的SD卡,格式化成FAT16格式,该卡上只有一个文件“A639_Kxx.DIO”,xx为任意数字(好像字母也行没试验过)。A639_Kxx.DIO这个文件就是.NB文件,包含XIP和OS的。不包含一开始用osnbtool解开时的.pre文件(或许包含也能行,我没有试验过)。
这个方法没有试验过,理论上可以,而且没有风险。提前准备好你原来语言的.nb文件,不行了还原就是。
A639进入工程模式方法,看住power按键+确认键(中间的小圆键),然后桶屁屁。(和P535的略又不一样。)

我有个朋友的繁体A639搞成简体,当时他没找到解开官方rom的方法,我从我的机器里面读出了各个partion的bin文件,然后直接拿给他刷机,经过多重苦难,最终是完美搞定了。搞定后,可以用官方的简体中文的rom配合官方的升级程序升级。

TOP

昨天拿到了 HYB25L512160AC-7.5 颗粒。
换上后,不开机。
后检查电压,发现自己还是犯错误了。
之前我说看pin9接地说明内存电压时2.5V的。实际上pin9正面没有出线,我以为是接地的,实际上市到背面连接到两个电阻分压电路上的。
因此实际上A639内存用得的电压是1.8V的。早mobile系统里面,这个还是对电池的使用时间很有帮助的。

后将正面的两个分压电阻,接地的那个直接短路(我用一坨锡盖住,也可以换成0ohm电阻,或者拿掉接内存电压的那个电阻也应该可以。),调整输出电压为2.5V,机器放上电池后,屏幕可以亮了,不过死在白屏幕上。
回想起来,内存中的一颗焊上的时候,刚开始漂的时候,有一些歪,后来是我扶正的。应该一开始歪的时候已经导致内部bga锡球短路了,后来扶正也不能将已经连接起来的锡球分离,需要重新焊。HYB25L512160AC-7.5 的芯片我当初有多买2颗,不过暂时先不换了。等周一看能否找到 HYB18L512160 再说。
在不100%确定找不到 HYB18L512160之前,偶的A639就当砖头放抽屉里吧。
之所以不去先去更换没焊好的HYB25L512160AC-7.5,来修好机器,然后等机会再换HYB18L512160,是因为bga下面的走线很细,数据线连接到bga的pad上,很容易脱落。焊接的次数越多,越有脱落风险。这中脱落的损伤,是不可修复的。

TOP

ASUS的网站上没有过去WM5的ROM下载...够狠的...

TOP

关注楼主的行动,楼主太强大了。我有部A632,64M,是台版的,已经刷成简体5.0,不知道能用楼主的6.0吗?

TOP

谢楼上的关注。
现在正在搞我的128M的A639.
历经千辛万苦高价买到了HYB18L512160芯片,换上后运行正常,但不能识别128M RAM。
花了2天一夜的功夫折腾算是对XIP移植有了理解。
把P535的128M的NK.EXE移植进A639的XIP,个地址对应良好,但死在开机第一屏。抑制过程走了不少弯路,不过这也是一个学习研究的过程。
还要进一步折腾,今晚再搞了。看起来还是有难度的,最终也不是一定能搞定。

如果有高手路过本帖,可否指点这样做是否具备可行性?
NK.EXE文件本身是否需要对应机器的修改?
或者是否其他地方还需要对应修改?


前几天等内存芯片的时候,比较了ASUS官方繁体A632N的WM6 ROM和A639 WM6 ROM,发现同样的文件有些也不一样。
应该不一样的地方倒是不多。
(应该不一样的地方主要是A632N读取MINI SD卡的外置芯片的驱动,A639比A632N多出来的WiFi驱动。)

其实我也不算什么高手,因此要做A632N的ROM需要不少比较资料。
本来想比较A632N WM5简体和繁体ROM,得到一个总要的参考,但是下不到官方ROM,因此没办法。

考虑到A639和A632N是同一个PCB,唯一的区别就是那两个外设模块,因此打算基于A639的ROM做了。
加上这几天搞XIP部分,发现XIP里面还是有很多不通用的东西的,希望这个地方不会成为最终的困难。

其实我觉得内存问题能升级,才是最大的提升。相对来说操作系统只要稳定无BUG,新版本到不是必须的。

现在配的64M内存,虽然一开机剩余内存比很多手机的多多了,但是如果后胎运行了电子狗软件,剩下的内存并不是能够让所有导航软件都能运行,是一个很大的问题。
有些导航虽然目前还可以同时运行起来,但是已经到了边界地带,随着程序升级,很可能将来也会有问题。

有进展继续汇报...

TOP

支持楼主的技术活!!!

TOP

汇报进展。
历经艰辛,终于是搞清楚了所有的东西。
搞清楚了,但不表示都能解决。期间过程如下,每一部的艰辛以及耗费的时间不表。

先是用HYB18L512160的芯片,想完美改128M,既可以用128M RAM,还可以享受1.8V的低功耗。
先是移植P535的NK.exe,结果开机后,WM的启动画面错位,触摸屏失效,过不了welcom的一关,也看不到内存容量显示。直接刷P535的XIP不能启动。修改过的NK.exe移植起来难度很大,不过最终还是搞定了,但是对于我的目的无效。

但是知道了NK.EXE基本上别想通用。

后来发现CPU SDRAM控制器的寄存器的值并不对应HYB18L512160.该芯片有10列,而原来的芯片只有9列。想办法读出这个寄存器,一看,确实需要修改。

这个问题就涉及到修改最底层的loader了。也就是所说的IPL部分。

这时候需要解决的就是,寄存器新的值应该是多少,怎么读出IPL,怎么修改IPL 放入新的寄存器值,怎么写入IPL,还有最关键的,怎么保证修改正确的。如果搞错,机器变转。

看各相关芯片的datasheet,把以上问题都确认了,某日晚上就准备动手了。结果发现改寄存器原来值,有一位设置有些奇怪,去详细读相关内容,发现,该机器(可能是多数Intel CPU方案)外部内存硬件寻址,没有采用Normal方式,而是采用了SA-1110兼容的方式(应该是Intel PXA270开发板就用了这个方式)。
使用该落后的方式,资料里面明确的说明了只能支持到内存芯片中每个bank里面最多13行、9列的内存颗粒...

SA-1110的寻址方式,是硬件上CPU的地址和内存地址线的连接方式的不同,而那个寄存器的那一个bit必须和硬件匹配。也就是说就算修改了那个寄存器也无法改变成normal的方式,而是硬件上必须也匹配到normal的方式才能打到修改的目的。
至此,HYB18L512160的升级方案彻底被枪毙。

换HYB25L512160芯片。该芯片实际上是两个HYB25L256160的芯片的DIE,stack up堆叠,封装在一颗芯片里。
对软件,CPU来说,他实际上是两颗芯片,通过第2个片选分别访问控制。因此每个颗粒寻址大小没超过上述SA-1110模式的限制。

再次换回HYB25L512160到板子上(之前第一次换上不开机问题,实际上市显示屏排线未插到低导致),电压修改到2.5V,开机,内存识别64M。这时候有个新的问题,放入电池能开机,但是按power按键后机器关闭就无法再开机。
如果长按power 关机,那么可以用power开机。
分析故障,猜测进入高度休眠状态(软关机)状态,内存里面的东西没有被正常保留。
继续查资料研究外加推断猜测,在硬件上发现疑点并解决。

现在机器使用上完全正常了,但是内存依旧还是64M。用一个testmem的程序,用其test2(直接内存读写测试)测试先是RAM=128M,但是test1(通过NK.EXE访问内存)一运行就死机。

再次拿各种NK.EXE移植到本机xip,都不行,P535 128M版本的nk.exe还是裂屏触摸功能无效,HP4700的一起动就自己关机。其实这样的结果早就知道,只是心想有没有那个能进入系统看看内存显示。

实际上那个testmem的程序已经清楚的表明,最后的一道障碍就在NK.EXE里面。
而实际上NK.EXE的内存映射表反而不是什么问题,可以按照需求自己随意修改。
基本上修改那个表,只要没有修改错,系统启动运行都是正常的(bootsection里面也有这个表,两个表要做一样的修改)。

看起来,达到这一步,貌似和当年P535直接换了内存颗粒一样的程度。A639/A632N竟然在硬件上还有限制,也是我运气好让我给发现了。

这最后一步,对我来说确是最难的一步。我擅长的是硬件以及和硬件相关的一些初始化的软件商的一些东西。
也许事情就只能这样告一段落了。有诸多的证据表明其他都已经OK,就是NK mod的工作了。

有空的时候还是会研究研究,但应该是希望不大,除非有人帮忙。
(我会向weisun大大求助一下,不求帮忙修改nk.exe,但求能获得mod框架上的一个流程,具体细节通过研究摸索,搞定也就是时间问题。)

现在机器和原来完好的时候一样使用正常,不像原来总是不能软关机,还要常常拔掉电池插回去。所以一边用着,一边慢慢研究吧...

关于A632N的WM6的ROM,现在看来,完全用A639的不可行。虽然两个机器十分类似,但是我比较过两个机器的ROM的NK.EXE,大小都不一样。
而同样是A639的WM6 ROM,简体和繁体的NK.EXE也有几处不一样的。

加上从网上下载不到A632N的简体ROM(WM5的都行),因此无从得到XIP和SYS部分和机型相关的OEM的模块和文件。
所以还需要同事借一台来折腾,不知道人家肯不。
会dump机器里面bin文件的朋友,也可以帮忙dump一个简体中文wm的rom出来放在某处能让我下载到,这样移植起来基本上就是流程性的工作了。这样我暂时就可以不去考虑借别人机器折腾了。

A632N的WM6 ROM是一定会做的,说过的话要算数,不过可能还要托些日子了。
(其实如果不对ROM做大的修改,只是单纯移植,而且移植的系统还是官方的,非常类似机型的系统,真的不难的。难道用A632N的朋友里面就真的没有喜欢倒腾的朋友嘛,呵呵~~)
随后一些日子我还是要在凭着最后一股气往128M RAM的A639努把力。

TOP

论坛短消息我这里用不了,奇怪,联系不上weisun大大。
先自己折腾吧,等联系上了再求教,这样也比较容易理解别人的指点。

TOP

128M的A639已经搞定!
耗时2个月的业余时间,耽误了很多正事儿!
期间80%的时间在看资料思考看代码,20%的时间再不断的试验。最后搞清楚后搞定只用了0.1%的时间。
过程中也体会到了烦恼,要不是感觉到很累的时候已经都走了这么深了,可能就惧难而退了。
过程参考了P535 128M ROM的修改。但由于NK.EXE文件结构十分不同,无法套用。
但研究那段代码起到了一个基础的作用,并且其修改思路放在A639上是一样的,只是实现方法不同而已。
在走投无路的时候,不得不顺着其思路,去看整个代码部分,终于运气不错加上大量的时间,让我发现了修改方法。
顺便说一句,P535的修改和GreateVK的修改完全一样。所谓的优化和改动,是必须的匹配上的修改。

其实如果有类似的纯PDA GPS带128M RAM的机器卖,我宁愿去买一个新的,也不愿意这样费事儿折腾。
而且用这个机器的朋友很少,并非万众期待。如果不是我对改128M突然非理智的较变态的执着,加上赌气的心里以及不错的运气,也不会成功。

耽误的正事儿太多,而且还要做ROM,所以预计过一个月左右发布支持128M RAM的A639的ROM。同时会公布硬件修改的方法。
如果有可能回同时发布WM6.1和WM6.5的支持128M RAM的A639的ROM。
A632N的硬件修改方法一样。软件上就是要单独修改XIP部分。如果能够借到A632N的机器,实现128M也是很简单的。看情况再说。

ROM的精简和移植的原则是,只拿掉类似皮肤图片这些没用的东西(喜欢的朋友可以自己从原来的rom中复制出来放到卡上一样能用)。
去掉错误报告和用户反馈。其他的不动,以保证最好的稳定性和兼容性。
原来也考虑到做最精简版本的但注册表需要删除的地方太多。少删了有垃圾在里面,多删了某个特定的时候就有莫名其妙的bug,不值得。

WM 6.1的ROM会采用ASUS其他型号智能手机的WM6.1官方ROM为模板来提取系统部分。这样兼容性最好。
同一个公司的ROM,结构上很类似,改动最小。
我不是不会改,而是不敢改动太大。多个事实证明,改动越大,错误越多,而且实际上人家的系统相当的复杂,一环扣一环,多余的改动很容易画蛇添足。
常常定制ROM的,有经验的XD门有兴趣可以在这些ROM基础上折腾出新花样。

WM6.5的只好从网上发布的正式版的ROM中提取模板了。也是最少改动为原则,但是坚决拿掉对本机器完全没用的东西。

其实升级成了128M RAM,用什么版本OS都不是关键了,配合32M PP,都是运转如飞,而且可用内存开机后为66M以上(基本够可同时运行3个导航),对于这个移动CPU来说足够了(并行程序太多,内存够,CPU也受不了)。

无论如何,要感谢GreateVK。代码以及其他的Mod完全不值钱,但是修改的思路才是最关键的。
现在的128M的A639,有90%以上的功劳都是GreateVK的。

[ 本帖最后由 ase 于 2009-6-30 10:22 编辑 ]

TOP

呵呵~
P535之后,又有强人出现!支持!支持部落。
以下内容,需要回帖才可以浏览。

TOP

祝贺楼主取得了阶断胜利,希望你能再接再励,更上一层楼!预祝成功!

TOP

nb之极,顶顶顶,鄙视华硕,支持楼主。632n.

TOP

祝贺楼主取得了胜利,希望能再接再励

TOP

我就是用的A632n,期待楼主升级rom....

TOP

okokokokokokok

TOP

翘首以待楼主的A632N简体ROM。

TOP

我就是用的A632n

TOP