Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486698
  • 博文数量: 100
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 995
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-22 15:44
文章分类

全部博文(100)

文章存档

2006年(90)

2005年(10)

我的朋友

分类: BSD

2006-02-09 09:51:07

自己修改主板 ACPI BIOS 解决 FB 无法正常软关机[ Ver:1.1 ]

警告与协议:
1、修改 BIOS 不当,可能会让你造成主板无法开机。在确认修改前,请自己衡量风险与效益。
因修改失败造成的所有损失,由修改者自行负责!
2、本文假设你已经知道 BIOS、ACPI、FreeBSD 等为何物。如果你确实不知它们是何物,请点击右上角的 [X] 按钮来关闭此窗口。



作者:海鹰小花,也叫 xiaohua

文章版本:2006-01-25-1.0

修订版本:2006-02-06-1.1

版权:保留!允许全文完整的情况下,未经本人同意自由传播。

如何获得最新的文章:留意本站。或许很快就会更新,或许永远都不会。看作者心情与你的运气。



广告:现在是10秒的广告时间。本工作室提供相应技术支持,欢迎来人来电联系。

广告完毕。




问题:一块 D6VAA 双 CPU PIII 主板在 FB 5.3 下无法正常通过 ACPI 关机(shutdown -p now),造成老板(我)很生气!!!

主板信息: PCB 1.0

BIOS 信息:AWARD BIOS 6.0PG

OS:FreeBSD 5.4

主要 BIOS 修改工具:cbrom ,个人推荐版本:2.19
推荐 BIOS 刷新工具:uniflash 1.40

思路:
  由于板子是同一型号,又经比较,发现 PCB 1.1 板子的 ACPI table 与 PCB 1.0 略有不同。由此引发我修改的想法。


BIOS 比较:
PCB1.0 Award BIOS 1.0d

代码:
cbrom219.exe dvaa10d.bin /d


代码:

              ********  dvaa10d.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
===============================================================================
  0. System BIOS       20000h(128.00K) 154F9h(85.24K)  Dvaa10d.BIN
  1. XGROUP CODE       08F20h(35.78K)  06221h(24.53K)  awardext.rom
  2. CPU micro code    01800h(6.00K)   00FE5h(3.97K)   CPUCODE.BIN
  3. ACPI table        02C28h(11.04K)  0119Ah(4.40K)   ACPITBL.BIN
  4. EPA LOGO          0168Ch(5.64K)   002AAh(0.67K)   AwardBmp.bmp
  5. YGROUP ROM        03C90h(15.14K)  028DEh(10.22K)  awardeyt.rom
  6. GROUP ROM[ 0]     02150h(8.33K)   01030h(4.05K)   _EN_CODE.BIN
  7. VRS ROM           02280h(8.62K)   014BBh(5.18K)   ANTI_VIR.BIN
  8. PCI ROM[A]        0897Bh(34.37K)  0522Ah(20.54K)  3703b.ROM

  Total compress code space  = 36000h(216.00K)
  Total compressed code size = 27B36h(158.80K)
  Remain compress code space = 0E4CAh(57.20K)

                          ** Micro Code Information **
Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID
------------------+--------------------+--------------------+------------------
PPGA   03   0665  |  PPGA   11   0681  |  PPGA   10   0683  |  PPGA   08   0686




PCB1.1 Award BIOS 1.2e

代码:
cbrom219.exe dvaa12e.bin /d


代码:

              ********  dvaa12e.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
===============================================================================
  0. System BIOS       20000h(128.00K) 156BAh(85.68K)  dvaa12e.BIN
  1. XGROUP CODE       09130h(36.30K)  06382h(24.88K)  awardext.rom
  2. CPU micro code    03000h(12.00K)  01B55h(6.83K)   CPUCODE.BIN
  3. ACPI table        02BD0h(10.95K)  01194h(4.39K)   ACPITBL.BIN
  4. EPA LOGO          0168Ch(5.64K)   002AAh(0.67K)   AwardBmp.bmp
  5. YGROUP ROM        03CE0h(15.22K)  02908h(10.26K)  awardeyt.rom
  6. GROUP ROM[ 0]     02150h(8.33K)   01030h(4.05K)   _EN_CODE.BIN
  7. VRS ROM           02280h(8.62K)   014BBh(5.18K)   ANTI_VIR.BIN
  8. PCI ROM[A]        0897Bh(34.37K)  0522Ah(20.54K)  3703b.ROM

  Total compress code space  = 36000h(216.00K)
  Total compressed code size = 289ECh(162.48K)
  Remain compress code space = 0D614h(53.52K)

                          ** Micro Code Information **
Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID
------------------+--------------------+--------------------+------------------
PPGA   03   0665  |  PPGA   11   0681  |  PPGA   14   0683  |  PPGA   08   0686
PPGA   01   068A  |  PPGA   04   06B0  |  PPGA   1C   06B1  |


见两者 ACPI table 一项。


BIOS 的修改:
  将 1.2e 的 ACPI table 提取并加入到 1.0d BIOS 中去。

代码:
F:\BIOS>cbrom219.exe dvaa12e.bin /acpitbl extract
CBROM V2.19 (C)Award Software 2001 All Rights Reserved.
Enter an extract file Name :(ACPITBL.BIN)
[ACPI] ROM is extracted to ACPITBL.BIN
F:\BIOS>


得到文件 ACPITBL.BIN

将提取出来的 ACPI table 加入到 1.0d BIOS 中去。

代码:
F:\BIOS>cbrom219.exe dvaa10d.bin /acpitbl acpitbl.bin
CBROM V2.19 (C)Award Software 2001 All Rights Reserved.
Adding acpitbl.bin . 39.8%


现在看看新的 BIOS

代码:
cbrom219.exe dvaa10d.bin /d


代码:

              ********  dvaa10d.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
================================================================================
  0. System BIOS       20000h(128.00K) 154F9h(85.24K)  Dvaa10d.BIN
  1. XGROUP CODE       08F20h(35.78K)  06221h(24.53K)  awardext.rom
  2. CPU micro code    01800h(6.00K)   00FE5h(3.97K)   CPUCODE.BIN
  3. EPA LOGO          0168Ch(5.64K)   002AAh(0.67K)   AwardBmp.bmp
  4. YGROUP ROM        03C90h(15.14K)  028DEh(10.22K)  awardeyt.rom
  5. GROUP ROM[ 0]     02150h(8.33K)   01030h(4.05K)   _EN_CODE.BIN
  6. VRS ROM           02280h(8.62K)   014BBh(5.18K)   ANTI_VIR.BIN
  7. PCI ROM[A]        0897Bh(34.37K)  0522Ah(20.54K)  3703b.ROM
  8. ACPI table        02BD0h(10.95K)  01194h(4.39K)   acpitbl.bin

  Total compress code space  = 36000h(216.00K)
  Total compressed code size = 27B30h(158.80K)
  Remain compress code space = 0E4D0h(57.20K)

                          ** Micro Code Information **
Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID
------------------+--------------------+--------------------+-------------------
PPGA   03   0665  |  PPGA   11   0681  |  PPGA   10   0683  |  PPGA   08   0686


修改完成。

最后用 uniflash 将新的 BIOS 刷新到主板上去,测试一切正常。

附:
我黑过的的 BIOS 信息
代码:
              ******** bak\dvaa10d.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
===============================================================================
  0. System BIOS       20000h(128.00K) 1563Fh(85.56K)  DVAA10D.BIN
  1. XGROUP CODE       08F20h(35.78K)  06221h(24.53K)  awardext.rom
  2. YGROUP ROM        03C90h(15.14K)  028DEh(10.22K)  awardeyt.rom
  3. GROUP ROM[ 0]     02150h(8.33K)   01031h(4.05K)   _EN_CODE.BIN
  4. ACPI table        02BD0h(10.95K)  01194h(4.39K)   acpitbl.bin
  5. MIB ROM           00562h(1.35K)   00254h(0.58K)   mib.txt
  6. EPA LOGO          021B4h(8.43K)   00588h(1.38K)   epa.bmp
  7. CPU micro code    03000h(12.00K)  01B55h(6.83K)   CPUCODE.BIN
  8. VRS ROM           02280h(8.62K)   014BBh(5.18K)   ANTI_VIR.BIN
  9. ISA ROM[1]        10000h(64.00K)  0EAC6h(58.69K)  romos.bin

  Total compress code space  = 36000h(216.00K)
  Total compressed code size = 325B5h(201.43K)
  Remain compress code space = 03A4Bh(14.57K)

                          ** Micro Code Information **
Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID
------------------+--------------------+--------------------+------------------
PPGA   03   0665  |  PPGA   11   0681  |  PPGA   14   0683  |  PPGA   08   0686
PPGA   01   068A  |  PPGA   04   06B0  |  PPGA   1C   06B1  |



总结(只供参考):
  如果你的机器在 FB 下无法通过 ACPI 关机,那么可以试试此方法。替换、修改的原则一般是:
1、必须是同一南北桥芯片组的主板;
2、尽量是同一厂家同一系列的主板;
3、必须同一品牌的 BIOS;
4、AMI BIOS 也可以通过类似的方法使用 AMIBCP 来修改。

阅读(2416) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~