打造自己的“品牌机”——修改BIOS全屏开机画面

Author: 张雁 Date: 1999年 第33期 20版

    前几期《电脑报》刊登了数篇关于修改BIOS LOGO的文章后,引起了广泛关注。如果你已领略了修改BIOS LOGO所带来的快感的话,是不是想再试试修改最过瘾、最精彩、最令人兴奋的像品牌机一样的全屏开机画面(下称“OEM LOGO”)?本文就将详细地介绍修改OEM LOGO的每一步骤及相关知识。好了,还等什么,让我们一起来打造自己的品牌机吧! 
#1    你的BIOS支持OEM LOGO吗
    这个问题也许会让你感到失望,但这是修改OEM LOGO首先应解决的问题,你也许会摇摇头说:“我的主板(或是BIOS)是三年前的,不可能支持”。先别这么肯定,笔者的主板是华硕TX97LE(BIOS日期是1998年3月17日),起初也被认为不可能支持OEM LOGO,但经过冒险实验后,证实笔者的BIOS也支持OEM LOGO。通过下面的实验和分析,你也许也会有新的发现。
#1    实验一:
    先用PFLASH(笔者用的是华硕主板自带的)将BIOS数据备份到文件中(例如BIOS.BIN),键入命令:CBROM BIOS.BIN /D(只有1.26以上版本的CBROM才有此功能,有关CBROM程序的情况请参阅《电脑报》1999年第15期的相关文章),此时显示BIOS文件信息如^332001a^:
    Total compress code space = 1B000h(108.00K)
    Total compressed code size = 17FEAh(95.98K)
    Remain compress code space = 03016h(12.02K)
    从第4行可以看到已压缩的EPA格式文件,但却找不到BMP文件的半点踪影。从第5~7行可以看出,BIOS文件最大压缩空间(即“Total compress code space”值的大小)为108K,已用95.98K,还剩12.02K。
    如果我们用以前文章中提到的方法分析上面的信息,从BIOS文件中仅剩12.02K剩余压缩空间和找不到BMP格式的文件这两点就可以“肯定”地判断笔者的BIOS不支持OEM LOGO。但事实真的如此吗?让我们再来看:
#1    实验二:
    笔者随便做了一张640×480大小16色的BMP文件,上面画了几个字,大小为145K,文件名为GOLDWAVE.BMP。首先“强行”将BMP文件植入BIOS.BIN中,键入命令:CBROM BIOS.BIN /LOGO GOLDWAVE.BMP。让笔者惊喜的是,这一过程顺利地进行了,并没有出现错误信息。接着键入:CBROM BIOS.BIN /D,此时显示BIOS文件信息为如^332001b^:
    从多出的一行可以看出,植入的BMP文件Original-Size(原始文件大小)为145.06K, Compressed-Size(压缩后文件大小)为4.43K。咦,原来BMP文件是经过CBROM这个程序压缩了的,怪不得小小的BIOS文件能装下145.06K的“庞然大物”。
    向BIOS文件植入图片这一过程已顺利完成,但能否就此断定笔者的BIOS完全支持OEM LOGO呢?现在只有通过更新BIOS来证明了。
    笔者用PFLASH小心地将已植入图片的BIOS.BIN写入FLASH ROM(快闪储存器)中,怀里紧抱着从朋友那里借来的主板(以防万一),嘴里喊着“阿门”,按下了RESET。随着一声清脆的喇叭响,屏幕顶端显示出熟悉的PCI显卡检测信息,这时笔者已经感觉到BIOS没有出致命性的问题。随后屏幕一闪,上面显示一堆颜色很乱的东西(即后文要谈的“花屏”现象),仔细一看,原来是刚才“随便”做的那张图片,不过已面目全非了,再随后就是蓝天白云……
    终于松了一口气,实验结果完全可以证明笔者的BIOS支持OEM LOGO。从上面的和后来的若干次实验,可以得出以下结论:
    1.并不能以原BIOS文件中是否有BMP格式文件来判断BIOS能否支持OEM LOGO(这也许是许多人已犯过的错误)。
    2.图片是经过压缩后才植入BIOS中的,所以并不能用图片文件的大小来判断压缩后在BIOS文件中所占的空间,而应该以图片中图形的复杂程度和色彩的多少(这与压缩算法有关)来判断。例如,同为16色640×464大小,文件大小为145K的两张BMP图片,一张上面画了几笔,经压缩后仅0.52K;而另一张用了多种颜色,画了多个图形,经压缩后竟达8K。
    3.图片不论是大于或小于640×480像素,都将以平铺的方式来显示(与WIN98桌面背景平铺一样),并且在OEM LOGO底部还有640×16像素用来显示提示信息(即:Press [TAB] to Show POST screen,[DEL] to enter SETUP),而无论图片大小,此信息始终显示,所以创建640×480像素的图片是没有必要的,而640×464像素是最合适的。
    4.FLASH ROM的容量有1M(bit)和2M(bit)之分,而BIOS文件大小一般情况下也有两种,即126K(byte)和256K(byte)。在BIOS支持OEM LOGO的情况下,能否装下OEM LOGO要通过BIOS文件剩余的压缩空间来判断(即“Remain compress code space”值的大小)。一般情况下BIOS文件越大,其剩余压缩空间就越大(一般为60K~120K),而BIOS文件越小,其剩余压缩空间也就越小(一般为3K~30K)。
    5.如果修改OEM LOGO后,出现“花屏、变色”而非“黑屏或无任何显示”的现象,那么并不会影响系统安全,也不是你的BIOS不支持OEM LOGO,之所以出现“花屏、变色”的情况只是与图片有关(如何修改图片将在后文介绍)。
    6.如果在“CBROM xxx.BIN /LOGO xxx.BMP”向BIOS文件中植入图片这一过程中出错,那么可能的原因有两种:一种是BIOS不支持OEM LOGO (笔者测试了从1996到1999年的几十种BIOS文件,还没发现这样的错误信息),解决方法只能就此作罢;另一种是BIOS文件中的剩余压缩空间小于图片压缩后的大小,解决方法是减小图片大小(一般256K的BIOS文件不会出现这种情况)。
    7.由于修改OEM LOGO只是CBROM这个程序向BIOS文件中加入图片数据及调用它的程序代码,并不会修改BIOS的核心模块(包括BOOT BLOCK),所以步骤如果没有出现错误的话,即使你的BIOS不支持OEM LOGO,也不会导致BIOS致命性的错误(如开机无任何反应)。当然并不排除由于操作失误和其他原因而导致失败的可能。
    为证实以上几点结论的可重复性,笔者在另一台VX(BIOS日期是1997年4月)主板上实验通过。由于条件限制,不能在更多的机器上做验证性实验,所以以上的结论可能会在不同的情况下有所偏差,但在大数情况下是适用的(至少是适用于TX及以后的板子)。
    你的BIOS支持OEM LOGO吗?我想现在你的答案已很清楚了,但答案是什么只能由你自己决定,笔者不会煽动你去修改BIOS,毕竟这是计算机操作中最危险的事,导致的任何损失,笔者不会负责。 
#1    创建LOGO图片
    在本文提笔之前,一定有不少朋友已尝试了修改OEM LOGO,但也许会发现“花屏”或“变色”(即画的是这种颜色,而显示时却是其他颜色)的现象,使自己精心设计的LOGO面目全非。而许多朋友认为只要用绘图程序的“另存为16色位图”就可以创建LOGO图片了,其实事情并没有想象的那么简单,问题也就出在这LOGO图片上。所以在创建图片之前,先了解一下LOGO图片的文件格式是必要的。
    《电脑报》今年第20期的《修改BIOS LOGO FAQ》一文中,曾提到这种文件格式是“不知名的二进制文件”,之所以这样认为,我想是用了“CBROM XXX.BIN /LOGO EXTRACT”提取BIOS文件中的图片这一功能,但这一功能提取出的图片文件与原来植入BIOS的图片文件完全不同(虽然文件大小相同)。提取出的文件确实是“不知名的二进制文件”,但植入BIOS的图片文件却是标准的16色“索引”位图文件。
    其实位图文件(BITMAP,即BMP文件)从文件格式上分为两类,一类是我们熟悉的“RGB”格式,它是用“R、G、B”(红、绿、蓝)三种颜色来表示一个点的颜色,例如某一点为蓝色,那么就用代码“00 00 FF”来表示。由于RGB三个量中每个可取256个值(0到FF),所以最多可显示16M(256×256×256)种颜色。另一类是“INDEX”(索引)格式,这种格式的文件首先在文件头(从3CH开始)建立颜色表,然后用颜色表中的颜色代码来表示每一点的颜色。例如颜色表中第15位颜色为蓝色,某一点的颜色也为蓝色,那么就用0F(十六进制)表示这一点的颜色,而不是用RGB格式中的“00 00 FF”来表示。“索引”位图最多只能显示256种颜色。
    上面简单地介绍了位图文件的格式,那么“花屏”到底是什么原因呢?原来一般的16色索引位图颜色表中的颜色可以是16M种颜色中的任何16种,而LOGO图片却是标准的16色索引位图文件,它的颜色表中只能是确定的16种颜色,如果颜色表中的颜色不是这16种或超出了这16种,那么就会引起显示时的“花屏”现象。从原因上看,解决的办法很简单,将LOGO图片创建成标准的16色“索引”位图文件即可(可用“画图”程序的另存为“16色位图”完成)。
    “变色”的原因相对于“花屏”来说就没有那么简单了,由于不知道BIOS是怎样显示LOGO图片的(和一般的程序肯定不一样),所以也就不能从根本上了解原因,但一个有趣的现象是,CBROM的1.03 和1.3版“变色”的结果竟不一样,1.03版把红色变成浅红,1.3版却把红色变成灰色(有时变成其他颜色),1.03版的“变色”不是很严重,而1.3版简直就是张冠李戴地变,效果非常差。由此也可以判断图片是经过CBROM这个程序处理后再压缩进BIOS文件的,而CBROM这个程序也会影响变色。
    上面的分析是不是说不可能避免“变色”呢?其实只要创建图片的过程符合一定的规范,那么基本上可以保证图片不“变色”,下面是笔者在操作中的一点作图经验:
    1.如果你对PHOTOSHOP(下称“PS”)不是很精通,建议使用WINDOWS自带的画笔程序作图,其因有二:一是用画笔程序的“另存为‘16色位图’”就可以创建符合要求的16色索引位图,而PS要用经过“转换成索引模式”,处理颜色表等多种步骤。二是由于PS功能过强,在RGB模式下它会对图片进行特殊的处理,这样反而使图片容易发生“变色”。
    2.作图时,最好使用黑色为背景色,蓝色为文字及图形色,另外可加一些绿色或白色,而少用些其他颜色。如果使用画笔,那么只要注意好使用颜色,画好画后再用“另存为16色位图”就可以了。而用PS时要先将“RGB模式”转换为“INDEX模式”(由于这一过程还要载人颜色表,所以最简便的方法是先用画笔程序建立好16色索引位图后,再用PS打开),再进行绘图。因为在“RGB”模式下PS会对图片进行“去锯齿边缘处理”(即用相近的颜色填充边缘),而这样反而容易引起“变色”。 
    3.尽量画直线和矩形之类的规则图形,少画曲线和圆形之类的,否则最终显示时的“锯齿”现象很严重,影响LOGO图片的整体效果。
    4.最好使用CBROM的1.03版植入图片,因为即使是变色也不会很严重。如果你觉得创建图片太麻烦的话,也可以到我的主页(http://zyweb.myrice.com)下载已做好的LOGO图片。 
#1    最后的“手术”
    终于到了给BIOS做“手术”的时候了,如果你有修改BIOS的经历,那么现在动手就很容易了。首先运行AWDFLASH等BIOS更新程序(建议使用主板厂商所提供的,如ASUS的PFLASH),将BIOS中的数据保存到文件XXX.BIN中(具体操作请参阅有关文章),然后键入CBROM XXX.BIN /LOGO XXX.BMP将做好的LOGO图片植入BIOS文件,最后用AWDFLASH将已植入图片的BIOS文件更新到FLASH ROM中。好了,这样就完事了!哦!别急,还有,真诚地向上帝祈祷,开机后看到的是自己精心设计的LOGO,可别是声、光、味效果俱“佳”的“青烟”效应(你见过吗?很“精彩”的!)。
    最后还是要口罗嗦一句老话:BIOS修改具有一定的危险,修改过程中一定要仔细慎重,以免造成损失!本文所述不当之处,还请各位多多指正,我的E-MAIL是netfree@netease.com。