本发明涉及服务器技术领域,尤其涉及一种输出不同类型系统启动信息的方法及装置。
背景技术:
随着服务器的不断发展,各种行业对于服务器系统的稳定性与可靠性的要求越来越高,但是随着服务器的功能越来越强大,系统开机的时间越来越长。尽可能的缩短开机时间及在系统出现故障时可以快速诊断出原因,是服务器可以快速正常的运行的关键。
服务器上的BIOS一般有两种类型,一个是关闭Debug mode的BIOS,也就是开机时间尽可能最小化,尽可能不输出启动信息;一种打开Debug mode的BIOS,也就是方便用户对出故障的服务器进行快速诊断的,但是会延长开机时间。传统的BIOS在生产可执行的二进制文档时,已经确定好了是否输出启动信息以及输出哪种类型的启动信息。
在服务器研发和客户使用过程中,如果使用的是Debug mode关闭的BIOS,当出现系统开机异常及系统单个功能异常的情况,需要重新烧录成Deubg mode打开的BIOS,通过收集到的串口信息分析定位后,例如内存,主板上插的PCIE卡等造成了宕机,解决问题后,还需要烧录回Debug mode关闭的BIOS。而如果在在服务器研发和客户使用过程中一直使用Debug mode打开的BIOS,每次可以比较快速的诊断故障原因,但每次开机时间会增加,造成时间浪费。
系统启动过程中出现故障时,常用的Debug方法,是向串口输出启动信息,但是向串口输出启动信息会增加系统启动时间。输出的信息越多,启动时间越长。传统的BIOS在生产可执行的二进制文档时,已经确定好了是否输出启动信息以及输出哪种类型的启动信息,不能在缩短开机时间和快速诊断系统故障进行弹性选择。
技术实现要素:
本发明针对目前需求以及现有技术发展的不足之处,提供一种输出不同类型系统启动信息的方法及其装置,本发明结合BIOS与BMC,实现输出不同类型系统启动信息的方法。
为了实现上述目的,本发明采用以下的技术方案:
一种输出不同类型系统启动信息的方法,包括以下步骤:
编写BIOS程序并进行编译;
将编译后的BIOS程序烧录到服务器上;
BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
优选地,编写BIOS程序并进行编译,包括:
在服务器系统现有的BIOS代码的基础上,梳理出系统启动过程中向串口输出的启动信息;
将系统启动过程中输出的启动信息进行归纳分类;
为分类后的系统启动过程中输出的启动信息添加不同执行条件,对每类信息分别进行控制;
对编写好的BIOS程序进行编译。
优选地,所述将编译后的BIOS程序烧录到服务器上指将编译后的BIOS程序烧录到服务器主板的ROM芯片上。
优选地,在BIOS程序根据用户的不同命令,输出不同类型系统启动信息之前,还包括:
用户通过IPMI命令设置输出信息的类型,所述输出信息的类型包括不输出任何系统启动信息、输出其中一类系统启动信息、输出其中若干类型系统启动信息或全部类型的系统启动信息。
本发明还提供了基于上述的输出不同类型系统启动信息的方法的输出不同类型系统启动信息的装置,包括:
编写编译模块,用于编写BIOS程序并进行编译;
烧录模块,用于将编译后的BIOS程序烧录到服务器上;
输出模块,用于BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
优选地,编写编译模块进一步包括:
梳理模块,用于在服务器系统现有的BIOS代码的基础上,梳理出系统启动过程中向串口输出的启动信息;
归纳分类模块,用于将系统启动过程中输出的启动信息进行归纳分类;
控制模块,用于为分类后的系统启动过程中输出的启动信息添加不同执行条件,对每类信息分别进行控制;
编译模块,用于对编写好的BIOS程序进行编译。
优选地,还包括:
设置模块,用于用户通过IPMI命令设置输出信息的类型,所述输出信息的类型包括不输出任何系统启动信息、输出其中一类系统启动信息、输出其中若干类型系统启动信息或全部类型的系统启动信息。
本发明的有益效果:
本发明提供一种输出不同系统启动信息的程序,实现了用户在不同的场景需求下,权衡开机时间和向串口输出启动信息的必要性后,自由选择是否输出启动信息,以及输出什么类型的信息。当系统正常的开机时,通过BMC可以带外设置为不向串口输出任何系统启动信息,或只输出一种启动信息,以达到可以最大缩短开机时间。当系统出现开机故障时,可以选择向串口输出多种系统启动信息,来尽快的诊断,用此方法就可以兼容缩短开机时间并快速诊断系统故障。
附图说明
图1为本发明输出不同类型系统启动信息的方法的流程示意图之一。
图2为本发明输出不同类型系统启动信息的装置的结构示意图之一。
图3为本发明输出不同类型系统启动信息的方法的流程示意图之二。
图4为本发明输出不同类型系统启动信息的装置的结构示意图之二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,对本发明中出现的部分名词作以下解释说明:
BIOS:基本输入输出系统,Basic Input Output System的缩写。是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可以从CMOS中读写系统设置的具体信息,其主要功能是为计算机提供最底层、最直接的硬件设置和控制。
烧录:是指将固化在硬件中的软件写入集成电路或是单片机以实现一些基本功能。
BMC:基板管理控制器,Baseboard Management Controller的缩写,是一个在IPMI结构下提供智能管理的控制器。
IPMI:智能平台管理界面,Intelligent Platform Management Interface的缩写,是管理基于Intel结构的企业系统中所使用外围设备采用的一种工业标准,定义了嵌入式管理子系统进行通信的特定方法,IPMI信息通过BMC进行交流。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
实施例一:
如图1所示,本发明的一种输出不同类型系统启动信息的方法,包括以下步骤:
步骤S101:在服务器系统现有的BIOS代码的基础上,梳理出系统启动过程中向串口输出的启动信息。
步骤S102:将系统启动过程中输出的启动信息进行归纳分类。
步骤S103:为分类后的系统启动过程中输出的启动信息添加不同执行条件,对每类信息分别进行控制。
步骤S104:对编写好的BIOS程序进行编译。
步骤S105:将编译后的BIOS程序烧录到服务器主板的ROM芯片上。
步骤S106:用户通过IPMI命令设置输出信息的类型,所述输出信息的类型包括不输出任何系统启动信息、输出其中一类系统启动信息、输出其中若干类型系统启动信息或全部类型的系统启动信息。
步骤S107:BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
作为一种可实施的方式,将系统启动过程中输出的启动信息归纳分类为三类:BIOS Debug信息,BIOS Progress信息和BIOS Error信息。其中BIOS debug信息,用于工程师的调试和全面查看系统启动过程;BIOS Progress信息,用于查看系统启动到哪个阶段;BIOS Error 信息,用于查看系统启动过程中检测到的错误信息。
实施例二:
如图2所示,本发明的一种输出不同类型系统启动信息的装置,包括:编写编译模块中的梳理模块201、编写编译模块中的归纳分类模块202、编写编译模块中的控制模块203、编写编译模块中的编译模块204、烧录模块205、设置模块206和输出模块207,编写编译模块中的梳理模块201依次连接编写编译模块中的归纳分类模块202、编写编译模块中的控制模块203、编写编译模块中的编译模块204、烧录模块205、设置模块206和输出模块207。
编写编译模块中的梳理模块201,用于在服务器系统现有的BIOS代码的基础上,梳理出系统启动过程中向串口输出的启动信息;编写编译模块中的归纳分类模块202,用于将系统启动过程中输出的启动信息进行归纳分类;编写编译模块中的控制模块203,用于为分类后的系统启动过程中输出的启动信息添加不同执行条件,对每类信息分别进行控制;编写编译模块中的编译模块204,用于对编写好的BIOS程序进行编译;烧录模块205,用于将编译后的BIOS程序烧录到服务器上;设置模块206,用于用户通过IPMI命令设置输出信息的类型,所述输出信息的类型包括不输出任何系统启动信息、输出其中一类系统启动信息、输出其中若干类型系统启动信息或全部类型的系统启动信息;输出模块207,用于BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
实施例三:
如图3所示,本发明的另一种输出不同类型系统启动信息的方法,包括以下步骤:
步骤S301:编写BIOS程序并进行编译。
步骤S302:将编译后的BIOS程序烧录到服务器上。
步骤S303:BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
实施例四:
如图4所示,本发明的另一种输出不同类型系统启动信息的装置,包括:编写编译模块401、烧录模块402和输出模块403,编写编译模块401依次连接烧录模块402和输出模块403。
编写编译模块401,用于编写BIOS程序并进行编译;烧录模块402,用于将编译后的BIOS程序烧录到服务器上;输出模块403,用于BIOS程序根据用户的不同命令,输出不同类型系统启动信息。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。而这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。