CN106980569A - 一种利用 usb键盘灯表示bios post进度的方法 - Google Patents
一种利用 usb键盘灯表示bios post进度的方法 Download PDFInfo
- Publication number
- CN106980569A CN106980569A CN201710254578.3A CN201710254578A CN106980569A CN 106980569 A CN106980569 A CN 106980569A CN 201710254578 A CN201710254578 A CN 201710254578A CN 106980569 A CN106980569 A CN 106980569A
- Authority
- CN
- China
- Prior art keywords
- lamps
- progresses
- keyboard
- bios
- bright
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/325—Display of status information by lamps or LED's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种利用USB键盘灯表示BIOS POST进度的方法,通过组合USB键盘上的三个指示灯的亮、灭和闪烁的各种情况,制定出不同BIOS POST进度码和所述三个指示灯状态的对应关系,每一种状态来表示BIOS POST某一进度;当BIOS POST达到某一个进度阶段时,首先将POST进度码存入NVRAM中,等待键盘灯控制程序从NVRAM获取POST进度码,从而控制三个指示灯的亮、灭和闪烁。本发明的技术方案利用常见的USB键盘,通过BIOS程序设计控制键盘灯,来表明BIOS POST进度,此方法能指明BIOS POST进度,简单方便,可以快速定位主板故障点,加快问题的解决进度。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种利用USB键盘灯表示BIOS POST进度的方法。
背景技术
主板从上电到引导系统这个阶段叫BIOS POST阶段,这个阶段BIOS执行主板自检以及外部设备的初始化工作,检查BIOS POST进度可以判断BIOS正在执行的任务,假如系统由于故障卡死,无法继续运行,只要检查BIOS POST进度,就可以快速找到故障的原因。一般情况下,可以将专门的诊断卡插入主板,通过检查BIOS不断写入诊断卡上的诊断代码来确定BIOS POST进度,也可以将BIOS诊断模式打开,通过检查串口终端串口信息来确定BIOSPOST进度情况,外接显示器,只能通过显示屏幕信息大致判断BIOS POST进度。
目前通过诊断卡和串口信息来判断BIOS POST进度的方法,只适合主板研发阶段。而在主板量产阶段,为了提高BIOS POST速度,需要将BIOS诊断模式关闭,串口无法获取信息;另外,诊断卡是专业设备,也不可能为每片主板配置一个诊断卡,即使有诊断卡插入主板上,主板装入机箱中,要打开机箱才能开到诊断卡,极其不方便检查。除此之外,在客户端一旦主板在BIOS POST阶段出现故障卡死,也将无法判断BIOS POST进度,这给故障的定位带来很大的麻烦。
发明内容
针对以上技术问题,本发明公开了一种利用USB键盘灯表示BIOS POST进度的方法,在没有诊断卡和串口信息跟进BIOS POST进度,此方法能指明BIOS POST进度,简单易行,快速定位主板故障点。
对此,本发明采用的技术方案为:
一种利用USB键盘灯表示BIOS POST进度的方法,通过组合USB键盘上的三个指示灯的亮、灭和闪烁的各种情况,制定出不同BIOS POST进度码和所述三个指示灯状态的对应关系,每一种状态来表示BIOS POST某一进度;当BIOS POST达到某一个进度阶段时,首先将POST进度码存入NVRAM中,等待键盘灯控制程序从NVRAM获取POST进度码,从而控制三个指示灯的亮、灭和闪烁。
优选的,所述指示灯状态包括不同频率的闪烁。
此技术方案,采用常见的USB键盘和BIOS程序设计,实现了表示BIOS POST的功能。每个指示灯以不同频率的闪烁,增加表示的状态,假如每个指示灯有N种状态,三个指示灯,理论上可以表示NxNxN状态,对应NxNxN个进度码,可以很详细地表示BIOS POST各个阶段的进度。一旦主板BIOS POST阶段出现故障,通过三个指示灯的状态,可以快速定位故障点,加快问题的解决进度。
作为本发明的进一步改进,所述三个指示灯为Num Lock灯、Caps Lock灯和ScrollLock灯。作为本发明的进一步改进,所述利用USB键盘灯表示BIOS POST进度的方法包括以下步骤:
步骤S1,启动BIOS,BIOS初始化SMM和初始化周期性SMI服务程序,并打开周期性SMI中断;
步骤S2,初始化USB控制器,为USB控制器临时分配资源,为USB控制器挂载基础服务程序,让USB控制器能正常工作;USB控制器开始工作后,将键盘灯控制程序挂载到周期性SMI服务程序中,使SMI中断周期性触发,控制键盘灯控制程序周期性运行;
步骤S3,键盘灯控制程序运行时,首先检测是否有键盘存在,如果没有键盘存在,则返回,等待下一次键盘灯控制程序执行时,继续检查键盘是否存在;如果检测到键盘存在,键盘灯控制程序读取NVRAM,获取BIOS POST进度码,然后根据所述BIOS POST进度码和三个指示灯状态的对应关系,将BIOS POST进度码转换成控制键盘灯状态的命令数据,然后USB控制器向USB键盘发起控制传输,将命令数据发送给键盘,设置键盘的三个指示灯的状态。
作为本发明的进一步改进,所述利用USB键盘灯表示BIOS POST进度的方法还包括:
步骤S4,判断BIOS POST是否结束,如果没有结束,则返回,等待下一次SMI中断触发,重新执行控制程序;如果已经结束,将键盘灯控制程序从周期性SMI服务程序中移除,让控制程序不再执行,将键盘灯恢复到全灭状态。
作为本发明的进一步改进,所述指示灯的闪烁控制方法包括以下步骤:
所述周期性SMI中断的中断触发时间为X,键盘指示灯闪烁每周期的亮或灭的时间为Y,其中,X和Y单位相同;键盘灯控制程序发送让键盘指示灯亮的命令数据,执行Y/X次;再发送键盘灯灭的命令数据,也执行Y/X次。
作为本发明的进一步改进,所述指示灯的闪烁控制还包括:在NVRAM中记录执行的次数。
作为本发明的进一步改进,所述不同BIOS POST进度码和三个指示灯状态的对应关系包括:
BIOS POST进度为内存初始化,POST进度码为0x01,NumLock灯1秒闪烁,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为初始化PCIE根桥,POST进度码为0x02,NumLock灯100毫秒闪烁闪烁,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为ACPI初始化,POST进度码为0x03,NumLock灯亮,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为PCIE总线初始化,POST进度码为0x04,NumLock灯亮,CapsLock1秒闪烁和ScrollLock灯灭;
BIOS POST进度为存储控制器初始化,POST进度码为0x05,NumLock灯亮,CapsLock灯100毫秒闪烁,ScrollLock灯灭;
BIOS POST进度为显示控制器初始化,POST进度码为0x06,NumLock灯亮,CapsLock灯亮,ScrollLock灯灭;
BIOS POST进度为显示控制器初始化,POST进度码为0x07,NumLock灯亮,CapsLock灯亮,ScrollLock灯1秒闪烁;
BIOS POST进度为枚举PCIE设备,POST进度码为0x08,NumLock灯亮,CapsLock灯亮,ScrollLock灯100毫秒闪烁;
BIOS POST进度为输入输出控制设备,POST进度码为0x09,NumLock灯亮,CapsLock灯亮,ScrollLock灯亮;
BIOS POST进度为引导系统,POST进度码为0x0A,NumLock灯灭,CapsLock灯灭,ScrollLock灯灭。
上述不同BIOS POST进度码和三个指示灯状态的对应关系只是其中的一种列举,也可以根据需要,采用其他的指示灯状态的对应关系。
与现有技术相比,本发明的有益效果为:
本发明的技术方案利用极其常见的USB键盘,通过BIOS程序设计控制键盘灯,来表明BIOS POST进度。在主板开发阶段可以协助开发者定位问题,增加了一种简单方便的诊断方法;在终端用户现场主板出现故障时,没有诊断卡和串口信息跟进BIOS POST进度,此方法能指明BIOS POST进度,简单易行,能快速定位主板故障点。
附图说明
图1是本发明一种利用USB键盘灯表示BIOS POST进度的方法的流程图。
具体实施方式
下面对本发明的较优的实施例作进一步的详细说明。
键盘上有三个指示灯,Num Lock、Caps Lock和Scroll Lock,通过组合三个指示灯的亮、灭和闪烁,衍生出多种状态,每一种状态来表示BIOS POST某一进度,具体如表1所示。当BIOS POST达到某一个进度阶段时,首先将POST进度码存入NVRAM中,等待键盘灯控制程序从NVRAM获取POST进度码。
表1不同BIOS POST进度码和三个指示灯状态的对应关系
BIOS POST进度 | POST进度码 | NumLock灯 | CapsLock灯 | ScrollLock灯 |
内存初始化 | 0x01 | 1秒闪烁 | 灭 | 灭 |
初始化PCIE根桥 | 0x02 | 100毫秒闪烁 | 灭 | 灭 |
ACPI初始化 | 0x03 | 亮 | 灭 | 灭 |
PCIE总线初始化 | 0x04 | 亮 | 1秒闪烁 | 灭 |
存储控制器初始化 | 0x05 | 亮 | 100毫秒闪烁 | 灭 |
显示控制器初始化 | 0x06 | 亮 | 亮 | 灭 |
USB控制器初始化 | 0x07 | 亮 | 亮 | 1秒闪烁 |
枚举PCIE设备 | 0x08 | 亮 | 亮 | 100毫秒闪烁 |
输入输出控制设备 | 0x09 | 亮 | 亮 | 亮 |
引导系统 | 0x0A | 灭 | 灭 | 灭 |
具体而言,如图1所示,所述利用USB键盘灯表示BIOS POST进度的方法包括以下步骤:
首先,系统上电以后,BIOS开始运行,进行最基本的芯片和程序初始化,为后面的程序运行提供基本的服务,然后初始化SMM,初始化周期性SMI服务程序,打开周期性SMI中断。当前阶段还没有进行内存初始化,没有内存可以使用,还不能让键盘上面所有按键正常使用,USB控制器属于PCIE设备,PCIE设备也没有初始化,而USB键盘挂在USB控制器上,所以要先初始化USB控制器,为USB控制临时分配资源,为USB控制器挂载基础服务程序,让控制器能正常工作。
USB控制器开始工作后,立即将键盘灯控制程序挂载到周期性SMI服务程序中,这样SMI中断周期性触发,键盘灯控制程序就开始周期性运行了。键盘灯控制程序运行时,首先要检测是否有键盘存在,如果没有键盘存在,则返回,等待下一次控制程序执行时,继续检查键盘是否存在;如果检测到键盘存在,当BIOS POST达到某一个进度阶段时,首先将POST进度码存入NVRAM中,键盘灯控制程序将读取NVRAM,获取BIOS POST进度码,然后根据表1中进度码和键盘灯状态的对应关系,将进度码转换成控制键盘灯状态的命令数据,USB控制器向USB键盘发起控制传输,将命令数据发送给键盘,设置键盘灯状态,从而控制三个指示灯的亮、灭和闪烁。判断BIOS POST是否结束,如果没有结束,返回,等待下一次SMI中断触发,重新执行控制程序;如果已经结束,将键盘灯控制程序从周期性SMI服务程序中移除,让控制程序不再执行,将键盘灯恢复到全灭状态,方便用户操作。
这里关于指示灯闪烁的设置,需要键盘灯控制程序执行键盘灯的周期性亮灭控制,例如1秒周期性闪烁,需要键盘灯亮1秒钟,灭1秒钟。采用以下方法进行控制:假如周期性SMI中断X毫秒触发1次,控制程序每X毫秒执行1次,那么控制程序发送让键盘亮的命令数据,执行1/X次,再发送键盘灯灭的命令数据,也执行1/X次,这样就实现了,可以在NVRAM中记录执行的次数。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种利用USB键盘灯表示BIOS POST进度的方法,其特征在于:通过组合USB键盘上的三个指示灯的亮、灭和闪烁的各种情况,制定出不同BIOS POST进度码和所述三个指示灯状态的对应关系,每一种状态来表示BIOS POST某一进度;当BIOS POST达到某一个进度阶段时,首先将POST进度码存入NVRAM中,等待键盘灯控制程序从NVRAM获取POST进度码,从而控制三个指示灯的亮、灭和闪烁。
2.根据权利要求1所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于:
所述指示灯状态包括不同频率的闪烁。
3.根据权利要求1所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于:
所述指示灯为Num Lock灯、Caps Lock灯和Scroll Lock灯。
4.根据权利要3所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于,其包括以下步骤:
步骤S1,启动BIOS,BIOS初始化SMM和初始化周期性SMI服务程序,并打开周期性SMI中断;
步骤S2,初始化USB控制器,为USB控制器临时分配资源,为USB控制器挂载基础服务程序,让USB控制器能正常工作;USB控制器开始工作后,将键盘灯控制程序挂载到周期性SMI服务程序中,使SMI中断周期性触发,控制键盘灯控制程序周期性运行;
步骤S3,键盘灯控制程序运行时,首先检测是否有键盘存在,如果没有键盘存在,则返回,等待下一次键盘灯控制程序执行时,继续检查键盘是否存在;如果检测到键盘存在,键盘灯控制程序读取NVRAM,获取BIOS POST进度码,然后根据所述BIOS POST进度码和三个指示灯状态的对应关系,将BIOS POST进度码转换成控制键盘灯状态的命令数据,然后USB控制器向USB键盘发起控制传输,将命令数据发送给键盘,设置键盘的三个指示灯的状态。
5.根据权利要求4所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于,还包括:
步骤S4,判断BIOS POST是否结束,如果没有结束,则返回,等待下一次SMI中断触发,重新执行控制程序;如果已经结束,将键盘灯控制程序从周期性SMI服务程序中移除,让控制程序不再执行,将键盘灯恢复到全灭状态。
6.根据权利要求5所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于,所述指示灯的闪烁控制方法包括以下步骤:
所述周期性SMI中断的中断触发时间为X,键盘指示灯闪烁每周期的亮或灭的时间为Y,其中,X和Y单位相同;键盘灯控制程序发送让键盘指示灯亮的命令数据,执行Y/X次;再发送键盘灯灭的命令数据,也执行Y/X次。
7.根据权利要求6所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于,所述指示灯的闪烁控制还包括:在NVRAM中记录执行的次数。
8.根据权利要求7所述的利用USB键盘灯表示BIOS POST进度的方法,其特征在于:
所述不同BIOS POST进度码和三个指示灯状态的对应关系包括:
BIOS POST进度为内存初始化,POST进度码为0x01,NumLock灯1秒闪烁,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为初始化PCIE根桥,POST进度码为0x02,NumLock灯100毫秒闪烁闪烁,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为ACPI初始化,POST进度码为0x03,NumLock灯亮,CapsLock灯和ScrollLock灯灭;
BIOS POST进度为PCIE总线初始化,POST进度码为0x04,NumLock灯亮,CapsLock1秒闪烁和ScrollLock灯灭;
BIOS POST进度为存储控制器初始化,POST进度码为0x05,NumLock灯亮,CapsLock灯100毫秒闪烁,ScrollLock灯灭;
BIOS POST进度为显示控制器初始化,POST进度码为0x06,NumLock灯亮,CapsLock灯亮,ScrollLock灯灭;
BIOS POST进度为显示控制器初始化,POST进度码为0x07,NumLock灯亮,CapsLock灯亮,ScrollLock灯1秒闪烁;
BIOS POST进度为枚举PCIE设备,POST进度码为0x08,NumLock灯亮,CapsLock灯亮,ScrollLock灯100毫秒闪烁;
BIOS POST进度为输入输出控制设备,POST进度码为0x09,NumLock灯亮,CapsLock灯亮,ScrollLock灯亮;
BIOS POST进度为引导系统,POST进度码为0x0A,NumLock灯灭,CapsLock灯灭,ScrollLock灯灭。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710254578.3A CN106980569B (zh) | 2017-04-18 | 2017-04-18 | 一种利用usb键盘灯表示bios post进度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710254578.3A CN106980569B (zh) | 2017-04-18 | 2017-04-18 | 一种利用usb键盘灯表示bios post进度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980569A true CN106980569A (zh) | 2017-07-25 |
CN106980569B CN106980569B (zh) | 2020-05-29 |
Family
ID=59346017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710254578.3A Active CN106980569B (zh) | 2017-04-18 | 2017-04-18 | 一种利用usb键盘灯表示bios post进度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980569B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678929A (zh) * | 2017-09-14 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种判断服务器运行阶段的系统及方法 |
CN109669727A (zh) * | 2018-12-12 | 2019-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种服务器的配置方法、系统及相关组件 |
CN111131896A (zh) * | 2019-05-28 | 2020-05-08 | 青岛海信宽带多媒体技术有限公司 | 一种控制机顶盒指示灯闪烁的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760840A (zh) * | 2004-10-11 | 2006-04-19 | 佛山市顺德区顺达电脑厂有限公司 | 利用电脑键盘上的led灯显示侦错码的方法 |
CN104679626A (zh) * | 2013-11-30 | 2015-06-03 | 鸿富锦精密工业(深圳)有限公司 | Bios调试侦测系统及方法 |
CN104850485A (zh) * | 2015-05-25 | 2015-08-19 | 深圳国鑫恒宇技术有限公司 | 一种基于bmc远程诊断服务器开机故障的方法及系统 |
-
2017
- 2017-04-18 CN CN201710254578.3A patent/CN106980569B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760840A (zh) * | 2004-10-11 | 2006-04-19 | 佛山市顺德区顺达电脑厂有限公司 | 利用电脑键盘上的led灯显示侦错码的方法 |
CN104679626A (zh) * | 2013-11-30 | 2015-06-03 | 鸿富锦精密工业(深圳)有限公司 | Bios调试侦测系统及方法 |
CN104850485A (zh) * | 2015-05-25 | 2015-08-19 | 深圳国鑫恒宇技术有限公司 | 一种基于bmc远程诊断服务器开机故障的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678929A (zh) * | 2017-09-14 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种判断服务器运行阶段的系统及方法 |
CN109669727A (zh) * | 2018-12-12 | 2019-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种服务器的配置方法、系统及相关组件 |
CN109669727B (zh) * | 2018-12-12 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种服务器的配置方法、系统及相关组件 |
CN111131896A (zh) * | 2019-05-28 | 2020-05-08 | 青岛海信宽带多媒体技术有限公司 | 一种控制机顶盒指示灯闪烁的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106980569B (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102314388B (zh) | 支持智能型平台管理接口的服务器的测试方法 | |
CN100472460C (zh) | 检测和显示计算机自检信息的方法及装置 | |
CN102521105B (zh) | 一种开机自检信息输出方法、虚拟机管理器和处理器 | |
CN106980569A (zh) | 一种利用 usb键盘灯表示bios post进度的方法 | |
CN106561018A (zh) | 监测服务器的方法、监测装置及监测系统 | |
CN106055440B (zh) | 一种通过bmc实现服务器异常断电的测试方法及系统 | |
CN107656856A (zh) | 一种基于cpld的系统状态显示方法及装置 | |
CN104077220A (zh) | Mips架构操作系统内核的调试方法和装置 | |
CN102693180B (zh) | 一种硬件状态的监测方法和系统 | |
CN103793302A (zh) | 除错装置 | |
US8909989B2 (en) | Method for outputting power-on self test information, virtual machine manager, and processor | |
CN109656761A (zh) | 基于linux系统的服务器HT自动测试方法及系统 | |
CN109582505A (zh) | 一种bios选项默认值的恢复系统、方法及装置 | |
CN104424086B (zh) | 电脑检错模块和方法 | |
CN106909346A (zh) | 一种基于一体计算机的uefi固件实现方法 | |
CN101425030B (zh) | 基本输入输出系统的除错方法 | |
CN106909400A (zh) | 一种基于笔记本计算机的uefi固件实现方法 | |
CN109086081A (zh) | 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质 | |
CN103324600B (zh) | 运行计算模块的系统及其运行方法 | |
CN100412761C (zh) | 以图文方式显示计算机系统的唤醒事件的方法 | |
CN102541702A (zh) | 自动重启主机板及记录除错数据的测试方法及其重启装置 | |
TW201527965A (zh) | Bios調試偵測系統及方法 | |
CN1991754A (zh) | 信息显示系统及方法 | |
CN101923503B (zh) | 调整内存内部参数的方法及使用其的电脑系统 | |
CN109344107A (zh) | 一种Linux系统控制台设置的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |