修复光驱的Fireware
硬件周刊
一台Acer50×光驱(型号为650A-212,版本号为50EA)由于主人误用型号为650A-0XX光驱的Fireware刷新文件50HJ.EXE执行了刷新操作,刷新后,光驱指示灯常亮,光驱面板上的所有按键均不起作用,而且关机后再开机时,系统自检找不到硬盘,更不用说进入系统了,但去掉光驱则正常。
解决死机问题
将光驱接入电脑,现象的确是光驱灯常亮,并且系统在自检时死机,拆开外壳,仔细观察电路板上的Flash芯片,发现是被焊死在电路板上的,想要用拆下来刷新的方法只能到万不得已时才能用了。按道理刷错了Fireware不会影响系统自检,把打开壳的光驱接入电脑,开机,小心触摸电路板上的几个芯片,发现驱动芯片发热偏高,马上断电,估计由于错刷Fireware后,光驱产生不可知的动作错乱,可能会因负载加重而影响电流的供应,从而引起死机,想到如果断开负载后,负载减轻,情况可能要好些。于是拔下两个连接光头部分和进出仓机构的软排线,焊下出仓电机的两根连接线,单独取下电路板。再把电路板插上电源线和IDE数据线开机,系统自检时显示“ATAPI-CDROM-DRIVE-50MAX”,说明光驱被顺利自检出来,自检后系统顺利进入Windows,在Windows中打开“我的电脑”,发现光驱盘符已经出现。至此死机问题得以临时性解决,为下一步重刷Fireware创造了条件。
刷新Fireware
为了修复光驱,在明基网站上下载了有关的两个文件,一个是针对650A-212型50EA版的刷新文件50EA.EXE,另一个是针对650A-0XX型的50JJ版的刷新文件50JJ.EXE,这后一个文件是已错刷进光驱的Flash芯片内的50HJ版的更新版本,这两个文件和前面光驱主人错用的刷新文件50HJ.EXE,加上一个DOS下用的二进制编辑软件(笔者用的软景PC TOOLS 1.0版,这个工具在电脑报1998年配套光盘第二期中有,不要用以前的PC TOOLS工具,因为它不支持FAT 32系统)一起拷进C盘根目录下新建的一个子目录TMP中,另外,由于可能要修改原文件,所以这几个刷新文件要留一个备份,笔者在TMP子目录下再建一个BAK子目录,再将50EA.EXE、50JJ.EXE、50HJ.EXE三个文件复制到BAK子目录中,以防万一。
做了上面的准备工作后关机,先确认损坏的光驱电路板已接上电源和数据线,再开机进入纯DOS状态,进入TMP目录,执行50EA.EXE((图1)),提示第三项“IDE #2 Slave:ATAPI-CDROM-DRIVE-50MAX”(第二IDE接口从盘发现50速光驱)。下面一行英文提示按相应的数字键执行刷新操作,按下“3”后屏幕显示版本号不对,刷新过程中断。看来刷新程序有版本校验功能,型号不对的光驱无法完成刷新操作。由于50JJ是50HJ的后续版本,笔者试着执行50JJ.EXE,程序顺利地将Fireware刷新成50JJ版,再执行50EA.EXE,仍然不行。

因为程序执行时要进行版本的校验,由此笔者想到,能不能修改刷新程序的有关识别码来达到刷新的目的呢?有这个可能性,由于有关的识别码一般应是ASCII字符,因此笔者启动了软景的二进制编辑工具EPC,分别调入50EA.EXE和50JJ.EXE,仔细观察,发现两文件的前面一半的内容完全一样,不一样的是在后面的一半内容,而且中间部分的两个显示版本号的地方前一个文件是50EA,后一个文件对应位置是50JJ,窍门可能就在这里,我将50EA.EXE文件中的两处50EA都改成50JJ后保存退出,再执行修改后的50EA.EXE,谁知屏幕显示文件名错误((图2)),是不是这个文件中还有文件名的校验功能呢?要解决这个问题当然是改名了,由于不能同名,故先将50JJ.EXE改名为50JJ.BAK,再将修改后的50EA.EXE改名为50JJ.EXE,然后执行50JJ.EXE,系统没有提示文件名不对,但仍然提示版本号不对,反复试验均如此,至此,修复工作陷入了僵局。

静下来仔细分析,通过修改50EA.EXE解决不了问题,那么能不能想办法先将“50EA”的识别码刷进Fireware,然后再用50EA.EXE来完成修复工作呢?事到如今只能试一下了,刷进识别码“50EA”的任务只能由原先的50JJ.EXE作为载体来完成,先将TMP目录下的几个刷新文件用TMP\BAK下的备份文件全部恢复原貌,再用二进制编辑器打开50JJ.EXE,找到两处“50JJ”字符串,修改成“50EA”字符串后保存退出((图3)),由于刷新文件要进行文件名的校验,所以还需要改名,选将50EA.EXE改名为50EA.BAK,再将修改后的50JJ.EXE改名为50EA.EXE,再用这个名为50EA.EXE、实为50JJ.EXE的文件来执行刷新,刷新非常顺利地完成,这时识别码已按设想写入了Fireware。

下一步就是要执行真正的50EA.EXE了,当然还是先用BAK下的文件来还原TMP下被修改后的文件,再执行50EA.EXE,系统第三条提示是在第二IDE口从盘发现光驱,按照提示按下“3”,版本校验顺利完成,紧接着系统只用了五秒钟的时间顺利把Fireware刷写完毕,一直是常亮的光驱指示灯也马上熄灭了,成功了!先按捺住喜悦,马上关机,将电路板插上两条连接软排线,焊上两根电机线,组装好后接入主机,开机,系统顺利进入Windows。试着放入一张光盘,能很好地读出来,到这时修复Fireware的工作宣告完成。
如果大家有类似的问题不妨一试,值得注意的是上面的过程中很多地方涉及到改文件名的问题,一定要有原文件的备份,否则的话,连自己都不知道各文件的对应关系就麻烦了。
相关疑问
有人可能要问:既然刷新程序要校验版本,为什么当初会错刷50HJ版的Fireware?我也有同样的问题,为了解答这个问题,我将这个故障过程又重演了一遍,发现这其中的原因很简单:当初用来刷新的50HJ.EXE是1.15版的Fireware,没有版本的校验过程,所以不管版本的对错,刷写会直接进行下去,而其他的几个文件均是1.21版的Fireware,都有版本的校验过程,只要版本的校验通不过,刷写就会中断。