一种嵌入式操作系统的启动方法、装置及基板管理控制器制造方法及图纸

技术编号:9718592 阅读:62 留言:0更新日期:2014-02-27 05:15
本发明专利技术公开了一种嵌入式操作系统的启动方法、装置及基板管理控制器,属于计算机领域。方法包括:第一BMC的处理器运行以本地Flash首地址为起始地址存储的Uboot,使Uboot执行命令,将本地Flash中指定位置存储的OS文件拷贝到内存,并传递引导参数给OS文件执行,以使OS文件采用引导参数引导OS启动;当OS文件不能启动OS时,采用TFTP服务从第二BMC下载第二BMC的OS文件并存储到指定位置,以覆盖第一BMC的OS文件;第一BMC和第二BMC的OS文件相同;重新运行Uboot,使Uboot通过下载的OS文件引导OS启动。装置包括:运行模块和下载模块。控制器用于执行前述方法。本发明专利技术当采用本地的OS文件不能启动OS时,第一BMC从第二BMC下载第二BMC的OS文件;能够在第一BMC的存储器上只存储一份OS文件。

【技术实现步骤摘要】
一种嵌入式操作系统的启动方法、装置及基板管理控制器
本专利技术涉及计算机领域,特别涉及一种嵌入式操作系统的启动方法、装置及基板管理控制器。
技术介绍
智能平台管理接口(IntelligentPlatformManagementInterface,简称IPMI)是一种定义平台管理子系统的标准、抽象的接口的规范。实现IPMI的硬件主要有基板管理控制器(BaseboardManagementController,简称BMC)。BMC属于嵌入式系统。基于嵌入式操作系统的特点,BMC的操作系统(OperatingSystem,简称OS)(下文简称BMC系统)的启动需要通用引导加载程序(UniversalBootLoader,简称Uboot)进行引导。可选地,在BMC上电后,Uboot开始运行,Uboot对硬件设备进行初始化。初始化后,Uboot传递引导参数给BMC系统文件,在该引导参数作用下,BMC系统文件中第一个函数Init启动,从而引导整个BMC系统启动。BMC系统的启动过程中,由于突然断电或者其它原因造成存储BMC系统文件的存储器(例如闪存(Flash))写发生错误,虽然是小概率事件,但是会导致系统文件发生损坏,使Uboot无法引导BMC系统正常启动。现有技术公开了一种BMC,该BMC配置了外部非易失性存储器(例如Flash)。该外部非易失性存储器上设置了至少两个分区,其中两个分区分别存储系统文件和系统文件的备份。这样,在系统文件出现异常时,Uboot可以引导系统文件的备份启动,从而恢复BMC系统的正常运行状态。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:一方面,采用双分区,会占用存储器更多的空间;另一方面,如果系统文件及备份出于某种原因都发生损坏,这时BMC系统照样无法启动。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种嵌入式操作系统的启动方法、装置及基板管理控制器。所述技术方案如下:第一方面,本专利技术实施例提供了一种嵌入式操作系统的启动方法,所述方法包括:第一基板管理控制器的处理器运行以本地闪存首地址为起始地址存储的通用引导加载程序,使所述通用引导加载程序执行命令,将本地闪存中指定位置存储的操作系统文件拷贝到内存,并传递引导参数给所述操作系统文件执行,以使所述操作系统文件采用所述引导参数引导操作系统启动;当所述操作系统文件采用所述引导参数不能启动所述操作系统时,通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件并存储到所述指定位置,以覆盖所述第一基板管理控制器的操作系统文件,所述第一基板管理控制器的操作系统文件和所述第二基板管理控制器的操作系统文件相同;重新运行所述通用引导加载程序,使所述通用引导加载程序通过下载的操作系统文件引导所述操作系统启动;所述方法还包括:在所述操作系统文件采用所述引导参数启动所述操作系统后,判断在所述通用引导加载程序运行后的第一预定时间内,是否接收到所述第二基板管理控制器广播的第一数据包和至少一个第三基板管理控制器广播的第二数据包,所述第一数据包包括服务基板管理控制器标记、所述第二基板管理控制器的网际互联协议地址、以及所述第二基板管理控制器的操作系统文件的下载目录,所述第二数据包包括竞争基板管理控制器标记和所述第三基板管理控制器的网际互联协议地址;当未接收到所述第一数据包和所述第二数据包时,广播第三数据包,所述第三数据包包括竞争基板管理控制器标记和所述第一基板管理控制器的网际互联协议地址;当接收到所述第一数据包时,将所述第二基板管理控制器的网际互联协议地址和所述第二基板管理控制器的操作系统文件的下载目录作为环境变量存储到所述通用引导加载程序中。可选地,在所述广播第三数据包之后,所述方法还包括:判断在广播所述第三数据包后的第二预定时间内是否接收到至少一个所述第三基板管理控制器广播的第二数据包;当在广播所述第三数据包后的第二预定时间内未接收到所述至少一个第三基板管理控制器广播的第二数据包时,以预定广播周期广播第四数据包,所述第四数据包包括服务基板管理控制器标记、所述第一基板管理控制器的网际互联协议地址、以及所述第一基板管理控制器的操作系统文件的下载目录。可选地,所述方法还包括:当在广播所述第三数据包后的第二预定时间内接收到所述至少一个第三基板管理控制器广播的第二数据包时,根据所述第一基板管理控制器与每个所述第三基板管理控制器的网际互联协议地址的大小,判断所述第一基板管理控制器的网际互联协议地址是否为最大网际互联协议地址;当所述第一基板管理控制器的网际互联协议地址为最大网际互联协议地址时,以预定广播周期广播所述第四数据包。可选地,所述方法还包括:判断在接收到最后一个所述第一数据包后的预定时长内是否再次接收到所述第一数据包,所述预定时长大于所述预定广播周期;当在接收到最后一个所述第一数据包后的预定时长内未再次接收到所述第一数据包时,广播所述第三数据包。可选地,所述通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件,包括:判断记录的所述通用引导加载程序的运行次数是否达到预定次数;若所述通用引导加载程序的运行次数达到所述预定次数,则通过简单文件传输协议服务从所述第二基板管理控制器下载所述第二基板管理控制器的操作系统文件。第二方面,本专利技术实施例提供了一种嵌入式操作系统的启动装置,所述装置包括:运行模块,用于运行以本地闪存首地址为起始地址存储的通用引导加载程序,使所述通用引导加载程序执行命令,将本地闪存中指定位置存储的操作系统文件拷贝到内存,并传递引导参数给所述操作系统文件执行,以使所述操作系统文件采用所述引导参数引导操作系统启动;下载模块,用于当所述操作系统文件采用所述引导参数不能启动所述操作系统时,通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件并存储到所述指定位置,以覆盖第一基板管理控制器的操作系统文件,所述本基板管理控制器的操作系统文件和所述第二基板管理控制器的操作系统文件相同;所述运行模块还用于,重新运行所述通用引导加载程序,使所述通用引导加载程序通过下载的操作系统文件引导所述操作系统启动;所述装置还包括:判断模块,用于在所述操作系统文件采用所述引导参数启动所述操作系统后,判断在所述通用引导加载程序运行后的第一预定时间内,是否接收到所述第二基板管理控制器广播的第一数据包和至少一个第三基板管理控制器广播的第二数据包,所述第一数据包包括服务基板管理控制器标记、所述第二基板管理控制器的网际互联协议地址、以及所述第二基板管理控制器的操作系统文件的下载目录,所述第二数据包包括竞争基板管理控制器标记和所述第三基板管理控制器的网际互联协议地址;广播模块,用于当未接收到所述第一数据包和所述第二数据包时,广播第三数据包,所述第三数据包包括竞争基板管理控制器标记和本基板管理控制器的网际互联协议地址;存储模块,用于当接收到所述第一数据包时,将所述第二基板管理控制器的网际互联协议地址和所述第二基板管理控制器的操作系统文件的下载目录作为环境变量存储到所述通用引导加载程序中。可选地,所述判断模块还用于,判断在广播所述第三数据包后的第二预定时间内是否接收到至少一个第三基板管理本文档来自技高网
...
一种嵌入式操作系统的启动方法、装置及基板管理控制器

【技术保护点】
一种嵌入式操作系统的启动方法,其特征在于,所述方法包括:第一基板管理控制器的处理器运行以本地闪存首地址为起始地址存储的通用引导加载程序,使所述通用引导加载程序执行命令,将本地闪存中指定位置存储的操作系统文件拷贝到内存,并传递引导参数给所述操作系统文件执行,以使所述操作系统文件采用所述引导参数引导操作系统启动;当所述操作系统文件采用所述引导参数不能启动所述操作系统时,通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件并存储到所述指定位置,以覆盖所述第一基板管理控制器的操作系统文件,所述第一基板管理控制器的操作系统文件和所述第二基板管理控制器的操作系统文件相同;重新运行所述通用引导加载程序,使所述通用引导加载程序通过下载的操作系统文件引导所述操作系统启动。

【技术特征摘要】
1.一种嵌入式操作系统的启动方法,其特征在于,所述方法包括:第一基板管理控制器的处理器运行以本地闪存首地址为起始地址存储的通用引导加载程序,使所述通用引导加载程序执行命令,将本地闪存中指定位置存储的操作系统文件拷贝到内存,并传递引导参数给所述操作系统文件执行,以使所述操作系统文件采用所述引导参数引导操作系统启动;当所述操作系统文件采用所述引导参数不能启动所述操作系统时,通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件并存储到所述指定位置,以覆盖所述第一基板管理控制器的操作系统文件,所述第一基板管理控制器的操作系统文件和所述第二基板管理控制器的操作系统文件相同;重新运行所述通用引导加载程序,使所述通用引导加载程序通过下载的操作系统文件引导所述操作系统启动;所述方法还包括:在所述操作系统文件采用所述引导参数启动所述操作系统后,判断在所述通用引导加载程序运行后的第一预定时间内,是否接收到所述第二基板管理控制器广播的第一数据包和至少一个第三基板管理控制器广播的第二数据包,所述第一数据包包括服务基板管理控制器标记、所述第二基板管理控制器的网际互联协议地址、以及所述第二基板管理控制器的操作系统文件的下载目录,所述第二数据包包括竞争基板管理控制器标记和所述第三基板管理控制器的网际互联协议地址;当未接收到所述第一数据包和所述第二数据包时,广播第三数据包,所述第三数据包包括竞争基板管理控制器标记和所述第一基板管理控制器的网际互联协议地址;当接收到所述第一数据包时,将所述第二基板管理控制器的网际互联协议地址和所述第二基板管理控制器的操作系统文件的下载目录作为环境变量存储到所述通用引导加载程序中。2.根据权利要求1所述的方法,其特征在于,在所述广播第三数据包之后,所述方法还包括:判断在广播所述第三数据包后的第二预定时间内是否接收到至少一个所述第三基板管理控制器广播的第二数据包;当在广播所述第三数据包后的第二预定时间内未接收到所述至少一个第三基板管理控制器广播的第二数据包时,以预定广播周期广播第四数据包,所述第四数据包包括服务基板管理控制器标记、所述第一基板管理控制器的网际互联协议地址、以及所述第一基板管理控制器的操作系统文件的下载目录。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当在广播所述第三数据包后的第二预定时间内接收到所述至少一个第三基板管理控制器广播的第二数据包时,根据所述第一基板管理控制器与每个所述第三基板管理控制器的网际互联协议地址的大小,判断所述第一基板管理控制器的网际互联协议地址是否为最大网际互联协议地址;当所述第一基板管理控制器的网际互联协议地址为最大网际互联协议地址时,以所述预定广播周期广播所述第四数据包。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:判断在接收到最后一个所述第一数据包后的预定时长内是否再次接收到所述第一数据包,所述预定时长大于所述预定广播周期;当在接收到最后一个所述第一数据包后的预定时长内未再次接收到所述第一数据包时,广播所述第三数据包。5.根据权利要求1-4任一项所述的方法,其特征在于,所述通过简单文件传输协议服务从第二基板管理控制器下载所述第二基板管理控制器的操作系统文件,包括:判断记录的所述通用引导加载程序的运行次数是否达到预定次数;若所述通用引导加载程序的运行次数达到所述预定次数,则通过简单文件传输协议服务从所述第二基板管理控制器下载所述第二基板管理控制器的操作系统文件。6.一种嵌入式操作系统的启动装置,其特征在于,所述装置包括:运行模块,用于运行以本地闪存首地...

【专利技术属性】
技术研发人员:李娟张蔚张羽
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1