固件更新的设备与方法

文档序号:6611392阅读:195来源:国知局
专利名称:固件更新的设备与方法
技术领域
本发明涉及信息处理系统。
背景技术
随着信息的价值与使用的持续增加,个人应用与商业应用都在 寻求额外的途径来处理和存储信息。 一种可供选择的方式是信息处理 系统(IHS)。信息处理系统通常是为了商业、个人或者其它用途来处 理、汇编、存储和/或交换信息或者数据,从而使用户可以应用到信息 的价值。应技术与信息处理的需要,以及不同用户和应用需要的变化, 信息处理系统会相对于许多问题而变化,例如处理何种信息,如何处 理信息,需要处理、存储或者交换多少信息,需要多快的速度多高的 效率来处理、存储或者交换这些信息。由于信息处理系统的这些变化, 信息处理系统可以是通用的或者为特定用户或者特定使用定制的,例 如金融交易处理、航空订票、企业数据存储或者全球通讯等。另外, 数据处理系统可以包括各种硬件和软件的组件来处理、存储和交换信 息,它也可以包括一个或多个计算机系统、数据存储系统和网络系统。

发明内容
为了有助于本发明的一些方面的基本性的理解,下列给出本发 明的一些方面的概述。该概述并非对本发明的广泛的纵览,也不是为 了确定本发明的基本或者重要的元素,也不是为了限制权利要求的范 围。下列概述仅仅表现本发明的总体概念,来作为后面细节描述的开 头。在本发明的一个方面, 一种更新固件的方法,包括执行与固件 更新软件包协同工作的本地操作系统补丁管理程序,以更新信息处理 系统的固件程序。在本发明的另一个方面, 一种设备包括运行操作系统的信息处
理系统。 一个在信息处理系统存储器中的操作系统补丁管理程序与操 作系统和固件更新软件包协同工作,从而在信息处理系统中更新固件 程序。在本发明的再一个方面, 一种更新固件的方法,包括建立一个 在信息处理系统的本地操作系统中运行的补丁管理程序下可执行的固 件更新软件包,并且将固件更新软件包存储在用户可以得到的知识库 中。


