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

一种计算设备启动方法及装置

文献发布时间:2023-06-19 16:04:54



技术领域

本申请实施例涉及通信技术领域,尤其涉及一种计算设备启动方法及装置。

背景技术

当前,在计算设备启动的时候,往往通过启动软件程序,再通过软件程序启动硬件的方式启动计算设备。例如,采用一软多硬的启动计算设备方案。即计算设备可以存储有多种版本硬件的设备树,这多个设备树分别对应不同硬件结构的描述。当计算设备读取到的预设管脚的电压与硬件版本匹配相同的情况下,软件驱动程序便可以启动硬件,从而启动所述计算设备。然而,若有人员修改预设管脚的电压或者管脚自身的电压发生错误,会导致计算设备不能启动或者能够启动,导致计算设备启动过程中安全性差。

发明内容

本申请实施例公开了一种计算设备启动方法及计算设备,用于保证计算设备启动的安全性。

第一方面公开一种计算设备启动方法,所述方法应用于所述计算设备,所述方法包括:获取所述计算设备硬件的板卡装置识别码Board ID;获取所述计算设备存储的授权ID;在所述Board ID和所述授权ID相同,且存在与所述Board ID匹配的设备树ID的情况下,通过第一设备树ID对应设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备,所述第一设备树ID为所述计算设备硬件对应的设备树ID。

本申请实施例中,计算设备在启动之前,先将Board ID(Board ID)与授权ID(RPMB中存储的授权ID)进行匹配或校验,从而可以减少GPIO被人为篡改的或者出现错误的概率,保证读取到的Board ID的可靠性。以保证计算设备启动的安全性和有效性。

作为一种可能的实施方式,所述授权ID预置在重放保护内存块RPMB中。

本申请实施例中,由于RPMB这个存储模块不能够变更和删除的特性,能够保证读取到的授权ID的出错概率很小,从而可以保证Board ID与授权ID校验的前提,以提高计算设备启动的安全性和可靠性。此外,由于RPMB存储的数据的不可变更性,从而可以提高启动校验的有效性。

作为一种可能的实施方式,所述方法还包括:在所述Board ID和所述授权ID不相同的情况下,输出第一提示信息,所述第一提示信息用于提示用户所述计算设备启动失败。

本申请实施例中,计算设备启动失败的情况下,可以提示用户当前启动失败,提醒用户查看当前的启动的问题,方便排查故障原因,以提高用户体验。

作为一种可能的实施方式,所述电子设备存储有至少一个设备树ID,所述设备树用于描述所述计算设备的硬件结构,所述方法还包括:将所述Board ID与所述至少一个设备树ID进行比较;在所述至少一个设备树ID中存在与所述Board ID匹配的ID的情况下,确定存在与所述Board ID匹配的第一设备树ID。

本申请实施例中,计算设备可以基于查找多个设备树中的匹配到第一设备树ID对应设备树的驱动程序,以保证计算设备开机后,其中的硬件能够正常运行。

作为一种可能的实施方式,所述方法还包括:在所述设备树ID中不存在与所述Board ID匹配的情况下,输出所述第二提示信息,所述第二提示信息用于提示用户启动失败的信息。

本申请实施例中,计算设备启动失败的情况下,可以提示用户当前启动失败,提醒用户查看当前的启动的问题,方便排查故障原因,以提高用户体验。

作为一种可能的实施方式,所述通过第一设备树ID对应设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备,包括:通过所述引导分区向所述启动分区发送启动指令;通过所述启动分区基于所述启动指令驱动所述第一设备树ID对应的设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备。

作为一种可能的实施方式,所述获取所述计算设备硬件的Board ID,包括:通过引导分区基于GPIO端口状态获取所述Board ID。

第二方面公开一种计算设备,包括:一个或多个处理器和一个或多个存储器,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,以使得所述计算设备执行:获取所述计算设备硬件的板卡装置识别码Board ID;获取所述计算设备存储的授权ID;在所述Board ID和所述授权ID相同,且存在与所述Board ID匹配的设备树ID的情况下,通过第一设备树ID对应设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备,所述第一设备树ID为所述计算设备硬件对应的设备树ID。

本申请实施例中,计算设备在启动之前,先将Board ID(Board ID)与授权ID(RPMB中存储的授权ID)进行匹配或校验,从而可以减少GPIO被人为篡改的或者出现错误的概率,保证读取到的Board ID的可靠性。以保证计算设备启动的安全性和有效性。

作为一种可能的实施方式,所述授权ID预置在重放保护内存块RPMB中。

本申请实施例中,由于RPMB这个存储模块不能够变更和删除的特性,能够保证读取到的授权ID的出错概率很小,从而可以保证Board ID与授权ID校验的前提,以提高计算设备启动的安全性和可靠性。此外,由于RPMB存储的数据的不可变更性,从而可以提高启动校验的有效性。

作为一种可能的实施方式,所述计算设备还执行:在所述Board ID和所述授权ID不相同的情况下,输出第一提示信息,所述第一提示信息用于提示用户所述计算设备启动失败。

本申请实施例中,计算设备启动失败的情况下,可以提示用户当前启动失败,提醒用户查看当前的启动的问题,方便排查故障原因,以提高用户体验。

作为一种可能的实施方式,所述电子设备存储有至少一个设备树ID,所述设备树用于描述所述计算设备的硬件结构,所述电子设备还执行:将所述Board ID与所述至少一个设备树ID进行比较;在所述至少一个设备树ID中存在与所述Board ID匹配的ID的情况下,确定存在与所述Board ID匹配的第一设备树ID。

本申请实施例中,计算设备可以基于查找多个设备树中的匹配到第一设备树ID对应设备树的驱动程序,以保证计算设备开机后,其中的硬件能够正常运行。

作为一种可能的实施方式,所述计算设备还执行:在所述设备树的ID中不存在与所述Board ID匹配的情况下,输出所述第二提示信息,所述第二提示信息用于提示用户启动失败的信息。

本申请实施例中,计算设备启动失败的情况下,可以提示用户当前启动失败,提醒用户查看当前的启动的问题,方便排查故障原因,以提高用户体验。

作为一种可能的实施方式,所述通过第一设备树ID对应设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备,具体执行:通过所述引导分区向所述启动分区发送启动指令;通过所述启动分区基于所述启动指令驱动所述第一设备树ID对应的设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备。

作为一种可能的实施方式,所述Board ID为所述计算设备的Board ID。所述获取所述计算设备硬件的Board ID,具体执行:通过引导分区基于通用型输入输出GPIO端口状态获取所述Board ID。

第三方面公开一种计算设备启动装置,包括:

第一获取单元,用于获取所述计算设备硬件的板卡装置识别码Board ID;

第二获取单元,用于获取所述计算设备存储的授权ID;

驱动单元,用于在所述Board ID和所述授权ID相同,且存在与所述Board ID匹配的设备树ID的情况下,通过第一设备树ID对应设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备,所述第一设备树ID为所述计算设备硬件对应的设备树ID。

本申请实施例中,计算设备在启动之前,先将Board ID(Board ID)与授权ID(RPMB中存储的授权ID)进行匹配或校验,从而可以减少GPIO被人为篡改的或者出现错误的概率,保证读取到的Board ID的可靠性。以保证计算设备启动的安全性和有效性。

作为一种可能的实施方式,所述授权ID预置在重放保护内存块RPMB中。

作为一种可能的实施方式,所述计算设备还包括第一输出单元,用于在所述BoardID和所述授权ID不相同的情况下,输出第一提示信息,所述第一提示信息用于提示用户所述计算设备启动失败。

作为一种可能的实施方式,所述电子设备存储有至少一个设备树的ID,所述设备树用于描述所述计算设备的硬件结构,所述计算设备还包括确定单元,用于:

将所述Board ID与所述至少一个设备树ID进行比较;

在所述至少一个设备树ID中存在与所述Board ID匹配的ID的情况下,确定存在与所述Board ID匹配的第一设备树ID。

作为一种可能的实施方式,所述计算设备还包括第二输出单元,用于在所述设备树的ID中不存在与所述Board ID匹配的情况下,输出所述第二提示信息,所述第二提示信息用于提示用户启动失败的信息。

作为一种可能的实施方式,所述驱动单元,具体用于:

通过所述引导分区向所述启动分区发送启动指令;

通过所述启动分区基于所述启动指令驱动所述第一设备树ID对应的设备树的软件程序驱动所述Board ID对应的硬件来启动所述计算设备。

作为一种可能的实施方式,所述第一获取单元,具体用于通过引导分区基于通用型输入输出GPIO端口状态获取所述Board ID。

第四方面公开一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序或计算机指令,当所述计算机程序或计算机指令被运行时,实现如上述第一方面或第一方面的任一实施方式公开的计算设备启动方法。

第五方面公开一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码被运行时,使得上述的方法被执行。

附图说明

图1是本申请实施例公开的一种计算设备的启动模块的结构示意图;

图2是本申请实施例公开的另一种计算设备启动模块的结构示意图;

图3是本申请实施例公开的一种计算设备启动方法的流程示意图;

图4是本申请公开的另一种计算设备启动的方法流程示意图。

具体实施方式

本申请实施例公开了一种计算设备启动的方法及计算设备,用于保证计算设备启动的安全性。以下进行详细说明。

为了便于理解本申请实施例公开的一种计算设备启动方法及装置,下面先对本申请实施例涉及的相关技术进行介绍:

1.模组

模组是一种能够执行特定功能,在产品中使用的模块,它具有计算和存储功能。模组一般可以由芯片、印制电路板(printed circuit board、PCB)和外围器件构成。模组是面向与产品的,从芯片到模组的演变经历了定制化和专用化的过程。不同的模组由于其功能和作用不同,需要集成在相应的设备中进行使用。例如,模组可以嵌入到电视、电脑、冰箱、空调、手机、车载系统、可穿戴设备等等产品中进行使用。

2.设备树(device tree)

计算设备对应的硬件配置信息通常以设备树的形式保存,设备树是指描述硬件配置信息的树形数据结构。在计算设备开机的时候,将根据设备树的硬件配置信息加载对应的硬件驱动程序。其中,硬件配置信息可以包括计算设备中的硬件名称、信号、ID等描述该硬件的信息,本申请实施例对具体的硬件配置信息不加限制。

在本申请实施例中,计算设备内并非仅仅包括自身所对应的一个设备树,可以包括多个计算设备对应的设备树。每个设备树对应于同一种型号的计算设备。其中,同一种型号的计算设备是指这一种信号的硬件配置是相同的。因此,同一型号的计算设备可以通过同一个设备树进行描述。在本申请的实施例中,电子设备可以包括多种设备树,意味着计算设备可以包括对个硬件对应的驱动程序,这多个硬件对应的驱动程序即指上述的多个设备树包括的硬件配置信息指示的硬件对应的驱动程序。可以理解为,计算设备中包括驱动程序池,该驱动程序池中包括各种型号的移动终端的硬件对应的驱动程序。

在计算设备启动的过程中,计算设备采用一软多硬的启动方案,即计算设备可以存储多个设备树,对应多种型号硬件的启动。即计算设备可以存储有多个设备树,这多个设备树每一个设备树均可以对应一种硬件结构进行启动。

在本申请实施例中,计算设备可以是具有计算和存储能力的设备。例如,手机、电话、销售点(point of sales,POS)终端、个人数字助理(personal digital assistant,PDA)设备、个人电脑、台式电脑、服务器、平板电脑、具有无线通信功能的手持设备、智能家具、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,或者下一代通信系统的设备。还可以是上述的模组。例如,蓝牙模组、WiFi模组、等等。

示例性的,图1是本申请实施例公开的一种计算设备的启动模块的结构示意图。如图1所示,计算设备的启动模块可以包括通用型输入输出(general-purpose input/output,GPIO)端口110,引导分区120和启动(boot)分区130。其中,GPIO端口110用于计算设备读取预设管脚的电压值。预设管脚的电压值用于表示计算设备的board ID,即硬件板号码。引导分区120中可以存储有用于启动的引导程序,从而使得引导分区120能够用于引导计算设备的开机或者启动。启动分区130可以就是操作系统的内核及在引导过程中使用的文件。启动分区130中包括N个设备树。其中。N为正整数。

在一种可能的实现方式中,引导分区120可以读取GPIO端口110的预设管脚电压。即引导分区120能够读取到当前计算设备的Board ID。之后,引导分区120可以向启动分区130发送读取到的Board ID。之后,计算设备可以比较启动分区中设备树的ID是否存在与Board ID相同的设备树。在存在的情况下,引导分区可以通过当前Board ID对应设备树的驱动程序,启动计算设备;否则,不启动计算设备,即结束当前的启动程序。

上述的实施方式中,计算设备启动的过程中,人为篡改或者硬件的误操作,可能会导致引导分区读取到的Board ID是错误的Board ID,从而可能导致错误的设备树的启动程序进行驱动硬件,以启动计算设备,或者导致不应当启动的计算设备发生了启动等情况,这些情况可能对厂商或者用户来说产生不可以的后果。因此,上述计算设备的启动的安全性较差。

在本申请实施例中,计算设备可以提前将读取到的Board ID存储在RPMB中,形成授权ID。在读取到Board ID之后,计算设备可以先将Board ID与RPMB中存储的授权ID进行匹配或校验,在匹配或者校验成功的情况下,继续进行将到Board ID与设备树中的ID进行匹配,在存在设备树对应的ID与Board ID匹配的情况下,启动当前的计算设备;否则,不启动。这样,计算设备在启动之前,先将Board ID与RPMB中存储的授权ID进行匹配或校验,经过匹配的ID的可靠性更高以保证计算设备启动的安全性。

图2是本申请实施例公开的另一种计算设备启动模块的结构示意图。如图2所述,计算设备可以包括GPIO端口210、引导分区220、启动分区230和重放保护内存块(ReplayProtected Memory Block,RPMB)240。其中,GPIO端口210、引导分区220、启动分区230可以参考上述图1中的相关描述,不加赘述。RPMB模块是计算设备的嵌入式存储器(EmbeddedMulti Media Card,eMMC)中具有安全特性的分区,通常用于存储有防止非法篡改需求的数据。一种计算设备启动方法可以包括但不限于以下步骤:

请参阅图3,图3是本申请实施例公开的一种计算设备启动方法的流程示意图。如图3所示,该方法可以应用于计算设备。

S301、计算设备获取硬件的板卡装置识别码ID。

计算设备可以包括Board ID往往在出厂之前便进行设置,每一个计算设备硬件的Board ID均是唯一的。既可以理解为,Board ID能够标识这个唯一标识这一个计算设备的硬件。在计算设备的中往往能够通过GPIO接口读取到这个Board ID。

计算设备中可以包括引导分区220,引导分区可以存储有启动引导程序,用于应当计算设备进行启动。在启动引导程序启动的情况下,计算设备可以通过引导分区读取GPIO端口的预设管脚电压值,从而得到第一身份标识ID,即这个计算设备的Board ID。

S302、计算设备获取存储的授权ID。

在设备出厂之前,厂商可以设置,将计算设备的Board ID存储在eMMC的RPMB中,即可以将授权ID预置(存储)在RPMB中。需要说明的存储的授权ID与S301中读取到的board ID不一定相同。即计算设备包括RPMB。电子设备可以通过引导分区获取计算设备的Board ID。

计算设备可以通过引导分区将Board ID存储到RPMB,得到预置的授权ID。

计算设备可以获取重放保护内存块RPMB存储的授权ID,引导分区获取到Board ID之后,可以进一步读取RPMB中存储的授权ID。

由于RPMB这个存储模块不能够变更和删除的特性,能够保证读取到的授权ID的出错概率很小,从而可以保证Board ID与授权ID校验的前提,以提高计算设备启动的安全性和可靠性。此外,由于RPMB存储的数据的不可变更性,从而可以提高启动校验的有效性。

S303、在Board ID和授权ID相同,且存在与Board ID匹配的设备树ID的情况下,通过第一设备树ID对应设备树的软件程序驱动Board ID对应的硬件来启动计算设备。

其中,第一设备树ID为计算设备硬件对应的设备树ID。

计算设备在获取的Board ID和授权ID的情况下,可以将两个ID进行比较,判断两个ID是否匹配。在Board ID和授权ID相同的情况下(即两ID匹配),计算设备可以进一步将Board ID(或授权ID)与设备树中的ID进行匹配。由于计算设备可以包括一个或多个设备树,每个设备树均具有相应的ID,当存在一个设备树的ID与Board ID(或授权ID)相同的情况下(存在第一设备树ID与Board ID匹配),电子设备可以通过这个设备树启动当前的计算设备。

