CN113703853A - 一种网络设备初始化方法及装置 - Google Patents
一种网络设备初始化方法及装置 Download PDFInfo
- Publication number
- CN113703853A CN113703853A CN202110975942.1A CN202110975942A CN113703853A CN 113703853 A CN113703853 A CN 113703853A CN 202110975942 A CN202110975942 A CN 202110975942A CN 113703853 A CN113703853 A CN 113703853A
- Authority
- CN
- China
- Prior art keywords
- file
- hardware
- bootloader
- header
- bin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011423 initialization method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000004519 manufacturing process Methods 0.000 abstract description 12
- 238000012423 maintenance Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种网络设备初始化方法及装置。该方法中,将网络设备对应的多个硬件版本各自的多个Bootloader程序合并到同一Bootloader文件中,多个硬件版本对应的多个BIN程序合并到同一BIN文件中,然后配置到网络设备中。当网络设备上电时,可根据自身硬件信息,从已配置的Bootloader文件和BIN文件中,分别查找与自身硬件信息匹配的Bootloader程序和BIN程序进行加载以及运行,以完成网络设备初始化。本申请在保证网络设备正常初始化的情况下,针对对应多个硬件版本的网络设备仅需维护一个软件版本,因此,可有效提升生产维护效率,同时降低配置错误概率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种网络设备初始化方法及装置。
背景技术
网络设备出厂时,通常已配置好引导程序(以下称为Bootloader程序)和指定运行程序(以下称为BIN程序)。网络设备上电后,首先运行Bootloader程序进行硬件初始化,比如,初始化CPU、初始化内存等;然后,通过Bootloader程序加载BIN程序(主要包括网管系统程序和其它硬件驱动程序),并在加载后启动网管系统(亦称为操作系统),以完成网络设备初始化。
Bootloader程序和BIN程序具有硬件相关性。当网络设备对应多个硬件版本时,需要维护与多个硬件版本分别对应的软件版本(Bootloader程序和BIN程序)。且在生产时,需要针对网络设备的当前硬件版本准确配置对应的软件版本,以保证网络设备正常运行,这给生产维护带来不便,且容易出错。
发明内容
有鉴于此,本申请提出一种网络设备初始化方法及装置,用以提升生产维护效率,降低配置出错概率。
为实现上述申请目的,本申请提供了如下技术方案:
第一方面,本申请提供一种网络设备初始化方法,应用于网络设备,所述网络设备对应多个硬件版本,所述网络设备预先配置有Bootloader文件、BIN文件以及Bootloader配置文件,所述Bootloader文件包括所述多个硬件版本分别对应的多个Bootloader程序,所述BIN文件包括所述多个硬件版本分别对应的多个BIN程序,所述方法包括:
从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息;
从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,所述第一偏移量用于标识与所述目标硬件版本对应的Bootloader程序在所述Bootloader文件中的位置,加载并运行所述第一偏移量对应位置处的Bootloader程序;
从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,所述第二偏移量用于标识与所述目标硬件版本对应的BIN程序在所述BIN文件中的位置,加载并运行所述第二偏移量对应位置处的BIN程序。
可选的,所述Bootloader文件的文件头和所述BIN文件的文件头均包括所述多个硬件版本分别对应的子文件头,每一个子文件头用于记录硬件版本的硬件信息与偏移量的对应关系,所述从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,包括:
依次遍历所述Bootloader文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第一子文件头;
从所述第一子文件头中,获取与所述目标硬件版本的硬件信息对应的第一偏移量;
所述从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,包括:
依次遍历所述BIN文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第二子文件头;
从所述第二子文件头中,获取与所述目标硬件版本的硬件信息对应的第二偏移量。
可选的,所述Bootloader文件的文件头还包括总文件头,所述总文件头包括文件类型字段,所述从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息,包括:
获取所述文件类型字段的值;
如果所述文件类型字段的值指示所述Bootloader文件包括多个Bootloader程序,则从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息。
可选的,所述硬件信息由表征硬件版本差异的至少一个硬件的硬件类型组成,所述至少一个硬件的硬件类型按照预设顺序排列,且每一个硬件的硬件类型由至少一个二进制位表示。
可选的,所述加载并运行所述第二偏移量对应位置处的BIN程序之后,所述方法还包括:
如果存在尚未成功安装驱动的硬件,向服务器发送驱动请求,所述驱动请求包括网络设备所属目标硬件版本的硬件信息;
接收并加载所述服务器基于所述驱动请求返回的驱动程序,所述返回的驱动程序为所述服务器根据所述驱动请求携带的硬件信息,检索到的最新驱动程序。
第二方面,本申请提供一种网络设备初始化装置,应用于网络设备,所述网络设备对应多个硬件版本,所述网络设备预先配置有Bootloader文件、BIN文件以及Bootloader配置文件,所述Bootloader文件包括所述多个硬件版本分别对应的多个Bootloader程序,所述BIN文件包括所述多个硬件版本分别对应的多个BIN程序,所述装置包括:
硬件信息获取单元,用于从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息;
Bootloader程序加载单元,用于从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,所述第一偏移量用于标识与所述目标硬件版本对应的Bootloader程序在所述Bootloader文件中的位置,加载并运行所述第一偏移量对应位置处的Bootloader程序;
BIN程序加载单元,用于从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,所述第二偏移量用于标识与所述目标硬件版本对应的BIN程序在所述BIN文件中的位置,加载并运行所述第二偏移量对应位置处的BIN程序。
可选的,所述Bootloader文件的文件头和所述BIN文件的文件头均包括所述多个硬件版本分别对应的子文件头,每一个子文件头用于记录硬件版本的硬件信息与偏移量的对应关系,所述Bootloader程序加载单元从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,包括:
依次遍历所述Bootloader文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第一子文件头;
从所述第一子文件头中,获取与所述目标硬件版本的硬件信息对应的第一偏移量;
所述BIN程序加载单元从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,包括:
依次遍历所述BIN文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第二子文件头;
从所述第二子文件头中,获取与所述目标硬件版本的硬件信息对应的第二偏移量。
可选的,所述Bootloader文件的文件头还包括总文件头,所述总文件头包括文件类型字段,所述硬件信息获取单元从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息,包括:
获取所述文件类型字段的值;
如果所述文件类型字段的值指示所述Bootloader文件包括多个Bootloader程序,则从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息。
可选的,所述硬件信息由表征硬件版本差异的至少一个硬件的硬件类型组成,所述至少一个硬件的硬件类型按照预设顺序排列,且每一个硬件的硬件类型由至少一个二进制位表示。
可选的,所述装置还包括:
请求发送单元,用于所述BIN程序加载单元加载并运行所述第二偏移量对应位置处的BIN程序之后,如果存在尚未成功安装驱动的硬件,向服务器发送驱动请求,所述驱动请求包括网络设备所属目标硬件版本的硬件信息;
驱动接收单元,用于接收并加载所述服务器基于所述驱动请求返回的驱动程序,所述返回的驱动程序为所述服务器根据所述驱动请求携带的硬件信息,检索到的最新驱动程序。
由以上描述可以看出,本申请实施例中,针对多硬件版本的网络设备,将该多个硬件版本对应的多个Bootloader程序合并到同一Bootloader文件中,该多个硬件版本对应的多个BIN程序合并到同一BIN文件中,然后配置到网络设备中。当网络设备上电时,可根据自身硬件信息,从已配置的Bootloader文件和BIN文件中,分别查找与自身硬件信息匹配的Bootloader程序和BIN程序进行加载以及运行,以完成网络设备初始化。可以看出,本申请实施例在保证网络设备正常初始化的情况下,针对对应多个硬件版本的网络设备仅需维护一个软件版本(Bootloader文件和BIN文件),因此,可有效提升生产维护效率,同时降低配置错误概率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例示出的一种网络设备初始化方法流程图;
图2是本申请实施例示出的一种文件格式示例;
图3是本申请实施例示出的一种网络设备初始化装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请提供一种网络设备初始化方法,该方法中,网络设备预先配置包含多个Bootloader程序的Bootloader文件和包含多个BIN程序的BIN文件。网络设备上电时,可根据自身硬件信息,从已配置的Bootloader文件和BIN文件中,分别查找与自身硬件信息匹配的Bootloader程序和BIN程序进行加载以及运行,以完成网络设备初始化。可以看出,本申请针对对应多个硬件版本的网络设备仅需维护一个软件版本(Bootloader文件和BIN文件),因此,可有效提升生产维护效率,同时降低配置错误概率。
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请执行详细描述:
参见图1,为本申请实施例示出的一种网络设备初始化方法流程图。
在实际生产中,为了避免网络设备因元器件缺料而导致设备停产,设备厂商通常针对网络设备中的关键功能模块使用不同型号的元器件进行可替代性生产。
比如,无线路由器的闪存(Flash Memory)可选用NorFlash、NandFlash、eMMC、USF等不同类型的Flash进行生产;再比如,无线路由器的射频前端模组(英文:Front-endModules,缩写:FEM)可选用Skyworks、Richwave、QORVO等不同供应商的模组进行生产。
这使得同一网络设备可能对应多个硬件版本。目前,针对同一网络设备的多个硬件版本,需要维护与多个硬件版本一一对应的多个软件版本(包括Bootloader程序和BIN程序),这给生产维护带来不便。
为此,本申请实施例将多个硬件版本对应的多个Bootloader程序合并到同一Bootloader文件中,将多个硬件版本对应的多个BIN程序合并到同一BIN文件中,然后,将合并后的Bootloader文件和BIN文件配置到网络设备中。这使得对应多个硬件版本的网络设备只需维护一个软件版本(合并后的Bootloader文件和BIN文件),因此,可简化生产维护难度。
基于该合并后的Bootloader文件和BIN文件,网络设备可执行图1所示流程,以完成设备初始化。如图1所示,该流程可包括以下步骤:
步骤101,从Bootloader配置文件中获取网络设备所属目标硬件版本的硬件信息。
这里,需要说明的是,Bootloader配置文件也需要预先配置到网络设备中。在配置之前,可在Bootloader配置文件的文件头中添加网络设备所属硬件版本的硬件信息。这样,当网络设备上电时,可通过本步骤从已配置的Bootloader配置文件中,获取网络设备所属硬件版本的硬件信息。
这里,将当前网络设备所属硬件版本,称为目标硬件版本。可以理解的是,之所以称为目标硬件版本,只是为便于区分而进行的命名,并非用于限定。
步骤102,从Bootloader文件的文件头中查找与目标硬件版本的硬件信息对应的第一偏移量,加载并运行第一偏移量对应位置处的Bootloader程序。
一个完整的文件由文件头和文件内容(亦可称为文件的数据部分)组成。本申请实施例中,多个Bootloader程序依次排列在文件的数据部分,各Bootloader程序对应的描述信息位于文件头中。
具体地,该Bootloader文件的文件头可包括多个子文件头,每一个子文件头用于记录一个硬件版本对应Bootloader程序的描述信息。
参见图2,为本申请实施例示出的一种文件格式示例。该文件包括文件头和数据部分。其中,数据部分包括多个硬件版本对应的多个Bootloader程序;文件头包括总文件头和各子文件头,子文件头的数量等于该文件中Bootloader程序的个数。
其中,总文件头用于记录整个文件的相关信息。比如,文件总长度、文件包括的总段数(本申请实施例中,将每一个Bootloader程序对应数据划分为一个数据段,因此,总段数即为文件中Bootloader程序的个数)、文件中所有Bootloader程序的总信息-摘要算法5(英文:message-digest algorithm 5,缩写:MD5)值。
子文件头用于记录Bootloader程序的相关信息。比如,用于标识Bootloader程序在文件中位置的偏移量;用于标识Bootloader程序所适用硬件版本的硬件信息;用于标识Bootloader程序长度的段长度;用于标识Bootloader程序的MD5值的段MD5值。
基于上述文件结构,本申请实施例可依次遍历Bootloader文件包括的各子文件头,直到查找到包括目标硬件版本的硬件信息的子文件头。这里,将Bootloader文件中包括目标硬件版本的硬件信息的子文件头,称为第一子文件头。可以理解的是,之所以称为第一子文件头,只是为便于区分而进行的命名,并非用于限定。
获取该第一子文件头包括的偏移量以及段长度,这里,将第一子文件头包括的偏移量称为第一偏移量;第一子文件头包括的段长度称为第一段长度。其中,第一偏移量用于标识适用于目标硬件版本的Bootloader程序在Bootloader文件中的位置(通常为起始位置);第一段长度用于标识Bootloader程序的长度。可以理解的是,之所以称为第一偏移量、第一段长度,只是为便于区分而进行的命名,并非用于限定。
网络设备可根据该第一偏移量以及第一段长度,从Bootloader文件的数据部分截取相应Bootloader程序数据,计算该Bootloader程序数据的MD5值。如果该MD5值与第一子文件头包括的段MD5值相同,说明该Bootloader程序数据合法,则加载并运行该Bootloader程序,以完成基本硬件初始化。
步骤103,从BIN文件的文件头中查找与目标硬件版本的硬件信息对应的第二偏移量,加载第二偏移量对应位置处的BIN程序。
这里,需要说明的是,BIN文件的文件格式与Bootloader文件的文件格式相同。区别仅在于,BIN文件的数据部分包括多个硬件版本对应的多个BIN程序;每一个子文件头用于记录一个硬件版本对应BIN程序的描述信息。具体参见步骤102中对Bootloader文件格式的描述,这里不再赘述。
本步骤中,网络设备可依次遍历BIN文件包括的各子文件头,查找包括目标硬件版本的硬件信息的子文件头。这里,将BIN文件中包括目标硬件版本的硬件信息的子文件头,称为第二子文件头。可以理解的是,之所以称为第二子文件头,只是为便于区分而进行的命名,并非用于限定。
获取该第二子文件头包括的偏移量以及段长度,这里,将第二子文件头包括的偏移量称为第二偏移量;第二子文件头包括的段长度称为第二段长度。其中,第二偏移量用于标识适用于目标硬件版本的BIN程序在BIN文件中的位置(通常为起始位置);第二段长度用于标识BIN程序的长度。可以理解的是,之所以称为第二偏移量、第二段长度,只是为便于区分而进行的命名,并非用于限定。
网络设备可根据该第二偏移量以及第二段长度,从BIN文件的数据部分截取相应BIN程序数据,计算该BIN程序数据的MD5值。如果该MD5值与第二子文件头包括的段MD5值相同,说明该BIN程序数据合法,则加载并运行该BIN程序(包括硬件驱动和网管系统程序),以完成网络设备初始化。
至此,完成图1所示流程。
通过图1所示流程可以看出,本申请实施例中,在保证网络设备正常初始化的情况下,针对对应多个硬件版本的网络设备仅需维护一个软件版本(Bootloader文件和BIN文件),相比于针对多个硬件版本维护多个软件版本,可有效提升生产维护效率,同时,降低配置错误的概率。
作为一个实施例,Bootloader文件的总文件头还可包括文件类型字段(图2中未示出)。在执行步骤101之前,网络设备可获取该文件类型字段的值,如果该文件类型字段的值指示Bootloader文件包括多个Bootloader程序,则执行步骤101~步骤103;否则,说明当前Bootloader文件为单一Bootloader程序对应文件,相应的,该网络设备配置的BIN文件也为单一BIN程序对应文件,该Bootloader文件和BIN文件均只包括总文件头,该总文件头遵循现有文件头格式,因此,网络设备可采用现有初始化方式进行初始化。
这里,需要说明的是,该文件类型字段可选择现有文件头格式中未被占用的字段。当Bootloader文件包括多个Bootloader程序时,可设置该文件类型字段的值为非默认值,则网络设备基于该非默认值可确定采用图1所示初始化方式;当Bootloader文件只包括一个Bootloader程序时,该文件类型字段的值为默认值,则网络设备基于该默认值可确定采用现有初始化方式。
作为一个实施例,本申请中的硬件信息可由表征硬件版本差异的至少一个硬件的硬件类型组成。比如,不同硬件版本之间的区别(差异)在于:Flash的类型不同、FEM的型号(类型)不同,则硬件信息可由这两个硬件的硬件类型组成。
作为一个示例,每一个硬件的硬件类型可由至少一个二进制位表示。参见表1,为通过至少一个二进制位表示的Flash类型示例。
表1
参见表2,为通过至少一个二进制位表示的FEM类型示例。
二进制位(3位) | FEM类型 |
000 | 不带外置FEM |
100 | Skyworks 85333 |
101 | Skyworks 85728 |
110 | Richwave RTC5631 |
111 | QORVOQPF4005 |
表2
硬件信息包括的至少一个硬件的硬件类型按照预设顺序排列。比如,该预设顺序为Flash在前、FEM在后,则当硬件版本的硬件信息为00111时,可确定该硬件版本选用的Flash为NorFlash、FEM为QORVOQPF400;再比如,当硬件版本的硬件信息为01100时,可确定该硬件版本选用的Flash为NandFlash、FEM为Skyworks 85333。可以看出,通过该硬件信息可清晰明确不同硬件版本的硬件差异。
作为一个实施例,在执行步骤103之后,如果网络设备还存在尚未成功安装驱动的硬件,则可向服务器(比如,云服务器)发送驱动请求,该驱动请求包括网络设备所属目标硬件版本的硬件信息。
服务器根据该驱动请求携带的硬件信息,可检索与之对应的最新驱动程序,将该最新驱动程序返回给网络设备。
网络设备接收并加载服务器返回的驱动程序,以完成驱动安装。
当然,为了保证网络设备与服务器之间访问的安全性,网络设备可在向服务器发送驱动请求之前,向服务器发送鉴权请求,在鉴权通过后,再向服务器发送驱动请求。
此外,需要补充说明的是,网络设备配置的BIN文件中还包括各硬件所需的配置数据,比如,FEM的无线增益配置,包括但不限于功率比(Power Rate)、接收(Rx)增益值、发送(Tx)增益值等。
不同硬件版本中同一硬件(比如,FEM)的配置数据可能不同。参见表3,为本申请实施例示出的FEM配置数据示例。
表3
以表3中第1条表项为例,其表示:硬件信息为01100(Flash为NandFlash、FEM为Skyworks 85333)的硬件版本中,FEM的Power Rate设置为校验值1,Rx增益值设置为+1dBm,Tx增益值设置为+0dBm。
为了区分不同硬件版本的配置数据,本申请实施例中,属于同一硬件版本的BIN程序和配置数据位于BIN文件中同一数据段,因此,在通过步骤103从BIN文件中找到目标硬件版本对应的BIN程序时,也就找到了位于同一数据段中的该目标硬件版本对应的配置数据,进而在完成BIN程序(包括驱动程序)加载以及运行后,可对各硬件进行配置数据设置。
以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的网络设备初始化装置进行描述:
参见图3,为本申请实施例提供的网络设备初始化装置的结构示意图,应用于网络设备,所述网络设备对应多个硬件版本,所述网络设备预先配置有Bootloader文件、BIN文件以及Bootloader配置文件,所述Bootloader文件包括所述多个硬件版本分别对应的多个Bootloader程序,所述BIN文件包括所述多个硬件版本分别对应的多个BIN程序,所述装置包括:硬件信息获取单元301、Bootloader程序加载单元302以及BIN程序加载单元303,其中:
硬件信息获取单元301,用于从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息;
Bootloader程序加载单元302,用于从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,所述第一偏移量用于标识与所述目标硬件版本对应的Bootloader程序在所述Bootloader文件中的位置,加载并运行所述第一偏移量对应位置处的Bootloader程序;
BIN程序加载单元303,用于从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,所述第二偏移量用于标识与所述目标硬件版本对应的BIN程序在所述BIN文件中的位置,加载并运行所述第二偏移量对应位置处的BIN程序。
作为一个实施例,所述Bootloader文件的文件头和所述BIN文件的文件头均包括所述多个硬件版本分别对应的子文件头,每一个子文件头用于记录硬件版本的硬件信息与偏移量的对应关系,所述Bootloader程序加载单元302从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,包括:
依次遍历所述Bootloader文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第一子文件头;
从所述第一子文件头中,获取与所述目标硬件版本的硬件信息对应的第一偏移量;
所述BIN程序加载单元303从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,包括:
依次遍历所述BIN文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第二子文件头;
从所述第二子文件头中,获取与所述目标硬件版本的硬件信息对应的第二偏移量。
作为一个实施例,所述Bootloader文件的文件头还包括总文件头,所述总文件头包括文件类型字段,所述硬件信息获取单元301从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息,包括:
获取所述文件类型字段的值;
如果所述文件类型字段的值指示所述Bootloader文件包括多个Bootloader程序,则从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息。
作为一个实施例,所述硬件信息由表征硬件版本差异的至少一个硬件的硬件类型组成,所述至少一个硬件的硬件类型按照预设顺序排列,且每一个硬件的硬件类型由至少一个二进制位表示。
作为一个实施例,所述装置还包括:
请求发送单元,用于所述BIN程序加载单元303加载并运行所述第二偏移量对应位置处的BIN程序之后,如果存在尚未成功安装驱动的硬件,向服务器发送驱动请求,所述驱动请求包括网络设备所属目标硬件版本的硬件信息;
驱动接收单元,用于接收并加载所述服务器基于所述驱动请求返回的驱动程序,所述返回的驱动程序为所述服务器根据所述驱动请求携带的硬件信息,检索到的最新驱动程序。
至此,完成图3所示装置的描述。本申请实施例中,针对多硬件版本的网络设备,将多个硬件版本对应的多个Bootloader程序合并到同一Bootloader文件中,多个硬件版本对应的多个BIN程序合并到同一BIN文件中,然后配置到网络设备中。当网络设备上电时,可根据自身硬件信息,从已配置的Bootloader文件和BIN文件中,分别查找与自身硬件信息匹配的Bootloader程序和BIN程序进行加载以及运行,以完成网络设备初始化。本申请在保证网络设备正常初始化的情况下,针对对应多个硬件版本的网络设备仅需维护一个软件版本,因此,可有效提升生产维护效率,同时降低配置错误概率。
以上所述仅为本申请实施例的较佳实施例而已,并不用以限制本申请,凡在本申请实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种网络设备初始化方法,其特征在于,应用于网络设备,所述网络设备对应多个硬件版本,所述网络设备预先配置有引导Bootloader文件、指定运行BIN文件以及Bootloader配置文件,所述Bootloader文件包括所述多个硬件版本分别对应的Bootloader程序,所述BIN文件包括所述多个硬件版本分别对应的BIN程序,所述方法包括:
从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息;
从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,所述第一偏移量用于标识与所述目标硬件版本对应的Bootloader程序在所述Bootloader文件中的位置,加载并运行所述第一偏移量对应位置处的Bootloader程序;
从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,所述第二偏移量用于标识与所述目标硬件版本对应的BIN程序在所述BIN文件中的位置,加载并运行所述第二偏移量对应位置处的BIN程序。
2.如权利要求1所述的方法,其特征在于,所述Bootloader文件的文件头和所述BIN文件的文件头均包括所述多个硬件版本分别对应的子文件头,每一个子文件头用于记录硬件版本的硬件信息与偏移量的对应关系,所述从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,包括:
依次遍历所述Bootloader文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第一子文件头;
从所述第一子文件头中,获取与所述目标硬件版本的硬件信息对应的第一偏移量;
所述从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,包括:
依次遍历所述BIN文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第二子文件头;
从所述第二子文件头中,获取与所述目标硬件版本的硬件信息对应的第二偏移量。
3.如权利要求1所述的方法,其特征在于,所述Bootloader文件的文件头还包括总文件头,所述总文件头包括文件类型字段,所述从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息,包括:
获取所述文件类型字段的值;
如果所述文件类型字段的值指示所述Bootloader文件包括多个Bootloader程序,则从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息。
4.如权利要求1所述的方法,其特征在于,所述硬件信息由表征硬件版本差异的至少一个硬件的硬件类型组成,所述至少一个硬件的硬件类型按照预设顺序排列,且每一个硬件的硬件类型由至少一个二进制位表示。
5.如权利要求1所述的方法,其特征在于,所述加载并运行所述第二偏移量对应位置处的BIN程序之后,所述方法还包括:
如果存在尚未成功安装驱动的硬件,向服务器发送驱动请求,所述驱动请求包括网络设备所属目标硬件版本的硬件信息;
接收并加载所述服务器基于所述驱动请求返回的驱动程序,所述返回的驱动程序为所述服务器根据所述驱动请求携带的硬件信息,检索到的最新驱动程序。
6.一种网络设备初始化装置,其特征在于,应用于网络设备,所述网络设备对应多个硬件版本,所述网络设备预先配置有引导Bootloader文件、指定运行BIN文件以及Bootloader配置文件,所述Bootloader文件包括所述多个硬件版本分别对应的多个Bootloader程序,所述BIN文件包括所述多个硬件版本分别对应的多个BIN程序,所述装置包括:
硬件信息获取单元,用于从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息;
Bootloader程序加载单元,用于从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,所述第一偏移量用于标识与所述目标硬件版本对应的Bootloader程序在所述Bootloader文件中的位置,加载并运行所述第一偏移量对应位置处的Bootloader程序;
BIN程序加载单元,用于从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,所述第二偏移量用于标识与所述目标硬件版本对应的BIN程序在所述BIN文件中的位置,加载并运行所述第二偏移量对应位置处的BIN程序。
7.如权利要求6所述的装置,其特征在于,所述Bootloader文件的文件头和所述BIN文件的文件头均包括所述多个硬件版本分别对应的子文件头,每一个子文件头用于记录硬件版本的硬件信息与偏移量的对应关系,所述Bootloader程序加载单元从所述Bootloader文件的文件头中查找与所述目标硬件版本的硬件信息对应的第一偏移量,包括:
依次遍历所述Bootloader文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第一子文件头;
从所述第一子文件头中,获取与所述目标硬件版本的硬件信息对应的第一偏移量;
所述BIN程序加载单元从所述BIN文件的文件头中查找与所述目标硬件版本的硬件信息对应的第二偏移量,包括:
依次遍历所述BIN文件的文件头包括的各子文件头,查找包含所述目标硬件版本的硬件信息的第二子文件头;
从所述第二子文件头中,获取与所述目标硬件版本的硬件信息对应的第二偏移量。
8.如权利要求6所述的装置,其特征在于,所述Bootloader文件的文件头还包括总文件头,所述总文件头包括文件类型字段,所述硬件信息获取单元从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息,包括:
获取所述文件类型字段的值;
如果所述文件类型字段的值指示所述Bootloader文件包括多个Bootloader程序,则从所述Bootloader配置文件中获取所述网络设备所属目标硬件版本的硬件信息。
9.如权利要求6所述的装置,其特征在于,所述硬件信息由表征硬件版本差异的至少一个硬件的硬件类型组成,所述至少一个硬件的硬件类型按照预设顺序排列,且每一个硬件的硬件类型由至少一个二进制位表示。
10.如权利要求6所述的装置,其特征在于,所述装置还包括:
请求发送单元,用于所述BIN程序加载单元加载并运行所述第二偏移量对应位置处的BIN程序之后,如果存在尚未成功安装驱动的硬件,向服务器发送驱动请求,所述驱动请求包括网络设备所属目标硬件版本的硬件信息;
驱动接收单元,用于接收并加载所述服务器基于所述驱动请求返回的驱动程序,所述返回的驱动程序为所述服务器根据所述驱动请求携带的硬件信息,检索到的最新驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975942.1A CN113703853A (zh) | 2021-08-24 | 2021-08-24 | 一种网络设备初始化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975942.1A CN113703853A (zh) | 2021-08-24 | 2021-08-24 | 一种网络设备初始化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113703853A true CN113703853A (zh) | 2021-11-26 |
Family
ID=78654454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110975942.1A Pending CN113703853A (zh) | 2021-08-24 | 2021-08-24 | 一种网络设备初始化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703853A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114924803A (zh) * | 2022-06-16 | 2022-08-19 | Oppo广东移动通信有限公司 | 加载启动方法、芯片、电子装置和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294469A (zh) * | 2013-05-24 | 2013-09-11 | 北京星网锐捷网络技术有限公司 | 一种运行网络设备中软件系统的方法和网络设备 |
US20160004545A1 (en) * | 2014-04-30 | 2016-01-07 | Huawei Technologies Co., Ltd. | Method and embedded device for loading driver |
CN106325879A (zh) * | 2016-08-30 | 2017-01-11 | 北京金山安全软件有限公司 | 一种驱动程序的安装方法及装置、电子设备 |
CN106528106A (zh) * | 2016-10-31 | 2017-03-22 | 武汉光迅科技股份有限公司 | 一种自适应各种不同Flash芯片类型的嵌入式系统启动方法 |
CN107168748A (zh) * | 2017-05-31 | 2017-09-15 | 武汉英泰斯特电子技术有限公司 | 一种通过一个升级文件包实现多项升级任务的方法 |
CN210776687U (zh) * | 2019-10-09 | 2020-06-16 | 特瓦特能源科技有限公司 | 一种能够支持BootLoader程序兼容的系统 |
CN111782276A (zh) * | 2019-04-04 | 2020-10-16 | 福州瑞芯微电子股份有限公司 | 一种自动识别硬件版本的方法及终端 |
CN112748959A (zh) * | 2020-12-29 | 2021-05-04 | 杭州迪普科技股份有限公司 | 嵌入式系统启动方法、闪存烧录方法与系统更新方法 |
-
2021
- 2021-08-24 CN CN202110975942.1A patent/CN113703853A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294469A (zh) * | 2013-05-24 | 2013-09-11 | 北京星网锐捷网络技术有限公司 | 一种运行网络设备中软件系统的方法和网络设备 |
US20160004545A1 (en) * | 2014-04-30 | 2016-01-07 | Huawei Technologies Co., Ltd. | Method and embedded device for loading driver |
CN106325879A (zh) * | 2016-08-30 | 2017-01-11 | 北京金山安全软件有限公司 | 一种驱动程序的安装方法及装置、电子设备 |
CN106528106A (zh) * | 2016-10-31 | 2017-03-22 | 武汉光迅科技股份有限公司 | 一种自适应各种不同Flash芯片类型的嵌入式系统启动方法 |
CN107168748A (zh) * | 2017-05-31 | 2017-09-15 | 武汉英泰斯特电子技术有限公司 | 一种通过一个升级文件包实现多项升级任务的方法 |
CN111782276A (zh) * | 2019-04-04 | 2020-10-16 | 福州瑞芯微电子股份有限公司 | 一种自动识别硬件版本的方法及终端 |
CN210776687U (zh) * | 2019-10-09 | 2020-06-16 | 特瓦特能源科技有限公司 | 一种能够支持BootLoader程序兼容的系统 |
CN112748959A (zh) * | 2020-12-29 | 2021-05-04 | 杭州迪普科技股份有限公司 | 嵌入式系统启动方法、闪存烧录方法与系统更新方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114924803A (zh) * | 2022-06-16 | 2022-08-19 | Oppo广东移动通信有限公司 | 加载启动方法、芯片、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685322B2 (en) | Port number emulation for wireless USB connections | |
CN108959370B (zh) | 一种基于知识图谱中实体相似度的社区发现方法及装置 | |
US20060020414A1 (en) | System and method for automatically allocating MAC addresses to network cards | |
CN108279916B (zh) | 电子控制单元程序更新方法和装置 | |
CN110018996B (zh) | 一种分布式存储系统的快照回滚方法及相关装置 | |
US7756961B2 (en) | Hardware device and method for creation and management of toe-based socket information | |
US20130047145A1 (en) | Match analysis for encoding optimized update packages | |
WO2014183444A1 (en) | Method, terminal, server, and system for data processing | |
CN112615945B (zh) | 域名解析记录管理方法、装置、计算机设备及存储介质 | |
CN113703853A (zh) | 一种网络设备初始化方法及装置 | |
CN111125213A (zh) | 数据采集的方法、装置及其系统 | |
CN113254035A (zh) | 一种驱动程序安装方法、计算设备及存储介质 | |
CN112559482B (zh) | 一种基于分布式的二进制数据分类处理方法和系统 | |
CN110765125B (zh) | 一种存储数据的方法及装置 | |
CN112015458A (zh) | 设备升级方法、终端设备、电子设备和存储介质 | |
CN116931996A (zh) | 一种固件更新方法、装置、设备以及储存介质 | |
CN115242778B (zh) | 一种文件传输方法、装置、电子设备及可读存储介质 | |
CN116009893A (zh) | 软件升级的方法、装置、设备及存储介质 | |
CN114911515A (zh) | 配置管理方法、装置、设备及介质 | |
CN112311499B (zh) | 调整封包长度的方法、行动装置及存储介质 | |
CN111291207A (zh) | 图片存储方法、装置及服务器 | |
CN115221360A (zh) | 树形结构配置方法和系统 | |
CN102681910B (zh) | 识别方法、计算机和识别系统 | |
CN105939259B (zh) | 路由器的控制方法、装置及路由器 | |
CN112925686A (zh) | 数据采集方法、服务器、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |