CN116954752A - 一种差异化系统配置、加载方法、装置及计算机设备 - Google Patents
一种差异化系统配置、加载方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116954752A CN116954752A CN202310909613.6A CN202310909613A CN116954752A CN 116954752 A CN116954752 A CN 116954752A CN 202310909613 A CN202310909613 A CN 202310909613A CN 116954752 A CN116954752 A CN 116954752A
- Authority
- CN
- China
- Prior art keywords
- file
- kernel
- target
- main board
- program
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 88
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000004806 packaging method and process Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 66
- 238000013515 script Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 abstract description 9
- 238000012423 maintenance Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式技术领域,公开了一种差异化系统配置、加载方法、装置及计算机设备,配置方法包括:制作不包含设备配置信息的一个目标内核文件;制作多个设备树文件并对应配置不同主板标识;制作根文件系统并保存多种应用程序配置文件,不同的应用程序配置文件标记不同主板标识;将设备树文件和目标内核文件打包生成内核数据包;将引导程序、内核数据包和根文件系统拼接生成固件程序。当固件程序被加载时,通过主板标识匹配对应的目标设备树文件和目标应用程序配置文件,从而启动适配主板硬件的内核进程,还满足主板定制化的应用启动需求。不仅解决了固件程序体量大的问题,而且固件程序只需维护一个版本,还降低了固件程序的维护复杂度。
Description
技术领域
本发明涉及嵌入式技术领域,具体涉及一种差异化系统配置、加载方法、装置及计算机设备。
背景技术
ARM处理器广泛应用于各个行业,如在服务器领域,ARM主板主要作为BMC监控和管理的服务设备。ARM主板常用的嵌入式系统是基于linux内核的操作系统,以一个完整的固件程序烧录于ARM主板的Flash存储中,通常,固件程序主要包含引导程序BootLoader、内核Kernel和根文件系统RootFs三部分。当ARM上电时,首先运行引导程序BootLoader,对处理器、串口等硬件进行初始化,然后将存储在芯片闪存中的内核Kernel导入内存,运行内核Kernel,内核Kernel启动成功后,挂载根文件系统RootFs。
通常,由于不同主板对应的硬件配置和用户的软件需求不一样,所以内核Kernel中的设备驱动程序和根文件系统RootFs的配置(例如不同的用户系统启动时会默认启动不同的应用程序)会存在差别。为了应对不同的需求,相关技术主要采用两种方案,第一种方案是对于不同用户采用不同的代码编译规则,在固件产品发布时,根据不同的用户运行不同编码规则打包出不同的固件程序,然后提供用户使用。第二种方案是在制作固件程序时,在一个固件程序中打包多种不同的linux操作系统,不同的linux操作系统之间包括的内核kernel硬件配置及根文件系统软件配置不同,当用户加载固件程序时根据自己的需求选择一项linux操作系统启动。以上两种方案均存在明显的缺陷,第一种方案的产品开发维护工作量大,发布版本需要制作多个版本的固件包,且用户升级时需要选择对应的固件包升级。第二种方案的固件程序包非常庞大,需要用户提供较大的非易失性存储,对于硬件存储资源要求较高,且随着固件程序包的变大用户升级需要耗费的时间成本也就越高。因此,需要一种新的方案,能够使用户使用ARM芯片时,根据差异化的需求快速加载更轻量的固件程序。
发明内容
有鉴于此,本发明提供了一种差异化系统配置、加载方法、装置及计算机设备,以同时解决固件程序体量大和维护工作复杂的问题。
第一方面,本发明提供了一种差异化系统配置方法,方法包括:接收第一指令,并响应于第一指令生成不包含设备配置信息的一个目标内核文件;接收第二指令,并响应于第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识,主板标识用于唯一表征主板的类型;接收第三指令,并响应于第三指令生成根文件系统,并在根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的应用程序配置文件标记了不同主板标识;基于多个设备树文件和目标内核文件打包生成内核数据包;将引导程序、内核数据包和根文件系统拼接生成固件程序。
本发明实施例提供的差异化系统配置方法用于配置固件程序,在提供的固件程序中,只包括一个目标目标内核文件、一个根文件系统和一个引导程序,为了适配于不同的硬件设备,再添加多个设备树文件,且不同的设备树文件对应配置上不同的主板标识。为了适配不同的开机自启应用软件需求,在根文件系统的指定目录下还保存了多种应用程序配置文件,且不同的应用程序配置文件也标记了不同主板标识。最后,将上述全部文件打包为固件程序镜像,一方面,固件程序没有因为不同设备和不同的软件需求制作多个内核文件和多个文件系统,减小了固件程序的体积,降低了对主板存储资源的需求。另一方面,当固件程序被加载时,可以根据实际主板的主板标识从多种设备树文件和多种应用程序配置文件匹配对应的目标设备树文件和目标应用程序配置文件,通过加载目标设备树文件和目标内核文件到内存,能够启动适配实际主板硬件信息的内核进程,通过目标应用程序配置文件可以满足实际主板定制化的开机自启应用软件需求。不仅解决了固件程序体量大的问题,而且固件程序只需维护一个版本,还降低了固件程序的维护复杂度。
在一种可选地实施方式中,为不同设备树文件对应配置不同主板标识,包括:制作内核配置文件,并在内核配置文件中记录不同的设备树文件的名称所对应的不同主板标识。
在一种可选地实施方式中,基于多个设备树文件和目标内核文件打包生成内核数据包,包括:将内核配置文件、目标内核文件和二进制形式的多个设备树文件通过mkimage工具打包为内核数据包。
第二方面,本发明提供了一种差异化系统加载方法,应用于主板设备,方法包括:当主板设备上电时,加载固件程序中的引导程序对主板设备进行硬件初始化;通过引导程序识别主板设备的当前主板标识;通过引导程序在固件程序的内核数据包中确定当前主板标识对应的目标设备树文件;通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存;通过目标设备树文件和目标内核文件启动内核进程;通过内核进程挂载固件程序中的根文件系统;根据当前主板标识在根文件系统的指定目录下确定对应的目标应用程序配置文件;通过根文件系统解析并运行目标应用程序配置文件,以启动目标应用程序。
本发明实施例提供的差异化系统加载方法,用于主板设备上电启动时加载前述配置方法打包的固件程序,在提供的固件程序中,只包括一个目标内核文件、一个根文件系统和一个引导程序,为了适配于不同的硬件设备,再添加多个设备树文件,且不同的设备树文件对应配置上不同的主板标识。为了适配不同的开机自启应用软件需求,在根文件系统的指定目录下还保存了多种应用程序配置文件,且不同的应用程序配置文件也标记了不同主板标识。最后,将上述全部文件打包为固件程序镜像,一方面,固件程序没有因为不同设备和不同的软件需求制作多个内核文件和多个文件系统,减小了固件程序的体积,降低了对主板存储资源的需求。另一方面,当固件程序被加载时,可以根据实际主板的主板标识从多种设备树文件和多种应用程序配置文件匹配对应的目标设备树文件和目标应用程序配置文件,通过加载目标设备树文件和目标内核文件到内存,能够启动适配实际主板硬件信息的内核进程,通过目标应用程序配置文件可以满足实际主板定制化的开机自启应用软件需求。不仅解决了固件程序体量大的问题,而且固件程序只需维护一个版本,还降低了固件程序的维护复杂度。
在一种可选地实施方式中,通过引导程序在固件程序的内核数据包中确定当前主板标识对应的目标设备树文件,包括:通过引导程序解析固件程序中的内核配置文件,并在内核配置文件中查找与当前主板标识对应的目标名称;通过目标名称在内核数据包的多个设备树文件中确定目标设备树文件。
在一种可选地实施方式中,通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存,包括:根据目标设备树文件的地址修改bootm命令;通过引导程序运行修改后的bootm命令,以将目标设备树文件和目标内核文件加载到内存。
在一种可选地实施方式中,方法还包括:当引导程序在识别到当前主板标识时,通过引导程序将当前主板标识存入BootArgs文件中;当通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存时,同时通过引导程序将BootArgs文件加载到内存;当内核进程启动成功且挂载了固件程序中的根文件系统时,通过内核进程将BootArgs文件存入根文件系统的预设传参目录下;
根据当前主板标识在根文件系统的指定目录下确定对应的目标应用程序配置文件,包括:通过根文件系统运行预设脚本;通过根文件系统响应于预设脚本中的指令,从预设传参目录下获取BootArgs文件;通过根文件系统解析BootArgs文件,并提取BootArgs文件中的当前主板标识;通过根文件系统在指定目录下查找与当前主板标识对应的目标应用程序配置文件。
第三方面,本发明提供了一种差异化系统配置装置,装置包括:内核文件制作模块,用于接收第一指令,并响应于第一指令生成不包含设备配置信息的一个目标内核文件;设备树文件制作模块,用于接收第二指令,并响应于第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识,主板标识用于唯一表征主板的类型;根文件系统制作模块,用于接收第三指令,并响应于第三指令生成根文件系统,并在根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的应用程序配置文件标记了不同主板标识;内核镜像打包模块,用于基于多个设备树文件和目标内核文件打包生成内核数据包;固件程序生成模块,用于将引导程序、内核数据包和根文件系统拼接生成固件程序。
第四方面,本发明提供了一种差异化系统加载装置,应用于主板设备,装置包括:初始化模块,用于当主板设备上电时,加载固件程序中的引导程序对主板设备进行硬件初始化;主板标识识别模块,用于通过引导程序识别主板设备的当前主板标识;设备树配置模块,用于通过引导程序在固件程序的内核数据包中确定当前主板标识对应的目标设备树文件;内核加载模块,用于通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存;内核启动模块,用于通过目标设备树文件和目标内核文件启动内核进程;文件系统挂载模块,用于通过内核进程挂载固件程序中的根文件系统;应用配置模块,用于根据当前主板标识在根文件系统的指定目录下确定对应的目标应用程序配置文件;应用加载模块,用于通过根文件系统解析并运行目标应用程序配置文件,以启动目标应用程序。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种差异化系统配置方法的流程示意图;
图2是根据本发明实施例的根文件系统的结构示意图;
图3是根据本发明实施例的一种差异化系统配置方法的另一个流程示意图;
图4是根据本发明实施例的一种差异化系统加载方法的流程示意图;
图5是根据本发明实施例的一种差异化系统加载方法的另一个流程示意图;
图6是根据本发明实施例的一种差异化系统加载方法的又一个流程示意图;
图7是根据本发明实施例的一种差异化系统配置装置的结构示意图;
图8是根据本发明实施例的一种差异化系统加载装置的结构示意图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本申请出现的术语解释:
Linux系统:GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。
固件程序:本申请指运行在ARM处理器上的用于系统可以正常工作的完整程序,至少包含引导程序BootLoader,内核Kernel,根文件系统RootFs,还可以包括其它文件系统OtherFs等。
BootLoader:启动引导程序,运行于内核Kernel程序之前,用于引导Kernel程序。BootLoader从主板Flash存储的指定分区将固件程序读取到内存中,然后结束任务,跳转为固件程序在内存中运行。
Kernel:是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Rootfs:根文件系统,是内核启动时所挂载的第一个文件系统,内核代码映像文件会保存到根文件系统中,根文件系统挂载之后会把一些基本的初始化脚本和应用程序加载到内存中去运行。
设备树:保留着存在于系统中的设备信息,描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、式中控制器和时钟使用情况等。
根据本发明实施例,提供了一种差异化系统配置方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种差异化系统配置方法,可用于计算机设备,图1是根据本发明实施例的一种差异化系统配置方法的流程图,该流程包括如下步骤:
步骤S101,接收第一指令,并响应于第一指令生成不包含设备配置信息的一个目标内核文件。
步骤S102,接收第二指令,并响应于第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识。
具体地,一般情况下,在内核源码中,存在大量对主板细节信息描述的代码,这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录下,对内核而言,不同主板的设备信息不同(例如CPU数量、内存基地址和大小等不同),所以针对不同的主板需要定制化配置不同内核,从而制作多种内核文件,而设备树的出现可以实现一个内核文件加多种设备树产生多种内核的效果,内核文件只需要配置操作的逻辑代码即可,不需要对具体硬件信息进行描述。本发明实施例基于这一机制,预先制作了多个设备树文件和一个不包含设备配置信息的目标内核文件,制作的多个设备树文件用于适配不同的ARM主板设备,本发明实施例的主旨在于,当固件程序在任意主板上加载运行时,主板可以自动加载与自身匹配的设备树和目标内核文件,而不是用户手动去进行选择。所以,本发明实施例还采集了能够唯一表明主板类型的主板标识,并将适用于不同主板的设备树文件和对应的主板标识关联配置起来,以使任意主板设备加载固件程序时,能够通过自身的主板标识从固件程序中找到与自身匹配的设备树和目标内核文件,从而实现内核自启动,且无须配置多个版本的内核文件,同时降低固件程序的体积。在本发明实施例中,主板标识可采用BoardID,BoardID为硬件上预留唯一标识板卡的产品型号的特征,通过ADC、I2C或者I/O高低电平获取的一组字节,通常硬件上会通过该方式表征产品唯一的标识。
步骤S103,接收第三指令,并响应于第三指令生成根文件系统,并在根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的应用程序配置文件标记了不同主板标识。
具体地,本发明实施例制作根文件系统的文件Rootfs,Rootfs是基于内存的文件系统,所有操作都在内存中完成,正常来说,根文件系统至少包括以下目录,/etc/:存储重要的配置文件;/bin/:存储常用且开机时必须用到的执行文件;/sbin/:存储着开机过程中所需的系统执行文件;/lib/:存储/bin/及/sbin/的执行文件所需的链接库,以及Linux的内核模块;/dev/:存储设备文件。五大目录必须存储在根文件系统上,缺一不可,此外如图2所示,根文件系统还可以包括/home/、/boot/、/proc/、/root/、/var/、/usr/等目录,上述目录为现有技术,相关用途在此不再赘述。通常,为了实现不同的应用程序开机自启流程(例如不同的开机画面、声音、扫描、弹窗等应用软件),需要制作不同的根文件系统,相关技术要么全部打包到固件程序中,要么制作不同版本的固件程序,从而使固件程序体积庞大或维护困难。在本发明实施例中,只制作一个根文件系统,并且预先在根文件系统的指定目录下保存多种应用程序配置文件,例如图2所示,应用程序配置文件存储在/etc/deconfig/目录下,例如包括产品型号一配置文件、产品型号二配置文件和产品型号三配置文件,其中不同的应用程序配置文件用来执行不同的软件应用启动流程,需要注意的是,本实施例对不同的应用程序配置文件同样标记了不同的主板标识,用来适配不同型号主板的软件需求,当固件程序加载时,任意主板设备可以通过主板标识匹配对应的目标应用程序配置文件,从而自动运行对应的应用程序流程,启动定制化应用程序,实现定制化的操作系统启动流程。
步骤S104,基于多个设备树文件和目标内核文件打包生成内核数据包;
步骤S105,将引导程序、内核数据包和根文件系统拼接生成固件程序。
具体地,本实施例最后将内核相关的文件打包为内核数据包,将全部文件打包,即可得到固件程序。
另外,由于在实际应用时,设备树文件的名称并不直接命名为主板标识,从而通过设备树文件的名称匹配主板标识需要修改设备树文件的名称,不便于设备树文件的管理,基于此,在一个具体的实施例中,还制作了内核配置文件,并在内核配置文件中记录了不同的设备树文件的名称所对应的不同主板标识。例如,本实施例单独配置了.its格式的内核配置文件,从而将设备树文件的名称和主板标识的对应关系配置在内核配置文件中,当主板设备加载固件程序时,可以通过内核配置文件确定当前主板标识对应的目标设备树文件和目标内核文件分别是什么,提高检索效率,同时便于设备树文件的管理。
以两个设备树为例,内核配置文件的具体配置字段可参考下述配置字段格images{
kernel{(内核说明部分)
description="Linux kernel";(Linux内核)
data=/incbin/("zlmage");(说明kernel二进制文件为当前目录下的zImage)type="kernel";(说明类型)
arch="arm";(说明架构)
os="linux";(说明操作系统)
compression="none";(无压缩)
load=<0x80001000>;(加载到内存地址)
entry=<0x80001000>;
};
fdt_product1{(第一种设备树)
description="Flattened Device Tree blob";
data=/incbin/("1.dtb");(说明设备树二进制文件为当前目录下的1.dtb)
type="flat dt";
arch="arm";
compression="none";
};
fdt_product2{(第二种设备树)
description="Flattened Device Tree blob";
data=/incbin/("2.dtb");(说明设备树二进制文件为当前目录下的2.dtb)
type="flat dt";
arch="arm";
compression="none";
};
configurations{(配置项,uboot加载内核和文件系统时会解析该配置项)#address-cells=<1>;
#size-cells=<0>;
default="config@78";(默认使用config@78的配置,在没有BoardID或Board ID获取异常时使用该配置下的kernel和设备树)
config@78{(当主板的BoardID为0x78时,使用下述kernel和设备树)
description="Linux kernel,FDT blob for product1";
kernel="kernel";(说明Kernel使用上述配置字段images下的kernel)
fdt="fdt-product1";(设备树使用images下的fdt-product1)
reg=<0x78>;
};
config@48{(当BoardID为0x48时和上述解释同理)
description="Linux kernel,FDT blob for product2";
kernel="kernel";
fdt="fdt-product2";
reg=<0x48>;
};};};};
在一个具体的实施例中,如图3所示,内核配置文件fit-image.its、目标内核文件zImage和二进制形式的多个设备树文件1.dtb~x.dtb通过mkimage工具打包为内核数据包fit.ima。mkimage是引导程序uboot的一个工具,用来将目标内核文件zImage制作成内核启动镜像,还可以根据修改需求对内核启动镜像进行解包,提高用户制作内核数据包的灵活度。在一个具体实施例中,引导程序uboot.bin、内核数据包和根文件系统Rootfs拼接生成的固件程序可以是FIT镜像product.ima,FIT镜像一种能够容纳很多目标内核文件、很多设备树和很多文件系统的文件格式,基于这一机制,本实施例可通过FIT镜像制作一个包括一个目标内核文件、多个设备树文件、一个包含多种应用程序配置文件的根文件系统,且设备树文件和应用程序配置文件都绑定了主板标识的固件程序包。
通过本实施例提供的技术方案,一方面,固件程序没有因为不同设备和不同的软件需求制作多个内核文件和多个文件系统,减小了固件程序的体积,降低了对主板存储资源的需求。另一方面,当固件程序被加载时,可以根据实际主板的主板标识从多种设备树文件和多种应用程序配置文件自动匹配对应的目标设备树文件和目标应用程序配置文件,通过加载目标设备树文件和目标内核文件到内存,能够启动适配实际主板硬件信息的内核进程,通过目标应用程序配置文件可以满足实际主板定制化的开机自启应用软件需求,无需用户手动配置,而且固件程序只需维护一个版本,还降低了固件程序的维护复杂度。
在本发明中,还提供了一种差异化系统加载方法,可用于计算机设备,图4是根据本发明实施例的一种差异化系统加载方法的流程图,该流程包括如下步骤:
步骤S401,当主板设备上电时,加载固件程序中的引导程序对主板设备进行硬件初始化。
具体地,基于上述配置方法实施例配置的固件程序,本发明实施例提供了一种配套的差异化系统加载方法,来加载前述固件程序。首先,在主板设备上电后,通过固件程序中的引导程序对主板设备进行硬件初始化,对主板设备的硬件进行自检,确保主板设备能够正常运行,本步骤为现有技术,硬件初始化的细节在此不再赘述。另外,引导程序还根据固件程序烧录后生成的分区配置表确定固件程序保存的分区,从而确定各个设备树文件、目标内核文件、根文件系统的具体保存地址。
步骤S402,通过引导程序识别主板设备的当前主板标识。
具体地,在硬件初始化完成后,引导程序自动识别表征主板唯一类型的主板标识,例如通过ADC、I2C或者I/O高低电平获取的BoardID字节。
步骤S403,通过引导程序在固件程序的内核数据包中确定当前主板标识对应的目标设备树文件。
具体地,当引导程序确定了当前主板的当前主板标识后,利用当前主板标识在内核数据包中与各个设备树文件对应的主板标识进行一一比对,当内核数据包中的某个主板标识和前主板标识比对一致时,将内核数据包中比对一致的主板标识所对应的设备树文件确定为目标设备树文件,该目标设备树文件就是预先配置在固件程序中能够完整描述当前主板设备完整硬件信息的文件。如果没有找到目标设备树文件则停留在引导程序。
步骤S404,通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存。
步骤S405,通过目标设备树文件和目标内核文件启动内核进程。
具体地,当引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存时,引导程序的工作结束。之后在内存中运行目标内核文件的代码,同时读取目标设备树文件中描述的设备信息使内核进程启动,实现主板设备自动从固件程序中启动与自身设备型号相匹配的内核,无需用户手动选择操作。在内存中,通过设备树文件和目标内核文件启动内核的过程为现有技术,在此不再赘述。
步骤S406,通过内核进程挂载固件程序中的根文件系统。
步骤S407,根据当前主板标识在根文件系统的指定目录下确定对应的目标应用程序配置文件。
步骤S408,通过根文件系统解析并运行目标应用程序配置文件,以启动目标应用程序。
具体地,当内核启动完成后,内核自动挂载根文件系统(该步骤为现有技术,此处不再赘述),针对不同主板设备的个性化应用程序启动需求,本实施例通过根文件系统保存在指定目录下的多种应用程序配置文件实现,由于每一种应用程序配置文件对应记录了匹配的主板标识,从而根文件系统可以继续利用当前主板标识和指定目录下每个应用程序配置文件记录的主板标识进行一一比对,当查找到比对一致的目标主板标识时,确定该目标主板标识对应的应用程序配置文件为当前主板设备需要的目标应用程序配置文件。目标应用程序配置文件部署了当前主板设备的个性化应用程序启动流程,根文件系统通过解析目标应用程序配置文件,执行相应的流程,即可实现当前主板设备定制化的应用启动方案。
通过本实施例提供的技术方案,一方面,固件程序没有因为不同设备和不同的软件需求制作多个内核文件和多个文件系统,减小了固件程序的体积,降低了对主板存储资源的需求。另一方面,当固件程序被加载时,可以根据实际主板的主板标识从多种设备树文件和多种应用程序配置文件自动匹配对应的目标设备树文件和目标应用程序配置文件,通过加载目标设备树文件和目标内核文件到内存,能够启动适配与任何主板硬件信息的内核进程,通过目标应用程序配置文件可以满足任何主板定制化的开机自启应用软件需求,无需用户手动配置,而且固件程序只需维护一个版本,还降低了固件程序的维护复杂度。
另外,虽然设备树文件和主板标识的绑定关系可以记录在设备树文件的名称中,但是为了方便设备树文件的管理,还另外配置了内核配置文件,主要用于记录设备树文件的名称和主板标识的绑定关系,以及记录一些关于内核的参数。基于此,在一些可选地实施方式中,上述步骤S403包括:
步骤a1,通过引导程序解析固件程序中的内核配置文件,并在内核配置文件中查找与当前主板标识对应的目标名称;
步骤a2,通过目标名称在内核数据包的多个设备树文件中确定目标设备树文件。
具体地,在引导程序运行的过程中,引导程序通过内核配置文件确定当前主板标识对应的目标设备树文件和目标内核文件分别是什么,从而提高检索效率,同时便于设备树文件的管理。例如,引导程序确定当前主板标识为config@78,在内核配置文件中检索到config@78对应的目标设备树文件是1.dtb,目标内核文件为“zImage”。
在一些可选地实施方式中,如图5所示,上述步骤S404包括:
步骤b1,根据目标设备树文件的地址修改bootm命令;
步骤b2,通过引导程序运行修改后的bootm命令,以将目标设备树文件和目标内核文件加载到内存。
具体地,当目标设备树文件确定后,本实施例根据目标设备树文件的地址修改bootm命令,使引导程序运行bootm命令,将目标设备树文件和目标内核文件一同加载到内存,从而启动内核进程。例如bootm${目标内核文件地址_r}-${设备树文件地址_r},其中,bootz和bootm都是Linux内核启动命令,bootz主要用于解压缩目标内核文件再启动,由于本实施例从内核数据包中提取的目标设备树文件和目标内核文件已经是非解压缩文件,从而通过bootm命令加载目标设备树文件和目标内核文件到内存,启动速度更快。
需要注意的是,为了实现主板设备根据主板标识自动从固件程序中匹配出定制化的系统进行启动,其中重要的一环是主板标识的参数传递。引导程序在识别出主板标识后,引导程序可以利用主板标识从保存的设备树文件中匹配出目标设备树文件,然后引导程序将目标设备树文件和目标内核文件加载到内存,当内核启动后,引导程序则结束任务,由于引导程序不再参与后续的根文件系统挂载和应用程序启动,故引导程序需要在任务结束前将主板标识这一参数传递出来,才能使根文件系统根据主板标识继续匹配对应的目标应用程序配置文件。为了实现主板标识的参数传递,可以在引导程序启动时单独创建一个传参文件,然后将主板标识保存到传参文件,之后将该文件一并导入内存,然后使启动的内核进程将该文件放入根文件系统中。
为了进一步提高传递主板标识的便捷性和灵活性,在一些可选地实施方式中,本发明实施例提供的差异化系统加载方法还包括:
步骤d1,当引导程序在识别到当前主板标识时,通过引导程序将当前主板标识存入BootArgs文件中;
步骤d2,当通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存时,同时通过引导程序将BootArgs文件加载到内存;
步骤d3,当内核进程启动成功且挂载了固件程序中的根文件系统时,通过内核进程将BootArgs文件存入根文件系统的预设传参目录下。
具体地,如图5所示,本发明实施例通过引导程序识别到当前主板标识时,直接将当前主板标识存入BootArgs文件中。BootArgs文件是Uboot设置启动参数的文件,引导内核启动后,该文件会一并导入内存,内核会去解析该启动参数(包括告知内核需要运行的目标设备树、文件系统的内存地址等),从而保证系统的正常启动。在内核进程启动后,内核挂载根文件系统,然后本实施例通过内核进程将BootArgs文件存入根文件系统的预设传参目录下,完成更加灵活、便捷的传参流程。
基于此,在一些可选地实施方式中,如图6所示,当根文件系统挂载完成时,通过根文件系统自动运行保存在根文件系统下的预设脚本,从而执行步骤S407,具体包括:
步骤c1,通过根文件系统响应于预设脚本中的指令,从预设传参目录下获取BootArgs文件。
步骤c2,通过根文件系统解析BootArgs文件,并提取BootArgs文件中的当前主板标识;
步骤c3,通过根文件系统在指定目录下查找与当前主板标识对应的目标应用程序配置文件。
具体地,本发明实施例预先在根文件系统下保存了预设脚本,以在根文件系统挂载后,根文件系统作为一个单独的进程自动运行该预设脚本,通过运行该预设脚本中的指令代码,根文件系统执行查找目标应用程序配置文件的步骤。首先,根文件系统会从预设传参目录(例如/proc/cmdline目录)下找到内核传递来的BootArgs文件,然后从BootArgs文件中读取当前主板标识(BoardID),之后,利用当前主板标识与指定目录下每一个应用程序配置文件中记录的主板标识一一匹配,确定匹配一致的目标应用程序配置文件,根文件系统按照目标应用程序配置文件的地址获取该文件,最后使根文件系统解析目标应用程序配置文件并执行相应的应用流程,从而根据主板设备的型号,自动完成更加灵活、便捷的差异化系统启动。
在本实施例中还提供了一种差异化系统配置装置,该装置用于实现上述一种差异化系统配置方法实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种差异化系统配置装置,如图7所示,包括:
内核文件制作模块701,用于接收第一指令,并响应于第一指令生成不包含设备配置信息的一个目标内核文件。详细内容参见上述方法实施例中步骤S101的相关描述,在此不再进行赘述。
设备树文件制作模块702,用于接收第二指令,并响应于第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识,主板标识用于唯一表征主板的类型。详细内容参见上述方法实施例中步骤S102的相关描述,在此不再进行赘述。
根文件系统制作模块703,用于制作根文件系统,并在根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的应用程序配置文件标记了不同主板标识。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
内核镜像打包模块704,用于基于多个设备树文件和目标内核文件打包生成内核数据包。详细内容参见上述方法实施例中步骤S104的相关描述,在此不再进行赘述。
固件程序生成模块705,用于将引导程序、内核数据包和根文件系统拼接生成固件程序。详细内容参见上述方法实施例中步骤S105的相关描述,在此不再进行赘述。
在本实施例中还提供了一种差异化系统加载装置,该装置用于实现上述一种差异化系统加载方法实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种差异化系统加载装置,如图8所示,包括:
初始化模块801,用于当主板设备上电时,加载固件程序中的引导程序对主板设备进行硬件初始化。详细内容参见上述方法实施例中步骤S401的相关描述,在此不再进行赘述。
主板标识识别模块802,用于通过引导程序识别主板设备的当前主板标识。详细内容参见上述方法实施例中步骤S402的相关描述,在此不再进行赘述。
设备树配置模块803,用于通过引导程序在固件程序的内核数据包中确定当前主板标识对应的目标设备树文件。详细内容参见上述方法实施例中步骤S403的相关描述,在此不再进行赘述。
内核加载模块804,用于通过引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存。详细内容参见上述方法实施例中步骤S404的相关描述,在此不再进行赘述。
内核启动模块805,用于通过目标设备树文件和目标内核文件启动内核进程。详细内容参见上述方法实施例中步骤S405的相关描述,在此不再进行赘述。
文件系统挂载模块806,用于通过内核进程挂载固件程序中的根文件系统。详细内容参见上述方法实施例中步骤S406的相关描述,在此不再进行赘述。
应用配置模块807,用于根据当前主板标识在根文件系统的指定目录下确定对应的目标应用程序配置文件。详细内容参见上述方法实施例中步骤S407的相关描述,在此不再进行赘述。
应用加载模块808,用于通过根文件系统解析并运行目标应用程序配置文件,以启动目标应用程序。详细内容参见上述方法实施例中步骤S408的相关描述,在此不再进行赘述。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,用于执行上述图7的配置装置和图8的加载装置。请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种差异化系统配置方法,其特征在于,所述方法包括:
接收第一指令,并响应于所述第一指令生成不包含设备配置信息的一个目标内核文件;
接收第二指令,并响应于所述第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识,所述主板标识用于唯一表征主板的类型;
接收第三指令,并响应于所述第三指令生成根文件系统,并在所述根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的所述应用程序配置文件标记了不同主板标识;
基于多个所述设备树文件和所述目标内核文件打包生成内核数据包;
将引导程序、所述内核数据包和所述根文件系统拼接生成固件程序。
2.根据权利要求1所述的方法,其特征在于,所述为不同设备树文件对应配置不同主板标识,包括:
制作内核配置文件,并在所述内核配置文件中记录不同的设备树文件的名称所对应的不同主板标识。
3.根据权利要求2所述的方法,其特征在于,所述基于多个所述设备树文件和所述目标内核文件打包生成所述内核数据包,包括:
将所述内核配置文件、所述目标内核文件和二进制形式的多个所述设备树文件通过mkimage工具打包为所述内核数据包。
4.一种差异化系统加载方法,其特征在于,应用于主板设备,所述方法包括:
当主板设备上电时,加载固件程序中的引导程序对所述主板设备进行硬件初始化;
通过所述引导程序识别所述主板设备的当前主板标识;
通过所述引导程序在固件程序的内核数据包中确定所述当前主板标识对应的目标设备树文件;
通过所述引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存;
通过所述目标设备树文件和所述目标内核文件启动内核进程;
通过所述内核进程挂载固件程序中的根文件系统;
根据所述当前主板标识在所述根文件系统的指定目录下确定对应的目标应用程序配置文件;
通过所述根文件系统解析并运行所述目标应用程序配置文件,以启动目标应用程序。
5.根据权利要求4所述的方法,其特征在于,所述通过所述引导程序在固件程序的内核数据包中确定所述当前主板标识对应的目标设备树文件,包括:
通过所述引导程序解析固件程序中的内核配置文件,并在所述内核配置文件中查找与所述当前主板标识对应的目标名称;
通过所述目标名称在内核数据包的多个设备树文件中确定所述目标设备树文件。
6.根据权利要求4所述的方法,其特征在于,所述通过所述引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存,包括:
根据所述目标设备树文件的地址修改bootm命令;
通过所述引导程序运行修改后的bootm命令,以将所述目标设备树文件和所述目标内核文件加载到内存。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述引导程序在识别到所述当前主板标识时,通过所述引导程序将所述当前主板标识存入BootArgs文件中;
当通过所述引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存时,同时通过所述引导程序将所述BootArgs文件加载到内存;
当所述内核进程启动成功且挂载了固件程序中的根文件系统时,通过所述内核进程将所述BootArgs文件存入所述根文件系统的预设传参目录下;
根据所述当前主板标识在所述根文件系统的指定目录下确定对应的目标应用程序配置文件,包括:
通过所述根文件系统运行预设脚本;
通过所述根文件系统响应于所述预设脚本中的指令,从所述预设传参目录下获取所述BootArgs文件;
通过所述根文件系统解析所述BootArgs文件,并提取所述BootArgs文件中的所述当前主板标识;
通过所述根文件系统在指定目录下查找与所述当前主板标识对应的目标应用程序配置文件。
8.一种差异化系统配置装置,其特征在于,所述装置包括:
内核文件制作模块,用于接收第一指令,并响应于所述第一指令生成不包含设备配置信息的一个目标内核文件;
设备树文件制作模块,用于接收第二指令,并响应于所述第二指令生成多个设备树文件,并为不同设备树文件对应配置不同主板标识,所述主板标识用于唯一表征主板的类型;
根文件系统制作模块,用于接收第三指令,并响应于所述第三指令生成根文件系统,并在所述根文件系统的指定目录下保存多种应用程序配置文件,其中,不同的所述应用程序配置文件标记了不同主板标识;
内核镜像打包模块,用于基于多个所述设备树文件和所述目标内核文件打包生成内核数据包;
固件程序生成模块,用于将引导程序、所述内核数据包和所述根文件系统拼接生成固件程序。
9.一种差异化系统加载装置,其特征在于,应用于主板设备,所述装置包括:
初始化模块,用于当主板设备上电时,加载固件程序中的引导程序对所述主板设备进行硬件初始化;
主板标识识别模块,用于通过所述引导程序识别所述主板设备的当前主板标识;
设备树配置模块,用于通过所述引导程序在固件程序的内核数据包中确定所述当前主板标识对应的目标设备树文件;
内核加载模块,用于通过所述引导程序将内核数据包中的目标设备树文件和目标内核文件加载到内存;
内核启动模块,用于通过所述目标设备树文件和所述目标内核文件启动内核进程;
文件系统挂载模块,用于通过所述内核进程挂载固件程序中的根文件系统;
应用配置模块,用于根据所述当前主板标识在所述根文件系统的指定目录下确定对应的目标应用程序配置文件;
应用加载模块,用于通过所述根文件系统解析并运行所述目标应用程序配置文件,以启动目标应用程序。
10.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-3或4-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310909613.6A CN116954752A (zh) | 2023-07-24 | 2023-07-24 | 一种差异化系统配置、加载方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310909613.6A CN116954752A (zh) | 2023-07-24 | 2023-07-24 | 一种差异化系统配置、加载方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954752A true CN116954752A (zh) | 2023-10-27 |
Family
ID=88450723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310909613.6A Pending CN116954752A (zh) | 2023-07-24 | 2023-07-24 | 一种差异化系统配置、加载方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116954752A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827277A (zh) * | 2024-03-05 | 2024-04-05 | 浙江省北大信息技术高等研究院 | 操作系统的多内核适配装置、方法及工业物联网操作系统 |
-
2023
- 2023-07-24 CN CN202310909613.6A patent/CN116954752A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827277A (zh) * | 2024-03-05 | 2024-04-05 | 浙江省北大信息技术高等研究院 | 操作系统的多内核适配装置、方法及工业物联网操作系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598650A (zh) | 基于光纤通信的fpga程序在线升级的装置及方法 | |
CN111240720A (zh) | 引导程序升级方法、装置及存储介质 | |
US10747523B2 (en) | Methods of updating firmware components, computer systems and memory apparatus | |
CN110673923A (zh) | Xwiki系统配置方法、系统及计算机设备 | |
CN105824678A (zh) | 一种操作系统安装方法及装置 | |
CN116954752A (zh) | 一种差异化系统配置、加载方法、装置及计算机设备 | |
CN113391828B (zh) | 实现系统盘raid划分并安装操作系统的方法和系统 | |
CN114020621A (zh) | 一种调试方法、电子设备及存储介质 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
CN114756290A (zh) | 一种操作系统安装方法、设备及可读存储介质 | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
US8407460B1 (en) | System and method for a software application to determine if the storage device and the operating system is an internal drive or an external drive | |
CN113448793A (zh) | 一种兼容多操作系统的系统监控方法及装置 | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN111930402B (zh) | 集群服务器的固件升级方法和集群服务器 | |
CN114003257A (zh) | 一种升级方法及装置 | |
CN114115977B (zh) | Bmc镜像构建方法、系统、终端及存储介质 | |
US10210004B2 (en) | Method of providing at least one data carrier for a computer system and computer system including service processor independently operable from a main processor of the computer system | |
US20240160425A1 (en) | Deployment of management features using containerized service on management device and application thereof | |
CN111459570B (zh) | Pdf插件加载方法、电子设备和计算机存储介质 | |
CN115951909A (zh) | 一种片内动态加载应用软件的在线升级固化方法 | |
Cheng et al. | Transplantation and debugging analysis of embedded Linux kernel based on S3C2440 | |
US20240168732A1 (en) | Method for generating driver package, method for deploying driver, electronic device, and computer readable storage medium | |
CN109245920B (zh) | 交换机自动配置方法、装置、交换机和存储介质 | |
CN117591136A (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 |