掌桥专利:专业的专利平台
掌桥专利
首页

一种日志处理方法和电子设备

文献发布时间:2024-04-18 19:58:21


一种日志处理方法和电子设备

技术领域

本申请涉及终端领域,尤其涉及一种日志处理方法和电子设备。

背景技术

个人电脑(personal computer,PC)等电子设备在被用户使用的过程中,需要采集日志,在日志中记录电子设备发生的事件,例如控件触发事件、外来设备接入事件等。在电子设备出现故障时,可以基于采集的日志去定位产生故障的原因,支撑对故障进行分析定位、重现、缺陷等级评估等工作。

电子设备在关机之后,需要运行启动程序以启动操作,在操作系统启动完成之后,电子设备才可以被正常使用。但是,在电子设备运行启动程序以启动操作系统(operatingsystem,OS)的过程中,通常没有进行日志采集。如果运行启动程序之后启动操作系统失败,则可能无法通过日志确定失败的原因。

因此在运行启动程序以启动操作系统的过程中,如何采集日志并优化采集日志的过程是值得讨论的方向。

发明内容

本申请提供了一种日志处理方法和电子设备,可以在电子设备在运行启动程序以启动操作系统的过程中,采集日志并且优化采集日志。

第一方面,本申请提供了一种日志处理方法,所述电子设备中包括处理器、第一存储器、第二存储器以及第三存储器,所述方法包括:所述处理器运行启动程序以启动操作系统的过程中,生成第一日志,所述第一日志用于记录运行所述启动程序时涉及的事件;所述处理器将所述第一日志记录到第一存储器中;所述第二存储器可用的情况下,所述处理器获取所述第一存储器中的所述第一日志记录到所述第二存储中;所述第二存储器不可用的情况下,所述处理器获取所述第一存储器中的所述第一日志记录到所述第三存储器中。

在一些实施例中,启动程序可以理解为说明书中的BIOS,第一日志可以理解为说明书中的BIOS日志,第一存储器可以理解为说明书中的memory,第二存储器可以理解为说明书中的SSD,第三存储器可以理解为说明中的NOR flash。处理器可以置于SOC中,或者理解为SOC。

上述实施例中,处理器运行启动程序以启动操作系统的过程,可以看作处理器运行BIOS启动OS的过程。此时,可以采集该过程中的BIOS日志,并将其写入到memory中。后续,进入OS以后,OS可以将memory中日志写入到目标存储器。优先选择SSD作为目标存储器,如果SSD丢失,则以NOR flash为目标存储器。这样,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NORflash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

结合第一方面,在一些实施例中,所述第一存储器在所述电子设备断电之后记录的数据存在丢失,且所述第一存储器的写入速度快于所述第二存储器以及所述第三存储器;所述第二存储器以及所述第三存储器在所述电子设备断电之后记录的数据继续保留。

上述实施例中,在启动程序运行的过程中产生的第一日志记录到写入速度更快的第一存储器中,可以快速记录第一日志。后续将第一日志写入到断电后可以数据不丢失的第二存储器或者第三存储器可以使得数据可以更好的保存。

结合第一方面,在一些实施例中,所述处理器运行启动程序的过程中,确定所述第二存储器是否存在;在所述第二存储器存在的情况下,确定所述第二存储器是否可写入;所述第二存储器可用包括所述第二存储器存在且可写入;所述第二存储器不可用包括所述第二存储器不存在,或者,存在但不可写入。

上述实施例中,第二存储器可用可以理解为说明书中的第二存储器未丢失,第二存储器不可用可以理解为说明书中的丢失。

结合第一方面,在一些实施例中,在所述第二存储器存在的情况下,确定所述第二存储器是否可写入之前,包括:确定所述第二存储器中是否存在可启动的操作系统程序;存在可启动的操作系统程序的情况下,所述处理器基于所述操作系统程序启动所述操作系统。

上述实施例中,操作系统程序可以理解为OS运行时涉及的程序。

结合第一方面,在一些实施例中,所述方法还包括:在所述第二存储器不存在的情况下,所述处理器控制所述电子设备关机或重启。

上述实施例中,在第二存储器不存在的情况下,本次不启动操作系统,可以关机或者重启。

结合第一方面,在一些实施例中,所述电子设备中还包括嵌入式控制器,在所述处理器运行启动程序之前,所述方法还包括:响应于开机操作,所述嵌入式控制器控制所述电子设备中的硬件上电,包括控制所述处理器上电。

结合第一方面,在一些实施例中,所述电子设备中还包括第四存储器,所述嵌入式控制器控制所述电子设备中的硬件上电的过程中,所述方法还包括:生成第二日志,且所述嵌入式控制器将所述第二日志写入到所述第四存储器;所述第四存储器为内置于所述嵌入式控制器的存储器;所述处理器获取所述第一存储器中的所述第一日志记录到所述第二存储中的情况下,所述处理器还获取所述第四存储器中的所述第二日志记录到所述第二存储中;所述处理器获取所述第一存储器中的所述第一日志记录到所述第三存储器中的情况下,所述处理器还获取所述第四存储器中的所述第二日志记录到所述第三存储器中。

上述实施例中,第二日志可以理解为说明中的EC日志。第四存储器可以理解为说明书中的EC RAM。在EC运行EC程序的过程。还可以采集EC日志,并且在第二存储器可用的情况下,将EC日志写入到第二存储器中。否则存入到第三存储器。这样,可以在第二存储器不可用时仍然使得EC日志可以存储至不易失的存储器中。

结合第一方面,在一些实施例中,在所述第二存储器不存在的情况下,所述处理器控制所述电子设备关机或重启之前,所述方法还包括:所述处理器控制所述电子设备显示提示信息,所述提示信息用于提示操作系统启动失败。

上述实施例中,该提示信息可以为说明书中的“SSD is not detected!”。

结合第一方面,在一些实施例中,所述操作系统启动完成之后,所述方法还包括:在第一应用处于开启状态的情况下,所述处理器从所述第二存储器中获取日志上传至所述第一应用的云服务器。

上述实施例中,第一应用可以为说明书中的PC应用。将日志上传至云服务器有利于日志的存储。

结合第一方面,在一些实施例中,在第一应用处于开启状态的情况下,所述处理器还从所述第三存储器中获取日志上传至所述第一应用的所述云服务器。

结合第一方面,在一些实施例中,所述处理器从所述第二存储器中获取日志上传至所述第一应用的云服务器之前,所述处理器还从所述第三存储器中获取日志写入到所述第二存储器。

上述实施例中,第二存储器比第三存储器内存更大,可以将第三存储器中的日志先写入到第二存储器。然后由PC应用统一上传至云服务器。

结合第一方面,在一些实施例中,所述启动程序为支持统一可扩展固件接口规范的基本输入输出系统。

第二方面,本申请提供了一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述一个或多个处理器用于调用所述计算机指令以使得所述电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。

上述实施例中,处理器运行启动程序以启动操作系统的过程,可以看作处理器运行BIOS启动OS的过程。此时,可以采集该过程中的BIOS日志,并将其写入到memory中。后续,进入OS以后,OS可以将memory中日志写入到目标存储器。优先选择SSD作为目标存储器,如果SSD丢失,则以NOR flash为目标存储器。这样,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NORflash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

第三方面,本申请提供了一种计算机存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序包括可执行指令,所述可执行指令当被处理器执行时使所述处理器执行如第一方面或第一方面的任意一种实施方式所描述的方法。

上述实施例中,处理器运行启动程序以启动操作系统的过程,可以看作处理器运行BIOS启动OS的过程。此时,可以采集该过程中的BIOS日志,并将其写入到memory中。后续,进入OS以后,OS可以将memory中日志写入到目标存储器。优先选择SSD作为目标存储器,如果SSD丢失,则以NOR flash为目标存储器。这样,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NORflash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。

上述实施例中,处理器运行启动程序以启动操作系统的过程,可以看作处理器运行BIOS启动OS的过程。此时,可以采集该过程中的BIOS日志,并将其写入到memory中。后续,进入OS以后,OS可以将memory中日志写入到目标存储器。优先选择SSD作为目标存储器,如果SSD丢失,则以NOR flash为目标存储器。这样,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NORflash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式所描述的方法。

上述实施例中,处理器运行启动程序以启动操作系统的过程,可以看作处理器运行BIOS启动OS的过程。此时,可以采集该过程中的BIOS日志,并将其写入到memory中。后续,进入OS以后,OS可以将memory中日志写入到目标存储器。优先选择SSD作为目标存储器,如果SSD丢失,则以NOR flash为目标存储器。这样,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NORflash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

附图说明

图1示出了电子设备在开机时涉及的系统启动流程以及日志数据采集流程;

图2示出了各存储器与SOC之间的相对关系;

图3示出了电子设备基于日志处理方法采集日志的示例性流程;

图4示出了一种显示提示信息的示例性用户界面;

图5A以及图5B中示出了SSD丢失导致OS启动失败的场景示意图;

图6中示出了日志落盘时的一种交互示意图;

图7示出了本申请提供的一种示例性提供的示例性电子设备。

具体实施方式

本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

启动程序可以是支持统一可扩展固件接口(unified extensible firmwareinterface,UEFI)规范的基本输入输出系统(basic input output system,BIOS)也被称为UEFI BIOS。下文中简称BIOS。当启动程序是BIOS时,在一种方案中,电子设备可以先运行BIOS,对硬件进行识别以及初始化。然后进入到启动加载(bootloader)阶段,按照预设方式启动操作系统。在操作系统完成启动之后,电子设备会将系统控制权从BIOS移交至OS。后续,进入操作系统,电子设备可以启动设备管理应用(例如PC管家),并通过该设备管理应用采集操作系统运行过程中涉及的日志。

由于电子设备先运行BIOS然后再运行OS,设备管理应用是在OS运行之后才开启的应用,则电子设备无法采集到BIOS运行过程中涉及的日志。

在另一种方案中,提供了一种日志处理方法,在该方法中,电子设备可以在BIOS运行过程中采集日志(BIOS日志)并且优化采集BIOS日志的过程。另外,还可以优化EC日志采集的过程。其中,EC日志包括嵌入式控制器(embed controller,EC)在运行EC程序时涉及的事件。

电子设备在关机之后,检测到开机操作之后,需要进入系统启动阶段,在系统启动完成之后,电子设备才可以正常开机。该系统启动阶段可以包括:EC程序启动阶段、BIOS启动阶段以及OS启动阶段。其中,电子设备可以在EC程序启动阶段生成EC日志。然后,在BIOS启动阶段生成BIOS日志。在OS启动之后,将生成的EC日志以及BIOS日志写入到目标存储器。

其中,优化日志(EC日志或者BIOS日志)采集的过程发生在将EC日志以及BIOS日志写入到目标存储器的过程中,电子设备在将EC日志或者BIOS日志写入到目标存储器之前,会确定目标存储器为SSD还是NOR flash。

这里应该理解的是,采集日志可以包括生成日志并将日志写入到存储器的过程。

图1示出了电子设备在开机时涉及的系统启动流程以及日志数据采集流程。

如图1所示,“黑色实线箭头”所指示的执行方向涉及系统启动流。“黑色虚线箭头”所指示的执行方向涉及日志数据流。电子设备在关机之后,EC一直处于上电状态,此时EC可以用于接收开机事件。电子设备在关机的情况下,该电子设备所处的运行状态可以为S4或者S5。其中,在一些可能的情况下,S4指示的运行状态也可以被称为磁盘唤醒状态(suspendto disk,STD)。S5指示的运行状态也可以被称为关机状态(shutdown),此时,EC仍然处于关机状态,其他部分或者全部硬件(包括处理器)均处于下电状态。

在检测到开机操作之后,响应于该开机操作,EC启动EC程序,为电子设备中处于下电状态的其他硬件进行上电,以使得电子设备的运行状态从S4或者S5切换为S0。其中S0指示的运行状态也可以被称为工作状态,此时电子设备中大部分硬件或者全部硬件均处于上电状态,其中处于上电状态的硬件还包括系统级芯片(system on chip,SOC)。在SOC上电的情况下,该EC可以进入运行时。

在一些可能的情况下,该SOC中包括电子设备的处理器。SOC执行的操作可以看作为SOC中的处理器执行的。

其中,EC可以将EC程序启动阶段生成的日志(EC日志)写入到EC中的随机存取存储器(random access memory,RAM)中。该EC中的RAM也可以被称为EC RAM。即,EC可以将EC日志写入到EC RAM中。

在SOC上电之后,电子设备可以通过SOC可以运行BIOS,进入UEFI BIOS阶段。在UEFI BIOS阶段,SOC可以通过BIOS对硬件进行识别以及初始化。例如,被初始化的硬件包括存储了OS程序的硬盘(solid state disk,SSD)。然后,SOC可以确定SSD是否存在,在SSD存在的情况下,在SSD中寻找到OS,确定是否启动OS。在确定启动OS的情况下,SOC继续运行BIOS启动OS。OS启动之后,SOC可以通过日志落盘模块落盘日志。例如,可以先获取日志(EC日志或者BIOS日志)。后续该日志落盘模块可以确定SSD是否丢失,在SSD未丢失的情况下,可以将日志写入到SSD中。在SSD丢失的情况下,可以将日志写入到非易失闪存(NOR flash)中。这样,即使SSD丢失了也保证日志可以记录到NOR flash中。后续,SOC可以将系统控制权从BIOS移交至OS。

其中,SSD丢失包括SSD不存在(即检测不到SSD)或者SSD存在但是SSD无法写入。SSD未丢失包括SSD存在(即可检测到SSD),且SSD可以写入。

在一些可能的情况下,通过日志落盘模块将日志进行落盘的操作以及将系统控制权从BIOS移交至OS的操作,均为SOC通过OS调ExitBootServive函数执行的。

在OS获得系统控制权之后,系统可以进入OS阶段。然后可以基于OS运行PC管家。该PC管家从SSD或者NOR flash中采集日志并上传云服务器。

在确定SSD不存在的情况下,或者,不启动OS的情况下,SOC仍然可以通过日志落盘模块落盘日志。然后,SOC可以进行关机或者重启电子设备。

在一些可能的情况下,通过日志落盘模块将日志进行落盘的操作,然后关机或者重启电子设备的操作,均为SOC通过BIOS调ResetSystem函数执行的。

在一些可能的情况下,在确定SSD不存在的情况下,SOC还可以显示提示信息以提示用户SSD不存在或者OS启动失败。

其中,关于落盘日志的过程可以参考前述相关描述,此处不再赘述。

图1中示出的结束操作包括电子设备检测到关机操作之后,结束运行进入关机状态。

由图1可知,在该方案中,在BIOS运行过程中,可以将BIOS日志写入到memory中使得BIOS日志得以采集。同时在SSD丢失的情况下,可以将日志记录到NOR flash中,避免因为SSD丢失导致日志落盘失败进而丢失的情况。

前述日志采集过程中涉及的存储器可以包括memory、SSD、NOR flash以及EC RAM。图2示出了各存储器与SOC之间的相对关系。下面基于图2详细描述采集BIOS日志的过程包括先写入到memory再落盘SSD或者NOR flash的原图,以及,采集EC日志的过程包括先写入到EC RAM再落盘SSD或者NOR flash的原图。

如图2所示,EC RAM为置于EC中的随机存取存储器。EC RAM、memory、SSD、NORflash均通过总线连接于SOC。对于SOC来说,EC RAM、memory、SSD、NOR flash均为外置存储器,也可以被称为辅助存储器。SOC中还包括互补金属氧化物半导体(complementarymetal-oxide-semiconductor,CMOS)存储器,对于SOC来说,该CMOS为内置存储器,也可以被称为主存储器。

这里应该理解的是,CMOS本义上为“complementary metal-oxide-semiconductor”的词头缩写,可翻译为“互补金属氧化物半导体”,其是一种半导体技术。前述涉及的CMOS存储器可以看作采用了半导体技术的制程生产出的元件或者芯片,可以理解为一个内置于SOC中的RAM。

该方案中,在采集BIOS日志的过程包括先写入到memory再落盘SSD或者NOR flash的原因在于,memory存储器的写入速度快于SSD以及NOR flash。因此在运行BIOS的过程中,为了降低时间成本,可以先将BIOS日志记录到memory中。即将memory作为一个临时性的存储器。memory也是一种购买成本较高的存储器,且memory的容量较小。因此,在运行BIOS启动OS之后,需要将memory中记录的BIOS日志写入到SSD或者NOR flash。在SOC将系统控制权从BIOS移交至OS之后,可以删除memory中记录的BIOS日志,将memory中的存储空间释放出来。在一些可能的情况下,memory中记录的数据在断电之后存在数据丢失,因此需要将memory中记录BIOS日志转移到断电之后数据仍然保留的SSD或者NOR flash中。

在该方案中,SSD未丢失的情况下,优先将BIOS日志从memory写入到SSD。在SSD丢失的情况下,将NOR flash作为一种“应急”的存储器用于写入BIOS日志。原因在于SSD的容量大于NOR flash。例如,SSD的容量可以包括512GB,主要用于存储OS和用户数据。其中,用于存储日志(BIOS日志或者EC日志)的空间约为4M。NOR flash可以用于存储BIOS镜像文件,其容量可以为16M。其中,用于存储日志(BIOS日志或者EC日志)的空间约为4K(远小于4M)。

在一些可能的情况下,优先将SSD作为目标存储器的原因还可以包括:虽然NORflash以及SSD均存在大约10万次改写的限制。但是,NOR flash的容量相比于SSD较小,则更容易写满,写满后产生擦除操作。那么相比于SSD,NOR flash的改写次数更容易用尽。且,NOR flash一旦发生失效后用户无法自行维修,可能导致电子设备彻底失效。但是,SSD发生失效后,可以进行更换,不会导致电子设备彻底失效。

将EC日志落盘到目标存储器之前,先将其记录到EC RAM的原因在于,电子设备处于EC程序启动阶段的情况下,还没有开始运行BIOS,则其他存储器还处于下电状态,EC处于上电状态,因此可以将EC日志先写入EC RAM中。

这里应该理解的是,对于EC日志,在SSD未丢失的情况下,优先将EC日志从EC RAM写入到SSD。在SSD丢失的情况下,将NOR flash作为一种“应急”的存储器用于写入EC日志。其中,涉及的原因与前述将BIOS日志落盘至SSD或者NOR flash的原因相同。可以参考前述相关描述,此处不再赘述。

还应该理解的是,这里在采集BIOS日志引入memory,而不是将BIOS日志写入到写入速度也很快的CMOS存储器的原因在于COMS存储器容量较小(例如256byte),且已经被一些现有的需求占用了大部分存储空间,可用空间通常在8byte。即虽然CMOS存储器具有纽扣电池独立供电、数据访问简单,断电后数据不易丢失等特点,但是用于存储BIOS日志的空间不足。

这里应该理解的是,CMOS存储器断电后数据不易丢失的原因在于:CMOS存储器有纽扣电池独立供电,系统断电后数据不会丢失。除非纽扣电池被移除,数据才会消失。

在一些可能的情况下,EC可以通过LPC总线或者e SPI总线与SOC连接。NOR flash可以通过SPI总线与SOC连接、memory可以通过DDR总线与SOC连接、SSD可以通过PCIE总线与SOC连接。

图3示出了电子设备基于日志处理方法采集日志的示例性流程。

该日志处理方法适用于电子设备从关机到开机(包括开机完成以及开机失败)过程中进行日志采集。该过程涉及的详细内容,可以参考下述对步骤S101-步骤S113、步骤S1a-步骤S1b、步骤S2a-步骤S2b的描述。

首先,电子设备在关机的情况下,检测到开机操作时,首先进入EC程序启动阶段,对于该过程的详细描述可以参考下述对步骤S101的描述。

S101.EC处于开启状态的情况下,响应于开机操作,触发电子设备切换到工作状态,包括将SOC进行上电。

电子设备在关机之后,EC可以处于上电状态,此时EC可以用于接收开机事件。检测到开机操作,响应于该开机操作,EC可以运行EC程序触发电子设备切换到工作状态。电子设备关机时,所处的运行状态可以为前述涉及的S4或者S5。

其中,EC将电子设备从关机时的运行状态切换到工作状态包括:对电子设备中处于下电状态的硬件进行上电。例如,对SOC进行上电,使得SOC可以执行运行BIOS的操作。电子设备切换到工作状态的过程中EC还可以执行下述步骤S1a获取EC日志。

S1a.EC将EC日志写入到EC RAM中。

该EC日志中可以包括电子设备切换到工作状态的过程中生成的日志。

在一些可能的情况下,EC可以在检测到开机操作的情况下,即开始采集EC日志。

在一些可能的情况下,该EC日志中可以包括历史关机指令(shoutdown code)。还可以包括电池异常数据等。实际情况中,还可以为其他内容,本申请实施例对此不作限定。

还应该理解的是,一些可能的情况下,EC处于开启状态的情况下均可以采集EC日志,并将其存储到EC RAM中。

在EC对硬件完成上电之后,还可以执行下述步骤S2a。

S2a.EC进入运行时。

EC进入运行时之后,可以监测电子设备中部分硬件的状态以维持电子设备的正常运行。例如,监测到电子设备的温度过高时,打开风扇对电子设备进行降温。还可以等待关机操作,对电子设备中的硬件进行下电操作等。

以上EC进入运行时之后的作用是示例性说明,实际情况中还可以为其他的作用,本申请实施例对此不作限定。

SOC进行上电之后,电子设备可以基于SOC运行BIOS,进入BIOS启动阶段。通过BIOS启动操作系统。

其中,BIOS启动阶段涉及的相关内容可以参考下述对步骤S102-步骤S107的描述。

S102.SOC运行BIOS,对硬件进行初始化,被初始化的硬件包括SSD。

在一些可能的情况下,SOC具体可以运行BIOS中的前EFI初始化(Pre-EFIInitilization,PEI)程序块,或者还可以进一步运行驱动执行环境(driver executionenvironment,DXE)程序块对硬件进行初始化。其中,被初始化的硬件可以包括SSD。

硬件初始化完成之后,SOC可以运行BIOS中的启动设备选择(boot deviceselection,BDS)程序块进入OS启动的相关流程中。关于该过程涉及的相关内容可以参考下述对步骤S103-步骤S109的描述。

S103.SOC确定SSD是否存在。

SSD中包括OS,因此在启动OS时,首先要确定是否可以检测到该SSD。在可以检测到SSD的情况下,SOC确定SSD存在。在不可以检测到SSD的情况下,SOC确定SSD不存在。

在确定SSD存在的情况下,SOC可以执行下述步骤S104,继续执行启动操作系统的流程。

在确定SSD不存在的情况下,SOC停止启动OS的流程。此时,SOC可以执行下述步骤S106,显示提示信息以提示用户OS启动失败。

S104.SOC确定是否启动SSD中的OS。

SOC可以在SSD中确定OS程序的位置,然后检测OS是否可以正常运行。在确定OS可以正常运行的情况下,SOC确定启动SSD中的OS。此时,SOC可以执行下述步骤S109。

在SSD中未寻找OS,或者检测到OS不可以正常运行的情况下,SOC确定不启动SSD中的OS。此时,SOC可以执行下述步骤S105。

其中,OS不可以正常运行(OS启动失败)的原因包括但不限于一些情况中的一个或者多个:BIOS升级或者BIOS待修复(recovery)、BIOS设置(setup)修改、电子设备处于低电量过温的情况、电子设备处于不开机看电量的情况、启动设备(boot device)变更、电子设备处于门店模式、电子设备连接了USB等外部设备、开机过程中检测到针对热键(例如快捷键)的操作等。

其中,OS启动失败的原因可以记录到BIOS日志中。

S105.在确定SSD未丢失的情况下,SOC将EC RAM中的EC日志、memory中的BIOS日志写入到SSD中。

SOC确定SSD是否丢失。在SSD未丢失的情况下,SOC将EC RAM中的EC日志、memory中的BIOS日志中的一个或者多个日志写入到SSD中。例如,可以将EC日志写入到SSD中,还可以将BIOS日志写入到SSD中,或者将EC日志以及BIOS日志写入到SSD中。

这里应该理解的是,在确定SOC丢失的情况下,SOC可以将EC RAM中的EC日志、memory中的BIOS日志中的一个或者多个日志写入到NOR flash中。以确保EC日志或者BIOS日志可以落盘。

S106.SOC显示提示信息。

在确定未检测到SSD的情况下,电子设备的用户界面中可以显示提示信息(提示信息1),该提示信息可以用于提示开机失败等相关信息。

图4示出了一种显示提示信息的示例性用户界面。

如图4所示,电子设备的用户界面中可以弹出提示框,该提示框中可以包括文字提示信息:“SSD is not detected!”。

这里应该理解的是,前述涉及的提示信息1是示例性说明,实际情况中还可以为其他的内容,本申请实施例对此不作限定。

还应该理解的是,在一些可能的情况下,显示提示信息1的操作是可选的,SOC还可以不显示提示信息1。

S107.SOC将EC RAM中的EC日志、memory中的BIOS日志写入到NOR flash中。

在确定未检测到SSD的情况下,SOC可以确定SSD丢失。则可以将EC RAM中的EC日志、memory中的BIOS日志中的一个或者多个日志写入到NOR flash中。例如,可以将EC日志写入到NOR flash中,还可以将BIOS日志写入到NOR flash中,或者将EC日志以及BIOS日志写入到NOR flash中。

在完成将日志(包括EC日志或者BIOS日志)写入到目标存储器(SSD或者NORflash)之后,SOC可以执行下述步骤S108以关机或者重启电子设备的操作。

S108.SOC执行关机或者重启电子设备的操作。

在SSD不存在或者SSD存在但是不启动OS的情况下,OS启动失败,则SOC可以执行关机或者重启电子设备的操作。

在BIOS启动阶段可以生成日志(BIOS日志),SOC还可以执行下述步骤S1b获取BIOS日志。

S1b.SOC将BIOS日志写入到memory中。

该BIOS日志中可以包括BIOS运行过程中生成的日志。

在一些可能的情况下,处理器可以在BIOS开始运行之后,开始采集BIOS日志。

在一些可能的情况下,该BIOS日志中可以包括但不限于OS启动失败的原图,例如可以为以下内容中的一个或者多个:BIOS升级或者BIOS待修复(recovery)、BIOS设置(setup)修改、电子设备处于低电量过温的情况、电子设备处于不开机看电量的情况、启动设备(boot device)变更、电子设备处于门店模式、电子设备连接了USB等外部设备、开机过程中检测到针对热键(例如快捷键)的操作等。实际情况中,还可以为其他内容,本申请实施例对此不作限定。

在确定SSD中包括OS程序,且检测到OS可以正常运行的情况下,SOC执行下述步骤S109以启动OS。

S109.SOC启动OS。

OS启动之后,可以将记录在EC RAM中的EC日志落盘到SSD或者NOR flash中,并运行PC管家,将SSD或者NOR flash中的日志传输至云服务器,对于该过程的详细描述可以参考下述对步骤S110-步骤S113的描述。

S110.在确定SSD未丢失的情况下,SOC将EC RAM中的EC日志、memory中的BIOS日志写入到SSD中。

SOC确定SSD是否丢失。在SSD未丢失的情况下,SOC将EC RAM中的EC日志、memory中的BIOS日志中的一个或者多个日志写入到SSD中。例如,可以将EC日志写入到SSD中,还可以将BIOS日志写入到SSD中,或者将EC日志以及BIOS日志写入到SSD中。

这里应该理解的是,在SOC丢失的情况下,SOC可以将EC RAM中的EC日志、memory中的BIOS日志中的一个或者多个日志写入到NOR flash中。以确保EC日志或者BIOS日志可以落盘。

S111.SOC将系统控制权从BIOS移交至OS。

在一些可能的情况下,系统控制权从BIOS先转交到OS loader手中,BIOS占用的BootService资源会释放,保留RuntimeService类型的资源。释放后的BootService资源被回收到OS loader,随着OS loader的执行,OS最终取得对系统控制权。

S112.系统进入OS阶段。

在一些可能的情况下,在系统进入OS的情况下,SOC可以在用户界面中显示开机完成时涉及的内容。

S113.SOC运行PC管家,并通过PC管家将SSD,或者SSD以及NOR flash中的日志传输至云服务器中。

在一些可能的情况中,在NOR flash中存储了日志(EC日志或者BIOS日志)的情况下,SOC还可以通过PC管家将NOR flash中的日志先写入到SSD中。后续,通过PC管家依据正常的业务逻辑采集系统的日志,储存在SSD中。SOC可以通过PC管家将SSD中的日志统一传输至云服务器。

在另一些可能的情况中,SOC还可以通过PC管家分别从SSD以及NOR flash中获取日志(EC日志或者BIOS日志)传输至云服务器。

这里应该理解的是,系统的控制权从BIOS转交到OS之后,SOC可以执行下述步骤S2b使得BIOS进入运行时。

S2b.BIOS进入运行时。

BIOS进入运行时之后,系统的控制权从BIOS转交到OS,BIOS占用的各种资源被回收到OS,仅有BIOS运行时服务保留给OS使用。此时,OS运行过程中如果遇到灾难性错误,BIOS进入运行时后仍然可以提供错误处理和灾难性恢复机。

以上BIOS进入运行时之后的作用是示例性说明,实际情况中还可以为其他的作用,本申请实施例对此不作限定。

这里应该理解的是,前述涉及的步骤中。将EC日志写入到EC RAM,再将EC RAM中的EC日志落盘到目标存储器。然后将EC日志长传至云服务器所涉及的相关内容是可选的。电子设备可以执行也可以不执行,本申请实施例对此不作限定。

结合前述内容,可以理解的是,BIOS日志中记录了电子设备启动OS(开机失败)的原因。若开机失败,则后续可以基于BIOS日志确定开机失败的原因。且BIOS中的日志在SSD丢失的情况下,仍然可以先落盘到NOR flash中,后续上传至云服务器中。增加了SSD丢失导致开机失败的情况下,获取BIOS日志的概率。

下面描述开机过程中,因SSD丢失导致OS启动失败,无法开机,但是“SSD丢失”事件作为一条BIOS日志记录到memory中,后续写入到NOR flash的场景。

图5A以及图5B中示出了SSD丢失导致OS启动失败的场景示意图。

如图5A中(1)所示,为电子设备关机时涉及的一个示例性用户界面。在时间1(t1)检测到开机操作,电子设备执行开机时涉及的相关操作。例如,运行EC、BIOS等程序启动OS以开机。

在时间2(t2),电子设备确定SSD丢失,无法寻找到OS,则可以显示如图5A中(2)示出的提示框,该提示框中可以包括文字提示信息:“SSD is not detected!”。

后续,电子设备开机失败,可以继续处于关机状态。参考图5A中(3)所示的内容。

虽然SSD丢失了,但是下一次开机时,仍然可以在电子设备中找到时间1(t1)以及时间2(t2)对应的BIOS日志。

如图5B中所示,为电子设备显示BIOS日志(BIOS log)时涉及的示例性用户界面。其中包括BIOS日志信息1,以及BIOS日志信息2。其中,BIOS日志信息1用于指示电子设备在时间1存在开机指令,BIOS日志信息2用于指示电子设备在时间2检测到SSD丢失。其中BIOS日志信息1可以表示“为t1:boot code”,BIOS日志信息2可以表示为“t2:SSD is notdetected”。

应该理解的是,前述涉及的日志信息的表示为举例说明。实际可以为他的表示形式,不应该构成对本申请实施例的限制。

在一些可能的情况下,步骤S103中确定SSD存在的情况下,步骤S105以及步骤S110中涉及的确定SSD是否丢失可以包括确定SSD是否能写入,不再确定SSD是否存在。

在另一些可能的情况下,步骤S103中确定SSD存在的情况下,步骤S105以及步骤S110中涉及的确定SSD是否丢失不仅包括确定SSD是否能写入。在确定是否可写入之前,还包括再次确定SSD是否存在。应该理解的是,在确定SSD存在的情况下,才确定SSD是否可写入。

图6中示出了日志落盘时的一种交互示意图。

如图6所示,日志落盘时的交互流程包括下属步骤1-步骤4。

步骤1.BIOS启动服务。

SOC可以通过运行BOIS启动OS。该步骤1中,SOC可以将BIOS启动阶段的BIOS日志先写入memory。然后,将memory中的BIOS日志以及EC RAM中的EC日志写入到EC RAM中。关于该过程的详细描述可以参考前述对步骤S102-步骤S107、步骤S109的描述,此处不再赘述。

其中,步骤1即为图6中示出的①。

步骤2.SOC将系统控制权从BIOS移交至OS,BIOS进入运行时。

关于步骤2的相关描述可以参考前述对步骤S111的描述,此处不再赘述。

其中,步骤2即为图6中示出的②。

步骤3.OS开启PC管家。

其中,步骤3即为图6中示出的③。

步骤4.OS启动SSD驱动,从SSD中获取日志,再将该日志通过PC管家传输至云服务器。

在一些可能的情况中,在NOR flash中存储了日志(EC日志或者BIOS日志)的情况下,SOC可以还可以将NOR flash中的日志先写入到SSD中。后续,SOC可以通过PC管家将SSD中的日志传输至云服务器。

其中,步骤4即为图6中示出的④。

图7示出了本申请提供的一种示例性提供的示例性电子设备。

应该理解的是,电子设备可以具有比图7中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

图7是以电子设备为个人电脑(personal computer,PC)为例进行举例说明的。

电子设备可以包括:处理器171、主存储器172、辅助存储器173、芯片组174、电源开关175、输入输出设备176、USB通信处理模块177、无线通信处理模块178、蜂鸣器179。

处理器171可用于读取和运行计算机可读指令。具体实现中,处理器171可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。

例如,前述涉及的SOC可以看作一种处理器171。其中的CMOS存储器即可看作处理器171中的寄存器。

处理器171还可用于读取和运行BIOS涉及的指令,使电子设备可以正常开机。

主存储器172与处理器171耦合,用于存储各种软件程序和/或多组指令,该主存储器172中的软件程序和/或多组指令可以被处理器171直接读取。

主存储器172还可包括非易失性存储器芯片,例如一个或多个闪存设备。主存储器172可以存储操作系统,例如实时多任务操作系统(real time multi-tasking operationsystem,uCOS)等嵌入式操作系统、Microsoft Windows操作系统等。

在一些可能的情况下,主存储器172还可以前述涉及的SSD。可以用于保存BIOS程序以及EC日志和BIOS日志。

辅助存储器173用于存储各种资源,例如图片,音视频等。具体实现中,辅助存储器173可以是外存,可以包括大容量存储设备,例如磁盘存储设备等。辅助存储器173可以主存储器172交换信息。

在一些可能的情况下,辅助存储器173还可以包括NOR flash、EC RAM、memory。

芯片组174可以包括北桥芯片174A和南桥芯片174B中的一项或者多项。用于将微处理器(未示出)与电子设备的其他部分相连接。

北桥芯片174A可用于提供处理器171与电子设备的其他部分的接口,例如,可以用于提供对主存储器172的接口。此外,北桥芯片174A还可以用于通过千兆以太网适配器(gigabit ethernet adapter,GEA)(未示出)提供网络通信功能。

南桥芯片174B可用于控制电子设备的输入/输出功能。具体实现中,可提供一个或多个通用串行总线(Universal Serial Bus,USB)端口、声音适配器、以太网控制器,以及一个或多个通用输入/输出引脚。

南桥芯片174B还可以提供用于连接周边设备的总线,例如符合BIOS引导规范(BIOS boot specification,BBS)标准的SCSI主机总线适配器(未示出)。

在另一些实施例中,南桥芯片174B还可以提供一个或多个接口,这些接口可用于将辅助存储器173连接到电子设备,使辅助存储器173可以和主存储器172交换信息。这样,电子设备可以将辅助存储器173中存储的备BIOS的一些程序块读取到主存储器172中,使得处理器171可以从主存储器172中读取并运行该备BIOS的一些程序块。

电源开关175可用于控制电源向电子设备的供电。当电源开关开启后,电子设备可以开始运行BIOS,当BIOS正常运行结束之后,电子设备可以正常开机。

输入输出设备176用于提供若干个输入/输出端口,例如键盘端口、鼠标端口、串行接口、并行端口等。其中,输入设备包括键盘、鼠标、摄像头。输出设备可以包括显示屏、打印机、绘图仪。

在一些可能的情况下,当电子设备将BIOS正常运行结束之后,电子设备的显示屏上可以显示开机的用户界面。

USB通信处理模块177可用于通过USB接口(未示出)与其他设备进行通信。

无线通信处理模块178可以包括蓝牙(bluetooth,BT)通信处理模块178A、WLAN通信处理模块178B中的一项或多项,用于和其他电子设备建立无线通信连接。

蜂鸣器179用于作发声器件。

在一些可能的情况下,当电子设备运行BIOS的过程中,验证硬件是否出现问题时,如果某个硬件出现了问题,蜂鸣器179就会发出BIOS报警声。声音类型不同则表示出现问题的硬件不同。例如在有些电子设备中,出现一长一短的BIOS报警声则表示RAM或主板出现问题。

可以理解的是,本申请实施例涉及的电子设备还可以是移动端设备,此处不作限制。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

相关技术
  • 一种日志处理方法、系统及电子设备和存储介质
  • 日志信息处理方法、装置、电子设备及可读存储介质
  • 错误日志的处理方法、系统、电子设备和存储介质
  • 一种日志记录方法、装置及电子设备
  • 一种快速解析日志的方法、系统及电子设备
  • 一种日志处理方法及日志处理电子设备
  • 日志处理方法、电子设备及日志处理系统
技术分类

06120116481903