首页 / 专利库 / 电脑零配件 / 地址总线 / 一种固件异常检测方法及装置

一种固件异常检测方法及装置

阅读:514发布:2020-05-08

专利汇可以提供一种固件异常检测方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 实施例 提供了一种 固件 异常检测 方法及装置,其中,该方法包括:检测 电子 设备中是否存储有目标固件的校验文件,其中,校验文件为目标固件在电子设备中安装完成后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;若不存在,则确定目标固件异常。通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。,下面是一种固件异常检测方法及装置专利的具体信息内容。

1.一种固件异常检测方法,其特征在于,所述方法包括:
检测电子设备中是否存储有目标固件的校验文件,其中,所述校验文件为所述目标固件在所述电子设备中安装完成后生成并存储于所述电子设备中的文件,用于表示所述目标固件在所述电子设备中安装成功;
若不存在,则确定所述目标固件异常。
2.根据权利要求1所述的方法,其特征在于,所述检测所述电子设备中是否存储有目标固件的校验文件,包括:
在所述电子设备启动的初始化阶段,检测所述电子设备中是否存储有目标固件的校验文件;
所述方法还包括:
若所述电子设备中存储有目标固件的校验文件,则在所述初始化阶段,读取所述校验文件中的校验值;
当所读取的校验值为预设的异常校验值时,确定所述目标固件异常。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所读取的校验值不为所述异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;启动所述电子设备的操作系统,并判断所述操作系统是否启动成功;
如果是,将默认校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;
如果否,则重新启动所述初始化阶段,并返回执行在所述初始化阶段,读取所述校验文件中的校验值的步骤。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述电子设备与本地服务器在同一网络中,所述方法还包括:
在确定所述目标固件异常之后,向所述本地服务器发送探测请求报文,所述探测请求报文中携带所述目标固件的标识信息,以使得所述本地服务器根据所述标识信息获取所述目标固件;
从所述本地服务器获取所述目标固件,并安装所述目标固件。
5.根据权利要求4所述的方法,其特征在于,所述向所述本地服务器发送探测请求报文,包括:
在所述电子设备向所述本地服务器发送过探测请求报文的情况下,确定前一次发送所述探测请求报文的时间点,作为第一时间点;
在与所述第一时间点间隔第一预设时长的第二时间点,向所述本地服务器发送所述探测请求报文;
在与所述第二时间点间隔第二预设时长的时间点,向所述本地服务器发送所述探测请求报文,其中,所述第二预设时长大于或者等于所述第一预设时长。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述目标固件安装成功后,获取所述目标固件的标识信息,并存储所述标识信息。
7.根据权利要求4所述的方法,其特征在于,所述从所述本地服务器获取所述目标固件,并安装所述目标固件,包括:
接收所述本地服务器发送的探测响应报文,所述探测响应报文中携带:所述本地服务器的服务器IP地址、设备IP地址和端口号;
利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接;
通过所述端口号的端口,从所述本地服务器下载所述目标固件。
8.根据权利要求7所述的方法,其特征在于,所述探测响应报文中还携带MAC地址;
在所述接收所述本地服务器发送的探测响应报文的步骤之后,在所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接的步骤之前,还包括:
获取所述探测响应报文携带的MAC地址;
判断所获取的MAC地址与所述电子设备的MAC地址是否匹配;
若匹配,则执行所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接的步骤。
9.根据权利要求7所述的方法,其特征在于,在通过所述端口号的端口,从所述本地服务器下载所述目标固件的步骤之前,还包括:
向所述本地服务器发送地址解析协议ARP报文,所述ARP报文包括所述设备IP地址和所述电子设备的MAC地址,以使得所述本地服务器根据所述设备IP地址和所述MAC地址对存储的ARP表项进行更新,所述ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。
10.根据权利要求7所述的方法,其特征在于,所述电子设备根据以下方式获取所述设备IP地址:
所述电子设备将安装所述目标固件时配置的IP地址作为所述设备IP地址;
所述电子设备将所述设备IP地址存储于本地;
在确定所述目标固件异常之后所述电子设备从本地获取所述设备IP地址。
11.一种固件异常检测装置,其特征在于,所述装置包括:
第一检测模,用于检测电子设备中是否存储有目标固件的校验文件,其中,所述校验文件为所述目标固件在所述电子设备中安装完成后生成并存储于所述电子设备中的文件,用于表示所述目标固件在所述电子设备中安装成功;
第一确定模块,用于当所述第一检测模块的检测结果为否时,则确定所述目标固件异常。
12.根据权利要求11所述的装置,其特征在于,所述第一检测模块具体用于:
在所述电子设备启动的初始化阶段,检测所述电子设备中是否存储有目标固件的校验文件;
所述装置还包括:
读取模块,用于当所述第一检测模块的检测结果为是时,则在所述初始化阶段,读取所述校验文件中的校验值;
第二确定模块,用于当所读取的校验值为预设的异常校验值时,确定所述目标固件异常。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于当所读取的校验值不为所述异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;启动所述电子设备的操作系统,并检测所述操作系统是否启动成功;
写入模块,用于当所述第二检测模块的检测结果为是时,将默认校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;
更新模块,用于当所述第二检测模块的检测结果为否时,则重新启动所述初始化阶段,并触发所述读取模块执行在所述初始化阶段,读取所述校验文件中的校验值。
14.根据权利要求11-13中任一项所述的装置,其特征在于,所述电子设备与本地服务器在同一网络中,所述装置还包括:
第一发送模块,用于在确定所述目标固件异常之后,向所述本地服务器发送探测请求报文,所述探测请求报文中携带所述目标固件的标识信息,以使得所述本地服务器根据所述标识信息获取所述目标固件;
第一获取模块,用于从所述本地服务器获取所述目标固件,并安装所述目标固件。
15.根据权利要求14所述的装置,其特征在于,所述发送模块具体用于:
在所述电子设备向所述本地服务器发送过探测请求报文的情况下,确定前一次发送所述探测请求报文的时间点,作为第一时间点;
在与所述第一时间点间隔第一预设时长的第二时间点,向所述本地服务器发送所述探测请求报文;
在与所述第二时间点间隔第二预设时长的时间点,向所述本地服务器发送所述探测请求报文,其中,所述第二预设时长大于或者等于所述第一预设时长。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于当所述目标固件安装成功后,获取所述目标固件的标识信息,并存储所述标识信息。
17.根据权利要求14所述的装置,其特征在于,所述第一获取模块具体用于:
接收所述本地服务器发送的探测响应报文,所述探测响应报文中携带:所述本地服务器的服务器IP地址、设备IP地址和端口号;
利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接;
通过所述端口号的端口,从所述本地服务器下载所述目标固件。
18.根据权利要求17所述的装置,其特征在于,所述探测响应报文中还携带MAC地址;所述装置还包括:
第三获取模块,用于获取所述探测响应报文携带的MAC地址;
判断模块,用于判断所获取的MAC地址与所述电子设备的MAC地址是否匹配;如果是,触发所述第一获取模块执行所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于向所述本地服务器发送ARP报文,所述ARP报文包括所述设备IP地址和所述电子设备的MAC地址,以使得所述本地服务器根据所述设备IP地址和所述MAC地址对存储的ARP表项进行更新,所述ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。
20.根据权利要求17所述的装置,其特征在于,所述电子设备根据以下方式获取所述设备IP地址:
所述电子设备将安装所述目标固件时配置的IP地址作为所述设备IP地址;
所述电子设备将所述设备IP地址存储于本地;
在确定所述目标固件异常之后所述电子设备从本地获取所述设备IP地址。
21.一种电子设备,其特征在于,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序
处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一所述的方法步骤。
22.一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一所述的方法步骤。

说明书全文

一种固件异常检测方法及装置

技术领域

[0001] 本申请涉及设备检测技术领域,特别是涉及一种固件异常检测方法及装置。

背景技术

[0002] NVR(Network Video Recorder,网络硬盘录像机),可以与网络摄像机通过网络连接,用于接收网络摄像机传输的视频数据,并将所接收到的视频数据进行存储和管理,从而实现针对网络摄像机的分布式架构,为视频数据的存储、管理等提供便利性。
[0003] NVR中的固件可以认为是NVR设备的“驱动程序”,用于实现NVR的功能,因此,正常的固件可以支持NVR运行正常。一般来说,固件是由厂商固化在闪存(Flash EEPROM Memory)等存储介质中。基于固件在NVR中的重要性,为了达到完善NVR的功能、增强NVR稳定性、修补NVR的漏洞等目的,可以不定期地对NVR中的固件进行升级,进而可以使得NVR的功能更完善、运行更稳定、更安全等。固件的升级在NVR的操作系统中完成。
[0004] 然而,在固件的升级过程中,由于断电、误操作等因素会导致固件升级失败,进而导致固件损坏。而在固件损坏之后,用户是无法及时发现的,这样不仅会影响NVR的运行,而且会使得NVR中的视频数据丢失。发明内容
[0005] 本申请实施例的目的在于提供一种固件异常检测方法及装置,以解决对固件异常进行检测的问题。具体技术方案如下:
[0006] 第一方面,本申请实施例提供了一种固件异常检测方法,所述方法包括:
[0007] 检测电子设备中是否存储有目标固件的校验文件,其中,所述校验文件为所述目标固件在所述电子设备中安装完成后生成并存储于所述电子设备中的文件,用于表示所述目标固件在所述电子设备中安装成功;
[0008] 若不存在,则确定所述目标固件异常。
[0009] 可选地,所述检测所述电子设备中是否存储有目标固件的校验文件,包括:
[0010] 在所述电子设备启动的初始化阶段,检测所述电子设备中是否存储有目标固件的校验文件;
[0011] 所述方法还包括:
[0012] 若所述电子设备中存储有目标固件的校验文件,则在所述初始化阶段,读取所述校验文件中的校验值;
[0013] 当所读取的校验值为预设的异常校验值时,确定所述目标固件异常。
[0014] 可选地,所述方法还包括:
[0015] 当所读取的校验值不为所述异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;启动所述电子设备的操作系统,并判断所述操作系统是否启动成功;
[0016] 如果是,将默认校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;
[0017] 如果否,则重新启动所述初始化阶段,并返回执行在所述初始化阶段,读取所述校验文件中的校验值的步骤。
[0018] 可选地,所述电子设备与本地服务器在同一网络中,所述方法还包括:
[0019] 在确定所述目标固件异常之后,向所述本地服务器发送探测请求报文,所述探测请求报文中携带所述目标固件的标识信息,以使得所述本地服务器根据所述标识信息获取所述目标固件;
[0020] 从所述本地服务器获取所述目标固件,并安装所述目标固件。
[0021] 可选地,所述向所述本地服务器发送探测请求报文,包括:
[0022] 在所述电子设备向所述本地服务器发送过探测请求报文的情况下,确定前一次发送所述探测请求报文的时间点,作为第一时间点;
[0023] 在与所述第一时间点间隔第一预设时长的第二时间点,向所述本地服务器发送所述探测请求报文;
[0024] 在与所述第二时间点间隔第二预设时长的时间点,向所述本地服务器发送所述探测请求报文,其中,所述第二预设时长大于或者等于所述第一预设时长。
[0025] 可选地,所述方法还包括:
[0026] 当所述目标固件安装成功后,获取所述目标固件的标识信息,并存储所述标识信息。
[0027] 可选地,所述从所述本地服务器获取所述目标固件,并安装所述目标固件,包括:
[0028] 接收所述本地服务器发送的探测响应报文,所述探测响应报文中携带:所述本地服务器的服务器IP地址、设备IP地址和端口号;
[0029] 利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接;
[0030] 通过所述端口号的端口,从所述本地服务器下载所述目标固件。
[0031] 可选地,所述探测响应报文中还携带MAC地址;
[0032] 在所述接收所述本地服务器发送的探测响应报文的步骤之后,在所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接的步骤之前,还包括:
[0033] 获取所述探测响应报文携带的MAC地址;
[0034] 判断所获取的MAC地址与所述电子设备的MAC地址是否匹配;
[0035] 若匹配,则执行所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接的步骤。
[0036] 可选地,在通过所述端口号的端口,从所述本地服务器下载所述目标固件的步骤之前,还包括:
[0037] 向所述本地服务器发送地址解析协议ARP报文,所述ARP报文包括所述设备IP地址和所述电子设备的MAC地址,以使得所述本地服务器根据所述设备IP地址和所述MAC地址对存储的ARP表项进行更新,所述ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。
[0038] 可选地,所述电子设备根据以下方式获取所述设备IP地址:
[0039] 所述电子设备将安装所述目标固件时配置的IP地址作为所述设备IP地址;
[0040] 所述电子设备将所述设备IP地址存储于本地;
[0041] 在确定所述目标固件异常之后所述电子设备从本地获取所述设备IP地址。
[0042] 第二方面,本申请实施例提供了一种固件异常检测装置,所述装置包括:
[0043] 第一检测模,用于检测电子设备中是否存储有目标固件的校验文件,其中,所述校验文件为所述目标固件在所述电子设备中安装完成后生成并存储于所述电子设备中的文件,用于表示所述目标固件在所述电子设备中安装成功;
[0044] 第一确定模块,用于当所述第一检测模块的检测结果为否时,则确定所述目标固件异常。
[0045] 可选地,所述第一检测模块具体用于:
[0046] 在所述电子设备启动的初始化阶段,检测所述电子设备中是否存储有目标固件的校验文件;
[0047] 所述装置还包括:
[0048] 读取模块,用于当所述第一检测模块的检测结果为是时,则在所述初始化阶段,读取所述校验文件中的校验值;
[0049] 第二确定模块,用于当所读取的校验值为预设的异常校验值时,确定所述目标固件异常。
[0050] 可选地,所述装置还包括:
[0051] 第二检测模块,用于当所读取的校验值不为所述异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;启动所述电子设备的操作系统,并检测所述操作系统是否启动成功;
[0052] 写入模块,用于当所述第二检测模块的检测结果为是时,将默认校验值写入所述校验文件中,作为所述校验文件的更新后的校验值;
[0053] 更新模块,用于当所述第二检测模块的检测结果为否时,则重新启动所述初始化阶段,并触发所述读取模块执行在所述初始化阶段,读取所述校验文件中的校验值。
[0054] 可选地,所述电子设备与本地服务器在同一网络中,所述装置还包括:
[0055] 第一发送模块,用于在确定所述目标固件异常之后,向所述本地服务器发送探测请求报文,所述探测请求报文中携带所述目标固件的标识信息,以使得所述本地服务器根据所述标识信息获取所述目标固件;
[0056] 第一获取模块,用于从所述本地服务器获取所述目标固件,并安装所述目标固件。
[0057] 可选地,所述发送模块具体用于:
[0058] 在所述电子设备向所述本地服务器发送过探测请求报文的情况下,确定前一次发送所述探测请求报文的时间点,作为第一时间点;
[0059] 在与所述第一时间点间隔第一预设时长的第二时间点,向所述本地服务器发送所述探测请求报文;
[0060] 在与所述第二时间点间隔第二预设时长的时间点,向所述本地服务器发送所述探测请求报文,其中,所述第二预设时长大于或者等于所述第一预设时长。
[0061] 可选地,所述装置还包括:
[0062] 第二获取模块,用于当所述目标固件安装成功后,获取所述目标固件的标识信息,并存储所述标识信息。
[0063] 可选地,所述第一获取模块具体用于:
[0064] 接收所述本地服务器发送的探测响应报文,所述探测响应报文中携带:所述本地服务器的服务器IP地址、设备IP地址和端口号;
[0065] 利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接;
[0066] 通过所述端口号的端口,从所述本地服务器下载所述目标固件。
[0067] 可选地,所述探测响应报文中还携带MAC地址;所述装置还包括:
[0068] 第三获取模块,用于获取所述探测响应报文携带的MAC地址;
[0069] 判断模块,用于判断所获取的MAC地址与所述电子设备的MAC地址是否匹配;如果是,触发所述第一获取模块执行所述利用所述服务器IP地址和所述设备IP地址,与所述本地服务器建立连接。
[0070] 可选地,所述装置还包括:
[0071] 第二发送模块,用于向所述本地服务器发送ARP报文,所述ARP报文包括所述设备IP地址和所述电子设备的MAC地址,以使得所述本地服务器根据所述设备IP地址和所述MAC地址对存储的ARP表项进行更新,所述ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。
[0072] 可选地,所述电子设备根据以下方式获取所述设备IP地址:
[0073] 所述电子设备将安装所述目标固件时配置的IP地址作为所述设备IP地址;
[0074] 所述电子设备将所述设备IP地址存储于本地;
[0075] 在确定所述目标固件异常之后所述电子设备从本地获取所述设备IP地址。
[0076] 第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0077] 存储器,用于存放计算机程序
[0078] 处理器,用于执行存储器上所存放的程序时,实现上述任一所述的固件异常检测方法步骤。
[0079] 第四方面,本申请实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的固件异常检测方法步骤。
[0080] 本申请实施例提供的技术方案中,检测电子设备中是否存储有目标固件的校验文件,校验文件为目标固件在电子设备中安装成功后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;若不存在,则确定目标固件异常。通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。附图说明
[0081] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0082] 图1为本申请实施例提供的固件异常检测方法的一种流程图
[0083] 图2为本申请实施例提供的固件异常检测方法的另一种流程图;
[0084] 图3为本申请实施例提供的固件异常恢复方法的一种流程图;
[0085] 图4为本申请实施例提供的固件异常恢复方法的信令图;
[0086] 图5为本申请实施例提供的固件异常检测装置的一种结构示意图;
[0087] 图6为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

[0088] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0089] 为了解决对固件异常进行检测的问题,本申请实施例提供了一种固件异常检测方法及装置,其中,该固件异常检测方法包括:
[0090] 检测电子设备中是否存储有目标固件的校验文件,其中,校验文件为目标固件在电子设备中安装成功后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;
[0091] 若不存在,则确定目标固件异常。
[0092] 本申请实施例提供的技术方案中,检测电子设备中是否存储有目标固件的校验文件,校验文件为目标固件在电子设备中安装成功后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;若不存在,则确定目标固件异常。通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。
[0093] 下面首先对本申请实施例提供的一种固件异常检测方法进行介绍。本申请实施例提供的一种固件异常检测方法,该固件异常检测方法可以应用于固件所安装的电子设备,还可以应用于除固件所安装的电子设备以外的其他设备,在此不做限定。下面以固件异常检测方法应用于固件所安装的电子设备为例进行介绍。其中,电子设备可以是安装有固件的设备,例如,NVR(Network Video Recorder,网络硬盘录像机)设备等。
[0094] 电子设备通过本申请实施例提供的固件异常检测方法对固件进行检测,可以发生在不同的场景下。例如,在电子设备安装固件完成后会重启,电子设备在重启过程中可以进行固件异常检测。又例如,电子设备在每次开机启动过程中,可以进行固件异常检测。电子设备进行固件异常检测的场景并不仅限于以上两种,还可以在其他的场景下进行,在此不做限定。
[0095] 如图1所示的本申请实施例提供的固件异常检测方法的一种流程图,包括如下步骤。
[0096] S101,检测电子设备中是否存储有目标固件的校验文件,如果否,执行步骤S102。
[0097] 本申请实施例提供的固件异常检测方法可以针对电子设备中所安装的固件,因此,目标固件可以是电子设备中所安装的任意一个或多个固件。
[0098] 其中,校验文件为目标固件在电子设备中安装完成后生成并存储于电子设备中的文件,例如,校验文件为verify.bin。
[0099] 一种实现方式中,目标固件在电子设备中安装完成之后,即目标固件被写入至闪存等存储介质中后,电子设备可以创建目标固件的校验文件,即生成了校验文件,再将校验文件写入目标固件所存储的存储介质中。比如,目标固件在安装完成后写入闪存中,目标固件的校验文件也会写入闪存中进行存储。当校验文件写入存储介质之后,才可以表示目标固件在电子设备中安装成功。
[0100] 只有在目标固件安装完成后,校验文件才有可能写入存储介质中。在目标固件在安装过程中出现的电子设备断电、误操作等异常情况,可以导致目标固件安装失败,此时,校验文件不会被写入存储介质中。因此,可以认为,校验文件可以用于表示目标固件在电子设备中安装成功,即当电子设备中存储有目标固件的校验文件时,表示目标固件安装成功。另外,当电子设备中存储有目标固件的校验文件时,还可以表示当前目标固件在电子设备中正常。
[0101] S102,确定目标固件异常。
[0102] 若确定电子设备中未存储有目标固件的校验文件,这样的结果可以由以下两种情况导致。
[0103] 第一种情况,目标固件没有安装完成,使得目标固件的校验文件没有写入电子设备的存储介质中,导致在电子设备中无法检测到校验文件。
[0104] 第二种情况,存储校验文件的存储介质损耗,导致该存储介质所存储的内容均无法读取。这种情况可以导致在电子设备中无法检测到校验文件。
[0105] 并不仅限于以上两种情况可以导致在电子设备中无法检测到校验文件,还可以包括其他的情况也可以导致在电子设备中无法检测到校验文件,在此不做限定。
[0106] 无论上述哪一种情况,在确定电子设备中未存储有目标固件的校验文件时,则可以确定目标固件异常。
[0107] 一种实施方式中,在确定目标固件异常后,可以提示用户目标固件异常,以使得用户可以及时对异常的目标固件进行恢复处理。电子设备在提示目标固件异常时,还可以显示异常信息。其中,异常信息可以包括目标固件的型号、识别码、电子设备的型号等信息中的至少一种。显示的异常信息可以帮助用户尽快掌握针对发生异常的目标固件的信息,并及时地对异常的目标固件进行恢复处理。
[0108] 一种实施方式中,所述检测电子设备中是否存储有目标固件的校验文件的步骤(S101),可以包括如下步骤。
[0109] 在电子设备启动的初始化阶段中,检测电子设备中是否存储有目标固件的校验文件。
[0110] 其中,电子设备启动的阶段可以包括初始化阶段和操作系统启动阶段。当电子设备接收到启动指令后,电子设备进入初始化阶段,初始化阶段可以由电子设备中的BootLoader等引导程序来完成。电子设备在完成初始化阶段后,便可以进入操作系统启动阶段。
[0111] 初始化阶段的一种实现方式中,引导程序对电子设备中的硬件进行初始化,建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态。
[0112] 一种实施方式中,在电子设备启动的初始化阶段中,若检测到电子设备中存储有目标固件的校验文件,则在初始化阶段,可以读取校验文件中的校验值。
[0113] 其中,校验值存储于校验文件中,校验值是可以变化的,不同的校验值可以表示出目标固件是否安装成功。当目标固件安装完成后,目标固件的校验文件写入存储介质时,该校验文件中的校验值为默认校验值,默认校验值可以认为是校验文件中的校验值的初始值。因此,当校验文件中的校验值为默认校验值时,可以确定目标固件安装成功。其中,默认校验值可以是自定义设定的,例如,默认校验值可以为0。
[0114] 另外,校验值可以表示电子设备启动过程中初始化阶段的连续启动次数。具体地,在电子设备的一次启动过程中,每启动一次初始化阶段,在每一次初始化阶段过程中,电子设备可以读取校验文件中的校验值,并将所读取的校验值加上预设数值,进而得到新的校验值,再将新的校验值写入校验文件中,作为校验文件的更新后的校验值。其中,预设数值可以是自定义设定的,例如,预设数值为1,这样,每启动一次初始化阶段,校验值加1。
[0115] 基于校验值的上述特点,电子设备在每一次初始化阶段,所读取的校验值可以用来表示初始化阶段连续启动的次数。
[0116] 电子设备在读取校验文件中的校验值之后,当所读取的校验值为预设的异常校验值时,可以确定目标固件异常。
[0117] 其中,异常校验值可以是自定义设定的。当所读取的校验值为异常校验值时,可以确定出当前初始化阶段连续启动的次数。基于此,异常校验值可以表示在电子设备的一次启动过程中允许初始化阶段连续启动的次数。因此,在电子设备的一次启动过程中,当初始化阶段连续启动的次数达到异常校验值时,可以认为目标固件异常。
[0118] 例如,默认校验值为0,预设数值为1,异常校验值为3,表示在电子设备的一次启动过程中允许初始化阶段连续启动3次,当初始化阶段第三次启动时,可以认为目标固件异常。因此,在初始化阶段完成后,所读取的校验值为3时,表示当前初始化阶段已连续启动3次,可以确定目标固件异常。
[0119] 一种实施方式中,基于异常校验值可以表示在电子设备的一次启动过程中允许初始化阶段连续启动的次数,当所读取的校验值不为异常校验值时,则可以确定所读取的校验值小于该异常校验值。
[0120] 读取校验值是在初始化阶段中。在初始化阶段完成之后,电子设备可以进入操作系统启动阶段,即启动电子设备的操作系统。电子设备可以判断操作系统是否启动成功,一种实现方式中,电子设备可以预先设置有看狗,看门狗预设时间阈值,该时间阈值为针对操作系统的启动时间的阈值。在初始化阶段完成之后,电子设备启动操作系统,若操作系统启动成功,则电子设备进入操作系统;若在看门狗设置的时间阈值的时间段内,电子设备还未进入操作系统,则可以认为操作系统启动失败。
[0121] 例如,电子设备中的看门狗预设的时间阈值为1分钟,那么电子设备在初始化阶段之后启动操作系统,若操作系统启动的时长在达到1分钟时,电子设备还未进入操作系统,则可以判断出操作系统启动失败。
[0122] 若判断出操作系统启动成功,则电子设备可以进入正常运行。电子设备还可以将默认校验值写入校验文件中,并作为校验文件的更新后的校验值。例如,设定默认校验值为0,当检测到操作系统启动成功时,校验文件中当前的校验值为2,则电子设备将默认校验值
0写入校验文件中,并将该默认校验值0作为校验文件更新后的校验值。
[0123] 若判断出操作系统启动失败,则重新启动初始化阶段。在初始化阶段中,读取校验文件中的校验值,并将所读取的校验值加上预设数值,得到新的校验值。将新的校验值写入校验文件中,作为校验文件的更新后的校验值。此时,校验文件中所存储的校验值即为该新的校验值。其中,预设数值可以自定义设定。
[0124] 例如,预设数值为1,若所读取的校验值为1,则得到的新的校验值为2,再将该新的校验值2写入校验文件中,作为该校验文件的更新后的校验值。这样,在下次从校验文件中读取校验值时,所读取的校验值为2。
[0125] 在完成对校验文件中的校验值的更新之后,返回执行在初始化阶段,读取校验文件中的校验值的步骤,直至初始化阶段启动次数达到异常校验值,进而可以确定目标固件异常,或者,初始化阶段启动次数达到异常校验值之前,电子设备的操作系统启动成功,电子设备进入正常运行。
[0126] 通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。
[0127] 本申请实施例提供一种固件异常检测方法,如图2所示,该固件异常检测方法包括如下步骤。
[0128] S201,在电子设备启动的初始化阶段,检测电子设备中是否存储有目标固件的校验文件,如果否,执行步骤S202,如果是,执行步骤S203。
[0129] 其中,电子设备为NVR设备,预先设定默认校验值为0。
[0130] 在NVR设备中的目标固件进行升级完成后,即目标固件安装完成后,NVR设备创建目标固件的校验文件为verify.bin,并将所创建的verify.bin写入闪存上。此时所创建的verify.bin中的校验值为0。
[0131] NVR设备的初始化阶段由BootLoader来启动完成,在BootLoader启动的初始化阶段,检测NVR设备中的闪存上是否存储有verify.bin。
[0132] S202,确定目标固件异常。
[0133] 若检测到NVR设备的闪存上未存储verify.bin,则可以确定该目标固件异常。
[0134] S203,在初始化阶段,读取校验文件中的校验值。
[0135] 若检测到NVR设备的闪存上存储有verify.bin,则在BootLoader进行初始化阶段的过程中,NVR设备可以从闪存上获取到verify.bin,并从verify.bin中读取校验值。
[0136] S204,当所读取的校验值为预设的异常校验值时,确定目标固件异常。
[0137] 其中,预设设定的异常校验值为3。若NVR设备从verify.bin中读取的校验值为3,则表示BootLoader启动初始化阶段的次数为3次,此时可以确定目标固件异常。
[0138] S205,当所读取的校验值不为异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入校验文件中,作为校验文件的更新后的校验值;启动电子设备的操作系统,并判断操作系统是否启动成功。如果是,执行步骤S206,如果否,执行步骤S207。
[0139] 其中,预先设定预设数值为1。当看门狗预设的时间阈值时长内电子设备未进入操作系统后,即判断出操作系统启动失败后,NVR设备重新启动初始化阶段,即重新启动BootLoader进行初始化。在BootLoader进行初始化过程中,读取校验文件verify.bin中的校验值,并将所读取的校验值加上1得到新的校验值,将新的校验值写入verify.bin中,作为verify.bin更新的校验值。
[0140] 若NVR设备从verify.bin中读取的校验值不是3,可以确定所读取的校验值小于3,即所读取的校验值可以是0、1和2中的任一个。
[0141] 当NVR设备从verify.bin中读取的校验值为0,表示当前BootLoader还未启动过初始化阶段,此时,将所读取的校验值加1,得到新的校验值为1,将新的校验值1写入verify.bin中,作为verify.bin更新的校验值。
[0142] 当NVR设备从verify.bin中读取的校验值为1,表示当前BootLoader启动初始化阶段的次数为1,此时,将所读取的校验值加1,得到新的校验值为2,将新的校验值2写入verify.bin中,作为verify.bin更新的校验值。
[0143] 当NVR设备从verify.bin中读取的校验值为2,表示当前BootLoader启动初始化阶段的次数为1,此时,将所读取的校验值加1,得到新的校验值为3,将新的校验值3写入verify.bin中,作为verify.bin更新的校验值。
[0144] 在完成校验值的更新且BootLoader启动初始化阶段完成之后,NVR设备继续加载内核,启动操作系统,并判断操作系统是否启动成功。
[0145] S206,将默认校验值写入校验文件中,作为校验文件的更新后的校验值。
[0146] 当检测到操作系统启动成功后,将默认校验值0写入校验文件中,作为校验文件更新后的校验值。
[0147] S207,重新启动初始化阶段,并返回执行步骤S203。
[0148] 电子设备重新启动初始化阶段,即重新启动BootLoader进行初始化,并返回执行S203,即在初始化阶段,读取校验文件中的校验值。
[0149] 在确定目标固件异常之后,可以对发生异常的目标固件进行恢复。一种实施方式中,电子设备和本地服务器在同一网络中,电子设备和本地服务器可以为通信连接,该同一网络可以为局域网。一种实现方式中,在同一局域网中包括一台本地服务器和多个电子设备,每一个电子设备与本地服务器通信连接。
[0150] 本申请实施例提供的固件异常恢复方法,应用于电子设备,可以包括如下步骤。
[0151] S301,在确定目标固件异常之后,向本地服务器发送探测请求报文。
[0152] 其中,探测请求报文中携带目标固件的标识信息。标识信息为用于表示固件的信息,也就是说,标识信息与固件为一一对应的关系。标识信息可以包括识别码、型号、版本号等信息中的至少一种。例如,目标固件的识别码为1000,且该目标固件的型号为PBAM00,则通过识别码1000和型号PBAM00,可以确定出固件为目标固件。
[0153] 电子设备获取标识信息的一种实施方式,当目标固件在电子设备中进行安装且安装成功时,电子设备可以获取到该目标固件的标识信息,并将该标识信息进行存储。
[0154] 存储标识信息的一种实现方式中,在电子设备中设置有一个存储介质或者存储介质中的一个存储区域,用于存储标识信息。每当电子设备中有固件安装成功时,电子设备可以获取该固件的标识信息,并将所获取的标识信息存储于该存储介质或者该存储区域中,并且,需要获取固件的标识信息时,可以直接从该存储介质或者该存储区域中进行获取。这样可以实现标识信息的集中存储,为存储标识信息和获取标识信息提供了便利性。
[0155] 其中,电子设备向本地服务器发送探测请求报文的方式可以是多播或者广播的方式。以多播为例,当确认目标固件异常之后,电子设备可以对本地的网卡设备进行初始化设定,则可以设定使能接收的多播MAC(Media Access Control,媒体访问控制)地址,以便于后续以多播的方式进行交互。
[0156] 此时,探测请求报文中还可以携带表示交互方式的信息,该信息用于表示电子设备当前所采用的交互方式,也即表示电子设备可以接收该交互方式的数据包。当本地服务器获取到表示交互方式的信息后,便可以在之后与电子设备的交互过程中发送该交互方式的数据包。
[0157] 例如,电子设备向服务器发送的探测请求报文中携带表示电子设备采用多播的信息,则表示电子设备告知本地服务器可以接收多播数据包。当本地服务器接收到电子设备发送的探测请求报文后,便可以知道该电子设备可以接收多播数据包,这样,在之后与该电子设备的交互过程中,可以向电子设备发送多播数据包。
[0158] 其中,电子设备向本地服务器发送探测请求报文的作用在于,可以探测本地服务器是否开启。若本地服务器未开启,则电子设备不会接收到本地服务器的反馈;若本地服务器开启,则电子设备可以接收到本地服务器的反馈,电子设备进而可以向本地服务器上报发生异常的固件的相关信息。
[0159] 为了提高本地服务器可以接收到探测请求报文的概率,电子设备可以向本地服务器多次发送探测请求报文。为了减少网络中同一段时间内探测请求报文的数量,进而可以降低网络的传输压,一种实施方式中,所述向本地服务器发送探测请求报文的步骤(S301),可以包括如下步骤。
[0160] 在电子设备向本地服务器发送过探测请求报文的情况下,确定前一次发送探测请求报文的时间点,作为第一时间点。
[0161] 其中,前一次发送探测请求报文为与当前时间点最近的一次发送探测请求报文。例如,当前时间点为12点,在当前时间点之前,电子设备向本地服务器发送过3次探测请求报文,时间分别是:11点、11点30分和11点50分,那么与当前时间点最近的一次是11点50分发送的探测请求报文,11点50分即为前一次发送探测请求报文的时间点。
[0162] 在与第一时间点间隔第一预设时长的第二时间点,向本地服务器发送一次探测请求报文。
[0163] 在与第二时间点间隔第二预设时长的时间点,向本地服务器再发送一次探测请求报文,其中,第二预设时长大于或者等于第一预设时长。
[0164] 其中,第一预设时长和第二预设时长均可以是自定义设定的。第二预设时长大于第一预设时长,则当电子设备向本地服务器发送探测请求报文的数量越多时,时间越晚发送的相邻探测请求报文之间的时间间隔越长。
[0165] 一种实现方式中,为了避免相邻两次探测请求报文之间间隔的时间太长,可以对第一预设时长和第二预设时长设定最大时长阈值,也就是说,第一预设时长和第二预设时长的取值范围为不大于该最大时长阈值。当第一预设时长和第二预设时长均达到该最大时长阈值时,后续发送探测请求报文的时间间隔为该最大时长阈值的时长。
[0166] 例如,电子设备向本地服务器第一次发送探测请求报文与第二次发送探测请求报文的时间间隔为1秒或者2秒,第二次发送探测请求报文与第三次发送探测请求报文的时间间隔为2秒或者3秒,第三次发送探测请求报文与第四次发送探测请求报文的时间间隔为3秒或者4秒,以此类推。最大时长阈值为10秒,即当第二预设时长达到10秒时,后续发送探测请求报文的时间间隔为10秒。
[0167] 对于本地服务器来说,当接收到电子设备发送的探测请求报文,即可获得探测请求报文中携带的目标固件的标识信息,本地服务器再根据所获得的标识信息获取目标固件。
[0168] 针对于本地服务器的一种实施方式,本地服务器在接收到探测请求报文,且获得探测请求报文中携带的标识信息之后,可以检测本地是否存储有标识信息表示的目标固件。若本地存储有,则本地服务器可以直接从本地获取目标固件。
[0169] 若本地没有存储,则本地服务器可以向远程服务器请求。其中,本地服务器与远程服务器之间通信连接,远程服务器存储有固件。
[0170] 一种实现方式中,本地服务器可以向远程服务器发送包含标识信息的固件请求报文。远程服务器在接收到该固件请求报文后,可以解析该固件请求报文,并从固件请求报文获取标识信息。远程服务器可以根据所获取的标识信息获取该标识信息表示的目标固件,并将所获取的目标固件发送至本地服务器。本地服务器接收到远程服务器发送的目标固件之后,可以将目标固件存储于本地。
[0171] 通过本实施方式,本地服务器提供了为电子设备提供了可用的固件,可以使得用户不用再手动查找固件,提高了固件查找和下载的便利性。
[0172] S302,从本地服务器获取目标固件,并安装目标固件。
[0173] 在电子设备成功安装目标固件之后,便可以认为,完成了对发生异常的目标固件的恢复。
[0174] 一种实施方式中,电子设备可以接收本地服务器发送的探测响应报文。
[0175] 可以认为,该探测响应报文为针对探测请求报文的响应报文。本地服务器发送探测响应报文的方式与电子设备发送探测请求报文的方式一致,即当电子设备通过多播方式发送探测请求报文时,则本地服务器同样以多播方式发送探测响应报文;当电子设备通过广播方式发送探测请求报文时,则本地服务器同样以广播方式发送探测响应报文。
[0176] 探测响应报文中可以携带:本地服务器的服务器IP地址、设备IP地址和端口号。其中,设备IP地址为本地服务器为电子设备分配的IP地址。端口号用于本地服务器向电子设备提供下载服务。
[0177] 其中,电子设备获取设备IP地址的一种实施方式中,在电子设备安装目标固件时,电子设备会配置IP地址,电子设备可以将所配置的IP地址作为设备IP地址,存储于电子设备本地。其中,该设备IP地址与目标固件是相对应的,那么,电子设备本地对设备IP地址进行存储时,对应存储有设备IP地址与目标固件的对应关系。
[0178] 例如,电子设备本地中存储有设备IP地址1、设备IP地址2和设备IP地址3,其中,设备IP地址1对应固件1,设备IP地址2对应固件2,设备IP地址3对应固件3。也就是说,设备IP地址1是安装固件1时电子设备所配置的IP地址,设备IP地址2是安装固件2时电子设备所配置的IP地址,设备IP地址3是安装固件3时电子设备所配置的IP地址。
[0179] 对于电子设备来说,在确定目标固件异常之后,可以从本地获取设备IP地址,具体地,根据电子设备本地中存储的设备IP地址与目标固件的对应关系,确定该目标固件对应的设备IP地址,并获取该设备IP地址。
[0180] 电子设备在获取到设备IP地址后,以探测请求报文携带设备IP地址的方式,即探测请求报文中携带有设备IP地址,电子设备将设备IP地址发送至本地服务器。
[0181] 本地服务器存储有IP地址池,IP地址池包括多个可用的IP地址。当本地服务器接收到探测请求报文后,可以从探测请求报文中获取到设备IP地址,利用IP地址池中所包括的IP地址与设备IP地址进行匹配,若IP地址池中存在IP地址与设备IP地址匹配,且匹配到的IP地址未被使用,则可以确定该设备IP地址是可用的。
[0182] 本地服务器在确定探测请求报文中携带的设备IP地址可用之后,可以在探测响应报文中携带该设备IP地址,表示该设备IP地址可用,电子设备可以通过配置该设备IP地址与本地服务器建立连接。
[0183] 另一种情况中,若本地服务器在IP地址池中未匹配到设备IP地址,或者该设备IP地址已被使用,则可以确定探测请求报文中携带的设备IP地址不可用。本地服务器可以从IP地址池中重新获取可用的IP地址,并将该IP地址确定为分配给电子设备的设备IP地址。在本地服务器发送的探测响应报文中携带重新确定的设备IP地址,以使得电子设备通过配置该设备IP地址与本地服务器建立连接。
[0184] 电子设备在接收到本地服务器发送的探测响应报文之后,利用服务器IP地址和设备IP地址,可以与本地服务器建立连接。一种实现方式中,电子设备从探测响应报文中获取到设备IP地址后,将自身的IP地址设置为该设备IP地址。电子设备利用该设备IP地址连接服务器IP地址的本地服务器,这样,便建立了基于设备IP地址和服务器IP地址的通信连接。
[0185] 一种实施方式中,在电子设备与本地服务器建立连接之后,电子设备可以向本地服务器发送一个ACK(Acknowledgement,确认字符)请求报文,该ACK请求报文用于表示电子设备已设置好网络环境,准备就绪等待传输目标固件。本地服务器接收到该ACK请求报文后,可以向电子设备发送一个ACK应答报文,该ACK应答报文用于表示本地服务器已设置好网络环境,准备就绪等待传输目标固件。其中,ACK应答报文可以不携带任何信息。
[0186] 在电子设备与本地服务器建立连接之后,电子设备可以通过所分配的端口号的端口,从本地服务器下载目标固件。一种实现方式中,电子设备从探测响应报文中获取到端口号之后,将自身的端口设置为该端口号的端口,这样,电子设备可以通过该端口号的端口从本地服务器下载目标固件。可以认为,本地服务器作为FTP服务器,电子设备基于FTP协议从本地服务器下载目标固件。
[0187] 示例地,电子设备接收到的本地服务器发送的探测响应报文中携带的服务器IP地址为118.186.0.252,设备IP地址为118.186.0.112,端口号为21。电子设备将自身的IP地址设置为118.186.0.112,将自身的端口设置为端口号21的端口。IP地址为118.186.0.112的电子设备与IP地址为118.186.0.252的本地服务器建立连接,并在建立连接之后,通过端口号为21的端口从本地服务器下载目标固件。
[0188] 又一种实施方式中,电子设备从本地服务器获取目标固件的步骤,可以包括如下步骤。
[0189] 电子设备可以与本地服务器建立单播方式的通信连接,在电子设备与本地服务器建立通信连接之后,本地服务器以单播的方式将目标固件发送至电子设备。
[0190] 又一种实施方式中,电子设备从本地服务器获取目标固件的步骤,可以包括如下步骤:电子设备向本地服务器发送目标固件请求,本地服务器接收到目标固件请求之后,将目标固件发送至本地服务器。
[0191] 一种实施方式中,当有多个电子设备与本地服务器建立连接,并且本地服务器需要为多个电子设备提供下载服务时,本地服务器可以为每一个电子设备分配一个端口号,并且每一个电子设备所分配的端口号各不相同。
[0192] 这样,各电子设备可以通过各自所分配的端口号的端口与本地服务器进行通信,各电子设备可以通过各自所分配的端口号的端口从本地服务器下载所需的资源。各电子设备之间互不影响,减小了电子设备之间的干扰,提高了各电子设备与本地服务器通信及下载的可靠性。
[0193] 一种实施方式中,在同一网络中电子设备与本地服务器之间是以多播或者广播的方式发送报文,对于每一个电子设备来说,可能会接收到本地服务器发送给其他电子设备的报文。因此,为了使得电子设备可以准确地确定所接收到的报文是否属于自己的,本地服务器发送的探测响应报文中还可以携带MAC地址。
[0194] 其中,探测响应报文中携带的MAC地址即为接收该探测响应报文的电子设备的MAC地址。例如,探测响应报文1中携带的MAC地址为44-45-53-54-00-00,则接收该探测响应报文1的电子设备的MAC地址也为44-45-53-54-00-00。
[0195] 在接收所述本地服务器发送的探测响应报文的步骤之后,在利用服务器IP地址和设备IP地址,与本地服务器建立连接的步骤之前,还可以包括如下步骤。
[0196] 电子设备获取探测响应报文携带的MAC地址,并判断所获取的MAC地址与电子设备的MAC地址是否匹配。若匹配,则表示接收该探测响应报文的对象为该电子设备,电子设备继续执行利用服务器IP地址和设备IP地址,与本地服务器建立连接的步骤。
[0197] 若不匹配,则表示接收该探测响应报文的对象不是该电子设备,那么,该电子设备可以将该探测响应报文丢弃。在判断出所获取的MAC地址与电子设备的MAC地址不匹配的情况下,电子设备除了上述丢弃的处理方式以外,还可以以其他方式处理,在此不做限定。
[0198] 通过本实施方式,电子设备可以根据探测响应报文中携带的MAC地址判断该探测响应报文是否属于自身的,这样,每一个电子设备可以仅获取属于自身的探测响应报文,避免了对其他不属于自身的探测响应报文进行处理,进而节省了电子设备的CPU资源,提高了对探测响应报文的处理效率。
[0199] 一种实施方式中,在通过端口号的端口,从本地服务器下载目标固件的步骤之前,还可以包括如下步骤。
[0200] 电子设备可以向本地服务器发送ARP报文,其中,ARP报文包括设备IP地址和电子设备的MAC地址,ARP报文中所包括的设备IP地址为该电子设备的设备IP地址。
[0201] 其中,电子设备发送ARP报文可以是在下载目标固件之前进行。
[0202] 本地服务器中存储有ARP表项,该ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。本地服务器在接收到电子设备发送的ARP报文之后,可以从ARP报文中获取到电子设备的设备IP地址和MAC地址,根据该设备IP地址和该MAC地址对存储的ARP表项进行更新。其中,本地服务器对ARP表项进行更新可以是在本地服务器的操作系统中进行。
[0203] 通过本实施方式,可以使得本地服务器中的ARP表项保持新的状态,防止ARP表项的老化,即时间越长本地服务器对该ARP表项的信任度越低,并且可以有效地减少因为ARP表项的老化而导致电子设备与本地服务器通信连接中断等问题。
[0204] 一种实施方式中,电子设备和本地服务器在同一网络中,本地服务器与远程服务器通信连接,本申请实施例提供的固件异常恢复方法,如图4所示的信令图。
[0205] 电子设备,用于当目标固件安装成功后,获取目标固件的标识信息(识别码、型号、版本号),并存储标识信息。
[0206] 电子设备,用于在确定目标固件异常之后,向本地服务器发送探测请求报文,该探测请求报文中携带目标固件的标识信息;
[0207] 本地服务器,用于接收所述本地服务器发送的探测请求报文;在检测到本地存储有标识信息表示的目标固件,则从本地获取目标固件;在检测到本地未存储标识信息表示的目标固件,则向远程服务器发送包含标识信息的固件请求报文。
[0208] 远程服务器,用于接收本地服务器发送的固件请求报文,根据标识信息获取目标固件,并将目标固件发送至本地服务器;
[0209] 本地服务器,用于接收远程服务器发送的目标固件,向电子设备发送探测响应报文,该探测响应报文包括:MAC地址、本地服务器的服务器IP地址、设备IP地址和端口号。
[0210] 电子设备,用于接收本地服务器发送的探测响应报文,获取探测响应报文携带的MAC地址;在判断出所获取的MAC地址与电子设备的MAC地址匹配时,设置IP地址和端口,利用服务器IP地址和设备IP地址,与所述本地服务器建立连接。
[0211] 电子设备,用于向本地服务器发送一个ACK请求报文。
[0212] 本地服务器,用于接收ACK请求报文,并发送ACK响应报文。
[0213] 电子设备,用于接收ACK响应报文。
[0214] 电子设备,用于向本地服务器发送ARP报文,ARP报文包括设备IP地址和电子设备的MAC地址。
[0215] 本地服务器,用于接收ARP报文,并根据设备IP地址和MAC地址对存储的ARP表项进行更新。
[0216] 电子设备,用于向本地服务器发送目标固件请求。
[0217] 本地服务器,用于接收目标固件请求,并将目标固件发送至电子设备。
[0218] 通过本申请实施例提供的固件异常恢复方法,电子设备确认目标固件异常时,可以直接从本地服务器中请求目标固件,进而可以不需要用户再手动查找目标固件,再手动进行安装。不仅节省了人力资源,而且提高了目标固件查找和获取的便利性。
[0219] 相应于上述固件异常检测方法实施例,本申请实施例还提供一种固件异常检测装置,如图5所示,该固件异常检测装置包括:
[0220] 第一检测模块510,用于检测电子设备中是否存储有目标固件的校验文件,其中,校验文件为目标固件在电子设备中安装完成后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;
[0221] 第一确定模块520,用于当第一检测模块的检测结果为否时,则确定目标固件异常。
[0222] 可选地,第一检测模块510具体用于:
[0223] 在电子设备启动的初始化阶段,检测电子设备中是否存储有目标固件的校验文件;
[0224] 该装置还可以包括:
[0225] 读取模块,用于当第一检测模块的检测结果为是时,则在初始化阶段,读取校验文件中的校验值;
[0226] 第二确定模块,用于当所读取的校验值为预设的异常校验值时,确定目标固件异常。
[0227] 可选地,该装置还可以包括:
[0228] 第二检测模块,用于当所读取的校验值不为异常校验值时,将所读取的校验值加上预设数值,得到新的校验值,并将新的校验值写入校验文件中,作为校验文件的更新后的校验值;启动电子设备的操作系统,并检测操作系统是否启动成功;
[0229] 写入模块,用于当第二检测模块的检测结果为是时,将默认校验值写入校验文件中,作为校验文件的更新后的校验值;
[0230] 更新模块,用于当第二检测模块的检测结果为否时,则重新启动初始化阶段,并触发读取模块执行在初始化阶段,读取校验文件中的校验值。
[0231] 可选地,电子设备与本地服务器在同一网络中,该装置还可以包括:
[0232] 第一发送模块,用于在确定目标固件异常之后,向本地服务器发送探测请求报文,探测请求报文中携带目标固件的标识信息,以使得本地服务器根据标识信息获取目标固件;
[0233] 第一获取模块,用于从本地服务器获取目标固件,并安装目标固件。
[0234] 可选地,发送模块具体用于:
[0235] 在电子设备向本地服务器发送过探测请求报文的情况下,确定前一次发送探测请求报文的时间点,作为第一时间点;
[0236] 在与第一时间点间隔第一预设时长的第二时间点,向本地服务器发送探测请求报文;
[0237] 在与第二时间点间隔第二预设时长的时间点,向本地服务器发送探测请求报文,其中,第二预设时长大于或者等于第一预设时长。
[0238] 可选地,装置还可以包括:
[0239] 第二获取模块,用于当目标固件安装成功后,获取目标固件的标识信息,并存储标识信息。
[0240] 可选地,第一获取模块具体用于:
[0241] 接收本地服务器发送的探测响应报文,探测响应报文中携带:本地服务器的服务器IP地址、设备IP地址和端口号;
[0242] 利用服务器IP地址和设备IP地址,与本地服务器建立连接;
[0243] 通过端口号的端口,从本地服务器下载目标固件。
[0244] 可选地,探测响应报文中还携带MAC地址;该装置还可以包括:
[0245] 第三获取模块,用于获取探测响应报文携带的MAC地址;
[0246] 判断模块,用于判断所获取的MAC地址与电子设备的MAC地址是否匹配;如果是,触发第一获取模块执行利用服务器IP地址和设备IP地址,与本地服务器建立连接。
[0247] 可选地,该装置还可以包括:
[0248] 第二发送模块,用于向本地服务器发送ARP报文,ARP报文包括设备IP地址和电子设备的MAC地址,以使得本地服务器根据设备IP地址和MAC地址对存储的ARP表项进行更新,ARP表项记录电子设备的设备IP地址与MAC地址的对应关系。
[0249] 可选地,电子设备根据以下方式获取设备IP地址:
[0250] 电子设备将安装目标固件时配置的IP地址作为设备IP地址;
[0251] 电子设备将设备IP地址存储于本地;
[0252] 在确定目标固件异常之后电子设备从本地获取设备IP地址。
[0253] 本申请实施例提供的技术方案中,检测电子设备中是否存储有目标固件的校验文件,校验文件为目标固件在电子设备中安装成功后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;若不存在,则确定目标固件异常。通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。
[0254] 相应于上述固件异常检测方法实施例,本申请实施例还提供了一种电子设备,如图6所示,包括处理器610、通信接口620、存储器630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信;
[0255] 存储器630,用于存放计算机程序;
[0256] 处理器610,用于执行存储器630上所存放的程序时,实现如下步骤:
[0257] 检测电子设备中是否存储有目标固件的校验文件,其中,校验文件为目标固件在电子设备中安装完成后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;
[0258] 若不存在,则确定目标固件异常。
[0259] 本申请实施例提供的技术方案中,检测电子设备中是否存储有目标固件的校验文件,校验文件为目标固件在电子设备中安装成功后生成并存储于电子设备中的文件,用于表示目标固件在电子设备中安装成功;若不存在,则确定目标固件异常。通过本申请实施例提供的技术方案,利用校验文件表示目标固件在电子设备中安装成功的特性,可以认为,目标固件正常时校验文件存在,目标固件异常时则校验文件不存在。这样,通过检测电子设备中是否存在进而判断目标固件是否异常,达到了对固件异常进行检测的目的。
[0260] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0261] 通信接口用于上述电子设备与其他设备之间的通信。
[0262] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0263] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0264] 相应于上述固件异常检测方法实施例,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的固件异常检测方法步骤。
[0265] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0266] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于固件异常检测装置、电子设备以及机器可读存储介质实施例而言,由于其基本相似于固件异常检测方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0267] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