为了理解说明性实施例的细节,后面的细节描述将参考下列附
图,其中相同的数字表示相同的元素
图1是描述信息处理系统的非限制性示例的原理图2是描述信息处理系统和远程更新知识库的非限制性示例
的原理图3是描述按照说明性实施例的固件更新流程图的非限制性 示例的原理图4是本发明实施例使用的数据结构图。
具体实施例方式在本发明中的意图中,信息处理系统可以包括任何可操作的手 段与手段的集合来计算、分类、处理、传输、接收、恢复、发起 (originate)、转换、存储、显示、证明、探测、记录、再现、处理 或者利用任何形式的信息、情报或者数据,以实现商业、科研、控制 或者其它目的。例如,信息处理系统可以包括个人计算机、网络存储 设备、网络服务器或者其它在大小、形状、性能、功能与价格等方面 不同的合适的设备。信息处理系统可以包括随机存储器(RAM), 一个 或多个例如中央处理器(CPU)的处理资源或硬件或软件控制逻辑,只 读存储器(R0M),和/或其它形式的非易失性存储器。信息处理系统的 其它组件可以包括一个或多个磁盘驱动器, 一个或多个网络端口用来 和外部设备以及输入输出(I/O)设备,例如键盘、鼠标和显示器,来 通讯。信息处理系统也可以包括一个或多个总线用以在不同硬件组件
之间交换数据。当IHS加电时,系统启动初始化程序自动激活。启动初始化程 序可以包括基本输入输出系统(BIOS)程序,可以检测IHS硬件和连 接性,可以执行运行时间服务,也可以载入允许IHS执行所需任务的 操作程序。术语BIOS起初用于个人计算机(PC)厂商称呼启动初始化 程序。此术语对表示在其它例如网络服务器的硬件设备中的启动初始 化程序固件是相同的。其它类型计算机使用例如"引导监测(boot monitor)"、"引导程序(boot loader)"或"引导ROM (boot ROM)"
的术语。启动初始化程序的示例包括但不限于PC BIOS;扩展固件接
口 (EFI) BIOS;以及开放固件。在这里使用的术语启动初始化程序包 括所有的启动初始化程序。另外,固件同样可以通过常驻在IHS中来 控制和/或与例如硬盘、网络电路以及其它外部设备通讯。如本发明使 用,固件程序,或称固件映像,包括任何嵌入IHS设备来执行预定任 务的软件。在本发明中,术语"固件"包括但不限于启动初始化程序。 固件通常存储于非易失性存储器。这里所述非易失性存储器包括任何 掉电而不损失存储数据的存储设备。启动初始化程序同样引导操作系统(OS)的载入。这里所述OS 为一个或者一组软件程序,该软件程序管理被处理器控制的电子设备 的硬件和软件资源,该资源包括但不限于计算机、主板、服务器、 外设、1/0设备,和任何其它IHS组件或者组件的组合。运行的操作系 统执行基本任务,例如控制和分配存储器,安排指令处理的优先级, 控制输入输出设备,易化网络并管理文件。 一般操作系统包括但不限 于LINUX, UNIX, WIND0WS。本发明意图是任何合适的操作系统都可 以在本发明的一些方面中使用。有许多场合需要更新IHS固件中的一部分。作为非限制性示例, 系统的启动初始化程序可以更新以修复软件程序错误,通常称作"错 误(bugs)"。另外,更新可以利用上次发布后才可用的新的启动初始 化程序特性,或者使启动初始化程序可以支持新的系统硬件。使用非 启动步骤的固件更新可能与上述提到过的启动初始化程序需要相同理 由的更新。在基于PC的系统中,提供固件升级经常使用更基本的基于磁
盘操作系统(DOS)的应用程序。这样的升级可能需要使用DOS环境来 访问基于DOS的应用程序。参考图1,在非限制性示例中,根据本发明的一个方面,信息 处理系统5包括CPU 15。 CPU 15可以是处理器、微处理器、小型机或 任何适合处理程序指令的设备。CPU 15可以包括多个这样的处理器、 微处理器、小型机或其它设备。CPU15可以通过本地接口总线40与固 化数据存储25以及存储器20进行数据通讯。存储器20包括非易失性存储器35,该存储器35具有例如存储 于其中的初始化启动程序的固件程序37。非易失性存储器包括但不限 于,闪存和电可擦除只读存储器(EEPR0M)。固件程序37可以包括, 例如所有需要控制的设计指令,例如键盘70,显示器75,鼠标80,可 移动数据存储65,未说明的其它输入/输出设备,各种辅助功能和/或 设备。存储器20也可以包括随机存储器(RAM) 30。 OS和应用程序可 以载入RAM30而执行。RAM30可以是易失性存储器,当掉电时RAM30 数据丢失。固态数据存储设备25可以用来存储OS、应用程序和其它IHS 5 所用的数据。固态存储设备指非易失性存储设备,包括永久和/或半永 久存储设备。固态存储设备可以包括但不限于,硬盘驱动器(HDD)和 磁带驱动器。另外可移动数据存储设备65可以和本地接口总线40连 接来向和/或从IHS 5传输数据。可移动数据存储的示例包括但不限于 外置可移动硬盘;固态半导体存储设备,例如闪存;光盘存储设备, 例如光盘(CD)和/或DVD。 IHS 5可以进一步包括视频显示适配器45,多个输入接口50, 调制解调器/网络接口卡(NIC) 55,和多个输出接口60。输出接口60 可以向打印机90传输数据并打印。 IHS 5可以通过NIC 55连接外部网络95,这样IHS 5可以通 过外部网络95向远程设备传输和自远程设备接收数据。外部网络95 可以是局域网(LAN),广域网(WAN),包括互联网(Internet)或者 任何其他类似网络。如图1所示,IHS5可以如同个人计算机,网络存 储设备,网络服务器,或者其它任何有效的信息处理设备一样运行。
在其它方面,参考图2, 一个信息处理系统100的非限定性示
例包括CPU 15。 CPU 15在和存储器35进行数据交换,该存储器35具 有固件程序例如存储于其中的启动初始化程序。存储器35包括如上文 所述的非易失性存储器。硬盘驱动器HDD 115为OS和应用程序以及其 它数据提供固态数据存储。CPU 15在与HDD 115和网络接口控制器55 进行数据通讯。HDD 115和NIC 55也都分别具有存储于非易失性存储 器中的固件来分别控制设备。IHS 100也可以进一步包括和常驻固件在 一起的扩展卡127。扩展卡127可以和CPU 15进行数据通讯。作为非 限制性示例,扩展卡127可以提供视频显示控制和输出接口控制。另 一个扩展卡的非限制性示例是RAID (独立磁盘冗余阵列)卡。RAID卡 控制多个存储设备,例如硬盘,之间的数据存储。RAID的数据存储示 例包括但不限于(a)通过在多磁盘之间存储冗余数据来提供更容错 的数据存储,(b)通过在多磁盘之间共享数据提供更好的表现,(c) 将(a)和(b)进行某些组合。存储器25也在与CPU 15进行数据交换,并且至少存储了 OS 的一部分以操作IHS 100。 OS可以存储在HDD 115中。至少一部分OS 在系统启动过程中通过启动初始化程序,从HDD 115中载入到存储器 25中。在一个非限制性实施例中,IHS 100通过软件/固件程序知识库 130和网络135进行通讯。知识库130常驻在独立IHS,服务器,或者 任何合适的具有存储于其中的更新恢复功能的文件处理系统中。知识 库130可以包括可通过网络连接的多重知识库。网路135可以是 LAN/WAN,包括互联网,并且可以应用任何适合数据通讯的模式包括但 不限于路上线路,射频连接,卫星连接,和微波连接。
在本发明的另一个方面,本发明提供一个系统来更新IHS 100 中的固件程序,该系统使用完全相同的过程类型,并使用与更新正在 运行的本地操作系统完全相同的软件补丁管理工具程序。在一个非限 制性实施例中,补丁管理程序常驻在IHS 100中。
软件补丁管理系统通常包括软件包管理系统以便于升级,软件 包管理系统包括一系列软件应用程序(工具)用来自动在计算机上安 装、更新、配置并删除软件包。在这样的系统中,软件分布在软件包 中,软件包可能是单独的文件。这样的软件包通常包括软件升级和其
它的重要信息,例如文件名、版本和厂商名称。也可能包括一系列其
它的软件包,称作依赖软件包(d印endency)。依赖软件包可能需要软 件更新以便正确运行。例如,IHS上一个程序的适当的更新,可能需要 另一个程序的某个特别版本。 一个使用LINUX作为OS的IHS的软件包 管理系统的非限制性示例包括但不限于RPM软件包管理器,GENT00 软件包管理器,和DEBIAN软件包管理器。 一个在WINDOWS操作系统下 运行的IHS软件包管理器的非限制性示例是MICROSOFT安装器(MSI)。 本发明旨在包含所有的合适的操作系统的所有这些软件包管理器和它 们的相关软件应用工具,以及未来的扩展软件包管理系统。
软件包管理器是一种设计成用来创建和管理包括源程序和/或 二进制程序的软件包的程序。软件包管理器可以在不同类型的IHS系 统下运行,例如包括微机、工作站、网络服务器和小型机。更新软 件包可以包括软件包中需要更新、注释、安装、校验、和卸载的每一 个文件的编译好的软件和库。另外, 一个更新软件包可以校验一个数 字证书,或者其它为软件包中的每一个软件的认证签名。更新软件包 还可以包括一系列更新软件包所依赖的软件包,称作依赖软件包,以 及一系列由更新软件包提供的服务。例如使用RPM软件包管理器作为 非限制性示例,软件包文件可能具有文件形式*. rpm。参考图2,更新 软件包可以存储在数据库,例如知识库130中。IHS的0S软件包管理 器可以周期性的询问此知识库以寻求软件更新。在一个实施例中,使用软件包管理器,固件更新映象和相关更 新工具程序可以使用特定软件包管理器的相关技术分别打包成更新软 件包。每一个更新软件包中都可能包括作为数据存在的相关性关系, 该关系存在于固件映象软件包和需要安装它们的软件程序之间。更新 功能可能合并成一个或者多个应用程序,它包括但不限于固件清单 功能,版本比较功能,固件更新功能。视需要可以包括别的软件应用 程序。可以分别下载更新和其它软件应用程序,并从固件更新中更新。 由于使用这样一组应用程序,更新应用程序不需要被复制到每一个更 新软件包中,所以使用这个方法可以减小更新软件包的大小。例如, 对于安装器程序可以应用在多系统中的多系统固件程序,安装器程序 并不是对每个系统类型都复制一份,而是制作一次供每一个固件更新
软件包使用。在另一个实施例中,对每一个OS类型生成固件安装器程序。 固件安装器程序在运行中的OS环境下执行。当执行时,0S固件安装器 识别出更新软件包并继续向系统非易失性存储器中安装映象。固件更 新在安装器程序中有一个依赖软件包。为满足此依赖软件包,固件更 新软件包可能包括指示这个依赖软件包的数据结构。例如,固件更新 软件包可以包括一个具有"需求(requires):"字符串的数据结构。"需 求"字符串辨认固件更新软件包的依赖软件包来确定现有版本的0S 安装器程序是否可以安装它。固件更新软件包可以进一步包括数据结构,例如"提供 (provides):"字符串。"提供"字符串在其它参数中辨认新的希望 安装的固件版本和固件的厂商ID (标识符)。 一个更新软件包可能依靠 一个或者多个系统ID来辨认需要相同更新软件包的多个产品。在一个
非限制性实施例中,固件更新软件包有如下形式的"提供"字符串 "system—bios (vendor—$vendor—system _$system) =$version,,,其中 求vendor是PCI SIG(互联外围设备专业组)确定的厂商ID,豸system是 厂商唯一系统标识符,Svender是启动初始化程序固件映象更新的厂商 数据串。附加数据文件可以视需要包括在更新软件包中。
图4是在更新固件程序过程中使用的数据结构的非限制性示 例。根据一个说明性实施例,图4所示的"提供"数据结构400有4 个项目。"提供"数据结构在建立固件更新程序时被创建。 "systemj)ios"条目402包括表现将被更新的固件程序的数据。 "Vendor_$vendor"条目404包括表现将要更新的固件的专门厂商的 数据。此数据可以使用互联外围设备专业组的厂商标识编码形式。 "system—$SyStem"条目406包括表现厂商系统标识符的数据。 "Aversion"条目408包括表现固件更新程序中的更新软件版本的数 据。在另一个实施例中,相似的打包可以在扩展卡固件中使用。这 样,卡的工业标准PCI (周边元件扩展接口) ID可以包括在"提供" 数据串中来确定厂商和扩展卡固件版本信息。在另一个实施例中,固件更新软件包可以存储在知识库中,例
如图2所示的知识库130,该知识库可以通过互联网(Internet)和企 业网(Intranet)接入。知识库130可以通过用户需要更新的OS更新 管理程序来远程接入或者维护。例如,IHS上的补丁管理软件,比如 OS软件包管理器,可以搜索相关的在线知识库来寻求应用在特定IHS 硬件上的固件更新软件包(和软件的相关软件包)。可以为不同的固件 更新软件包接入多重知识库。知识库可以在多个站点被镜像。或者可 以将固件更新知识库存储在计算机可读介质中,然后将其发布给用户 以进行更新。这样的计算机可读介质包括但不限于CD、 DVD、磁带、 闪存、R0M、 RAM和磁盘。在一个非限制性示例中,这样的计算机可读 介质知识库常驻在IHS 5中。在一个非限制性示例中,生成一个0S固件清单程序,安装并 运行在IHS 100中来确定系统和相关扩展卡以及设备中需要更新的固 件。此信息包括但不限于固件映象名称、版本、厂商ID和最近更新 日期。另外,固件可以用来确定任何其它软件包中的依赖软件包,从 而确定比如0S的安装器可执行文件的正确版本是否可以在系统上安装 固件的更新。当固件更新可用时,补丁管理软件保留所有固件清单的 修改和更新的记录。当新设备和/或扩展卡安装在IHS 100中时,可能 需要运行固件清单程序来创建所新增设备的列表,从而可以在IHS 100 中安装相关固件更新程序。在固件更新软件包下载到IHS之后,运行0S补丁管理软件可 以用和OS软件升级完全一样的方式,接收和管理固件软件包的升级。 这包括但不限于无需重新启动信息处理系统而更新固件,或者另外 执行启动初始化程序。图3是固件更新图的一个实施例的非限制性示例的图示,其中 在框205中生成固件更新软件包。固件更新软件包存储在框210中的 更新知识库中。在框215中, 一个OS可执行程序在IHS中运行并列出 IHS固件和固件版本清单。在框220中确定固件版本依赖软件包。在框 225中,0S可执行程序在IHS中运行,使用运行中的补丁管理软件和 固件清单以及版本信息汇同依赖软件包信息来向远程知识库请求可用 的固件更新。在框230中,可用的固件更新从知识库下载到IHS中。 一旦下载固件更新,在框235中0S可执行程序使用OS补丁管理软件
来更新IHS相关固件。IHS相关固件包括但不限于启动初始化程序固 件,IHS硬件固件,扩展卡固件。IHS硬件固件可以包含硬盘固件,网 络控制器固件,电源系统固件和IHS中其它固件。
本发明意图在于涵盖所有适合的操作系统和它们的相关软件 包管理系统和格式。在这里本发明的概念是意图包含LINUX,UNIX和 WINDOWS操作系统以及其它合适的操作系统。 一个非限制性软件包管理 器的WINDOWS操作系统示例包括WINDOWS服务期更新服务(WSUS),其 提供多软件包,多重知识库和交叉依赖软件包。在另一个实施例中,本发明可以被具体表达为计算机可读介质 上的一组指令,该计算机可读介质包括R0M、 RM1、 CD、 DVD、硬盘、闪 存装置,或者任何已知或者未知的计算机可读介质,当该组指令被执 行时诸如IHS 100的信息处理系统实现本发明的方法。
在另一个描述性实施例中,包括一系列可执行指令的计算机可 读介质,当IHS100执行时,执行更新IHS100固件的更新的方法。方 法包括在信息处理系统中,在操作系统环境下执行一个程序与固件更 新软件包一起更新固件程序。计算机可读介质可以进一步包括第二组可执行指令,当IHS100 执行时,确定信息处理系统的固件清单。计算机可读介质可以进一步包括第三组可执行指令,当IHS100 执行时,向知识库请求以确定固件清单相关的固件更新软件包。
当展示与描述不同的实施例时,可以在不脱离本发明范围的情 况下另外有不同的修改和替换。从而应当如此理解,本发明的示例以 说明性和非限制的形式来表现。
权利要求
1.一种更新固件的方法,包括执行与固件更新软件包协同工作的本地操作系统补丁管理程序以在信息处理系统中更新固件程序。
2. 如权利要求1所述的方法,其中固件程序的更新无需重新启动信 息处理系统。
3. 如权力要求1所述的方法,进一步包括执行信息处理系统中的固 件清单程序来确定信息处理系统中的固件清单。
4. 如权力要求1所述的方法,进一步包括执行在信息处理系统中的第二本地操作系统补丁管理程序来向知识库提交请求以确定固 件清单中涉及的固件更新软件包。
5. 如权利要求1所述的方法,其中,从包括LINUX操作系统、UNIX 操作系统和WINDOWS操作系统的组中选择本地操作系统。
6. 如权利要求l所述的方法,其中固件程序是启动初始化程序。
7. 如权利要求3所述的方法,其中固件清单程序识别更新软件包依 赖软件包。
8. 如权利要求4所述的方法,其中知识库相对信息处理系统为远程 知识库。
9. 一种设备,包括一运行操作系统的信息处理系统;和一在信息处理系统存储器中的操作系统补丁管理程序,其与操 作系统和固件更新软件包协同工作,以更新信息处理系统中的固 件程序。
10. 如权利要求9所述的设备,其中固件程序存储在非易失性存储器 中。
11. 如权利要求9所述的设备,在和信息处理系统的数据通讯中进一步包括扩展卡。
12. 如权利要求11所述的设备,其中操作系统补丁管理程序与第二 固件更新软件包一起更新位于扩展卡上的第二存储器中的第二 固件程序。
13. 如权利要求9所述的设备,其中操作系统选自下面的组LINUX 操作系统、UNIX操作系统、WINDOWS操作系统。
14. 一种更新固件的方法,包括一建立固件更新软件包,其在补丁管理程序中是可执行的,该 补丁管理程序运行在信息处理系统中的本地操作系统上;并且 一在用户可用的知识库中存储固件更新软件包。
15. 如权力要求14所述的方法,其中本地操作系统选自下列组 LI而X操作系统、UNIX操作系统和WINDOWS操作系统。
16. 如权利要求14所述的方法,其中知识库包括存储有固件更新软 件包的计算机可读介质。
17. 如权利要求14所述的方法,其中知识库包括存储在与第一信息 处理系统通讯的第二信息处理系统中的固件更新软件包。
全文摘要
一种更新固件的方法,包括执行本地操作系统补丁管理程序,与固件更新软件包一起更新信息处理系统的固件程序。一种设备,包括运行操作系统的信息处理系统。一个在信息处理系统存储器中的操作系统补丁管理程序与操作系统和固件更新软件包一起更新信息处理系统中的固件更新程序。另一种更新固件的方法,包括建立在信息处理系统中本地操作系统上运行的补丁管理程序中可执行的固件更新软件包,并且在用户可用的知识库中存储固件更新软件包。
文档编号G06F9/445GK101114233SQ20071013905
公开日2008年1月30日 申请日期2007年7月24日 优先权日2006年7月26日
发明者M·E·布朗, M·L·多姆施 申请人:戴尔产品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1