本申请实施例中,计算设备在启动之前,先将Board ID(Board ID)与授权ID(RPMB中存储的授权ID)进行匹配或校验,从而可以减少GPIO被人为篡改的或者出现错误的概率,保证读取到的Board ID的可靠性。以保证计算设备启动的安全性和有效性。

图4是本申请公开的另一种计算设备启动的方法流程示意图,如图4所示,步骤S303可以包括但不限于S3031~S3035,以下具体说明:

S3031、计算设备Board ID和授权ID是否匹配,在Board ID与授权ID相同的情况下,执行步骤S3032;在Board ID与授权ID不相同的情况下,执行步骤S3033。

计算设备在获取到Board ID和授权ID的情况下,可以匹配这两ID,在两个ID为相同的情况下,Board ID和授权ID匹配;否则,不匹配。

S3032、计算设备判断是否存在一个设备树ID与Board ID匹配。在存在一个设备树的ID中与所述Board ID匹配的ID的情况下,确定存在与所述Board ID匹配的第一设备树ID,此时,执行步骤S3034;在设备树的ID中不存在与Board ID匹配的情况下,执行步骤S3035。

计算设备可以包括多个设备树的ID。计算设备可以通过启动分区比较当前的自身存储的多个设备树的ID是否于Board ID相同。即引导分区可以向启动分区发送Board ID,在启动分区接收到Board ID之后,可以按照存储的设备树的顺序将Board ID与各个设备树的ID进行比较。在比较的过程中,若确定某一个设备树的ID与Board ID相同的情况下,即存在第一设备树ID与Board ID匹配;若经过比较,不存在设备树的ID与Board ID相同的情况下,计算设备可以确定不存在与Board ID匹配的第一设备树ID。

S3033、计算设备输出第一提示信息,第一提示信息用于提示用户所述计算设备启动失败。

计算设备可以通过显示第一提示信息,如“启动失败”的文字信息提示用户当前的启动失败;可以通过提示灯闪烁的方式,提示启动失败,还可以通过提醒语音的方式,提示启动失败……提醒的方式不加限定。

在上述的实施方式中,计算设备启动失败的情况下,可以提示用户当前启动失败,提醒用户查看当前的启动的问题,方便排查故障原因,以提高用户体验。

S3034、计算设备通过所述第一设备树ID对应设备树的软件程序驱动所述BoardID对应的硬件来启动所述计算设备。

计算设备可以通过引导分区向启动分区发送启动指令,启动指令可以用于启动第一设备树ID对应设备树软件程序来驱动硬件。启动分区接收到来自引导分区的启动指令的情况下,可以基于启动指令驱动第一设备树ID对应的设备树的软件程序驱动Board ID对应的硬件来启动所述计算设备。

在一种可能的实施方式中,计算设备中确定出与第一设备树ID对应的设备树,该确定的设备树即包括了当前移动终端的硬件配置信息。计算设备可以依据该硬件配置信息即可从计算设备的多个硬件对应的驱动程序中查找该硬件配置信息指示的硬件对应的驱动程序,查找到的驱动程序即为当前计算设备中的硬件对应的驱动程序,之后加载查找到的驱动程序,以保证计算设备开机后,其中的硬件能够正常运行。

S3035、计算设备输出所述第二提示信息,所述第二提示信息用于提示用户启动失败的信息。

其中,第二提示信息的呈现方式可以参考第一提示信息,具体可以参考上述S3033的描述,不加赘述。

上述的经过两次的ID匹配,能够保证软件启动的驱动程序的正确性,进而可以保证硬件的正常运行。此外,两次的匹配,还可以减少Board ID出错带来的问题的概率,从而可以保证当前的计算设备启动的安全性。

另外,在本申请实施例中,计算设备可以不仅可以某一种电子设备,还可以是电子设备中的某一模组。在模组厂商生产模组之后,每个模组均具有厂商预置的唯一的BoardID。Board ID用于标识硬件的编号,例如,Board ID往往用于对区分和辨别各个模组。当从GPIO端口读取到的Board ID出现错误的时候,模组的启动会发生错误,这会对Board ID造成不可挽回的错误。本申请实施例,进一步的匹配和校验,可以减少模组误启动的概率,从而可以保证模组启动的安全性。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

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

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

技术分类

06120114693415