巧改品牌机BIOS代码,让声卡重新发声
软件世界
主机配置:金长城电脑主机CELERON 333、64MB内存、3.4GB硬盘、24速光驱,精英P6SET-ML主板(SiS620和5595芯片),主板集成声卡(芯片HT8338A/PCI)和显卡及调制解调器(芯片PCT789T)和网卡(芯片HF2019A/PCI)。原BIOS版本号为V1.0。
升级意向:由于原来硬盘太小,客户想把硬盘换成西捷酷鱼U4-40GB,同时加装一个52×光驱。这类的升级很简单,只要将原来的硬盘和光驱摘下来,把新的装上去就可以了,唯一要考虑的是老主板是否支持40GB的大硬盘。
故障现象:正如起初所顾虑的,当把40GB硬盘挂上后,果真不能检测到硬盘。当用“AUTO DETECTED HARDISK”选项时,计算机长时间的扫描检测硬盘,没有结果也不继续运行。这肯定是认不到40GB的大硬盘。如此简单的问题,只要升级不就解决了吗。于是马上从金长城网站下载了一个p6set-ml(PCB V2.0)的BIOS代码程序,启动Win98的MS-DOS命令,用AWDFLASH命令把新的BIOS程序代码写进ASD AE20008F芯片后,重新启动电脑,结果还是认不到40GB的硬盘。
后来又在网上搜索“P6SET-ML”,并从http://www.elancn.com/download.htm下载了P6SET-ML.ZIP(精英XCEL2000 P6SET-ML BIOS V1.4b(SIS620)长城OEM专用版,其中有备注说明能够找到65GB的硬盘),更新日期是2001年2月22日,同样用AWDFLASH进行刷新。还真的不错,非常顺利的找到了40GB硬盘。本来认为升级问题已经解决,接下来分区,安装Win98操作系统就可以了。当安装完Win98,再安装声卡驱动时,问题出来了。当把声卡驱动安装完毕,右下角的任务栏里也出现了黄色的“小喇叭”图标,但是只要你一点击鼠标,喇叭里就连续“嘟嘟”响个不停,大约30秒后才会停下来。再点击鼠标,“嘟嘟”声又再次重新出现。只要与声音有关如WAV,MP3,VCD文件等都不能播放,只要播放,就“嘟嘟”声不断,无法正常听音乐。
检修故障过程:
1.仔细检查“我的电脑”→“属性”里面了没有“!”出现,所有的IRQ,地址都没有冲突提示。这就让人犯难了。
2.是不是自己没有把系统装好,或在安装系统过程中,有什么问题提示没有注意到?于是重新安装Win98,结果还是老样子。
3.为了验证是不是系统原因,在CMOS里屏蔽掉大硬盘,直接挂接用户原来的小硬盘,启动原来的Win98系统,很不幸的是用户原来的Win98竟然不能启动,连进安全模式也是蓝屏。
4.第一分区时采用的是SFDISK(Smart Fix Disk),因为笔者知道SFDISK分区的兼容性不是很好,用它分好的区,Win98下的FDISK有时不认识,PQMAGIC魔术分区工具也不认识。在无可奈何之下,笔者重新用FDISK慢慢的分区,再次安装Win98时,故障依旧存在。
5.会不会是声卡原来的驱动不很好,和某个硬件发生了冲突。于是从网上下载最新的8338声卡的驱动,进行安装,结果还是一样,声卡一装好,小喇叭一出来,非常有节奏的“嘟嘟”便开始响了。
6.实在没有别的办法,就建议用户花30元买一个旧的PCI声卡凑合着听吧!为了验证能不能另外加装声卡,拿了一个创新PCI128声卡,在CMOS里把AUDIO/Modem选项设为DISABLE。重新启动电脑,进入Win98时发现新硬件,安装完声卡后,重新启动电脑,当出现Win98的蓝天白云后,长时间的光标闪烁,硬盘也没有动静。死机了。
7.笔者懊恼之余,冷静地坐下来想:原来主机工作完全正常,为什么升级完BIOS后就会出现这种情况呢?为了验证声卡是不是真的坏了,笔者又用AWDFLASH重新刷回原来的老BIOS,用GHOST恢复客户原来的Win98操作系统(顾客在最初用GHOST做的备份光盘),喇叭里又传出那熟悉的音乐声。这时可以断定声卡是好的,那唯一造成这种情况的可能就是BIOS里的某个模块文件与声卡有冲突。(其中还有一点小麻烦,原来GHOST备份的C盘是FAT16格式,而笔者把40GB硬盘分了5GB给C盘,FAT32格式,直接用GHOST不能直接恢复,需要先用PQ或者CVT工具把FAT32转换为FAT,才能用GHOST进行恢复)。
于是笔者用CBROM/D命令仔细分析OLD和NEW两个版本BIOS的不同之处,发现使用CBROM命令不能够把SYSTEM和CPU CODE、XGROUP剥离出来,那只有把OLD_BIOS和NEW_BIOS不同的部分剥离出来,单独添加到NEW_BIOS中,用AWDFLASH写进芯片,再重新启动电脑。这里先介绍以上出现的几种代码:
System BIOS代码,其中是计算机的基本的BIOS中断调用;(CBROM命令不能够进行修改,也不能够进行对比试验。)BIOS代码驻留内存,供系统执行时调用,自身不活动。
ACPI table高级电源管理,计算机启动后驻留内存,并监控计算机的工作;
VGA ROM,集成显卡的BIOS驱动;
VRS ROM,病毒检测程序,防止病毒改写硬盘主分区表和系统引导区。(新旧比较前后大小一致,代码的版本应该是一致的。该项应不予考虑。)
于是笔者用cbrom p6set-ml.old /acpi(VGA) extract 命令分别把ACPI和VGA代码块分离出来后,先用cbrom p6set-ml.bin /VGA 62010350.tv把新BIOS中VGA_BIOS代码更换为旧的,写回到芯片中,重新启动计算机,进入WIN98系统,故障依旧。再用cbrom p6set-ml.bin /acpi acpitbl.bin命令把新BIOS中的ACPI代码换为旧的,写回芯片中,重新启动计算机,进入Win98系统时,喇叭里传出了盼望已久的音乐声。问题终于解决了,同时电脑的ACPI功能也能够正常使用。
结论:新BIOS代码中的ACPI程序有所变动,或许是PCB版本不同的原因,在ACPI代码运行时和声卡有冲突,结果导致了声卡不能正常使用。在新主板出厂时,同时配置的BIOS代码都经过了系统检测,是没有什么问题的。后来生产厂家为了满足广大用户升级的需要,写出新BIOS代码,以增加认识新硬件或者解决一些BUG问题。但由于没有进行完全系统应用检测,也就出现了以上的情况。
最后笔者在这里提醒想升级的朋友们注意:在升级你的计算机的BIOS时,不但要注意主板的型号,还要注意PCB的版本号。