一种修改biossetup界面的方法

文档序号:6538947阅读:1988来源:国知局
一种修改bios setup界面的方法
【专利摘要】本发明公开了一种修改BIOSSETUP界面的方法,属于计算机UEFI【技术领域】。计算机系统在UEFIShell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层、提供鼠标和键盘驱动的输入抽象层、图形设备接口层、图形用户接口层、应用程序编程接口,图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口。本发明大大降低了系统的耦合度,提高了系统的可扩展性;使系统取得了较好的交互体验和较美观的界面效果。
【专利说明】—种修改BIOS SETUP界面的方法
[0001]
【技术领域】
[0002]本发明涉及一种计算机UEFI【技术领域】,具体地说是一种修改BIOS SETUP界面的方法。
【背景技术】
[0003]UEFI 为英文 Unified Extensible Firmware Interface 的缩写,翻译为统一的可扩展固件接口,是一种详细描述类型接口的标准。UEFI是操作系统与平台固件之间的接口模型。UEFI用于操作系统自动从预启动的操作环境,加载到一种操作系统上,为启动一个操作系统与执行启动前程序提供了一个标准环境。
[0004]在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它接收用户命令,然后调用相应的应用程序。UEFI Shell提供了类似DOS的命令行文字界面。
[0005]BIOS是英文“Basic Input Output System”的缩略语,直译过来后中文名称就是“基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。BIOS Setup菜单提供了对系统的配置信 息进行设置的人机图形界面。
[0006]如何在UEFI Shell下修改BIOS Setup界面是本领域技术人员迫切需要解决的问题。
[0007]
【发明内容】

本发明的技术任务是针对以上不足之处,提供一种大大降低了系统的耦合度,提高了系统的可扩展性;使系统取得了较好的交互体验和较美观的界面效果的一种修改BIOSSETUP界面的方法。
[0008]在UEFI规范中包括了 UGA(universal graphics adapter通用的图形适配器)协议,该协议提供了一个Blt的函数接口在内存与设备之间进行像素数据的传输;另外用于鼠标控制的Simple Pointer协议与用于键盘输入的Simple TextIn协议提供了鼠标与键盘的交互功能。但是按照UEFI的规范,使用底层的设备需要按照协议一驱动模型结构编写代码,这样如果将来上述这3个协议产生了变化,也就需要同时对⑶I (英文全称graphics device interface,翻译为图形设备接口层)中的绘图支持部分以及鼠标键盘部分进行相应的修改,进一步会牵涉到GDI中其他功能对绘图支持部分与鼠标键盘部分的调用,极大地增加了不稳定性。因此为了提高系统的可移植性,这3个协议的调用部分需要重新剥离出去生成新的层次,以满足UEFI协议一驱动模型的要求。对CMOS和变量区域的访问可以通过调用运行时服务的函数接口 GetVariable和SetVariable以及QueryVariableInfo 来实现。[0009]本发明解决其技术问题所采用的技术方案是:
一种修改BIOS SETUP界面的方法,计算机系统在UEFI Shell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层(英文全称为graphics abstraction layer,简称GAL)、提供鼠标和键盘驱动的输入抽象层(英文全称为input abstraction layer、简称IAL)、图形设备接口层(英文全称为graphics device interface、简称⑶I)、图形用户接口层(英文全称为graphics user interface、简称⑶I )、应用程序编程接口(英文全称为Application Programming Interface、简称API),图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口;
与图形抽象层和输入抽象层相对应的接口部分是UEFI中的UGA协议、Simple Pointer协议和Simple TextIn协议,其中系统的图形抽象层对UGA协议进行封装,并为上层的图形设备接口层提供统一的接口,图形设备接口层则对图形抽象层进行封装,实现了更多的功能,如位图读取与绘制、区域剪切、文字输出等,为上层的图形用户接口层提供功能使用;输入抽象层则对Simple Pointer协议与SimpleTextIn协议进行封装,并通过对鼠标键盘输入的监视生成消息(Message),通过消息可以进行窗口之间的通信,为图形用户接口层的(窗口创建与绘制、多窗口之间的剪切等)的功能提供服务;图形用户接口层通过应用程序编程接口访问BIOS Setup的应用程序;
所述方法步骤为:
(1)、在UEFI的BIOS源代码中添加图形抽象层和输入抽象层的驱动并实现相关的UGA协议、Simple Pointer 协议和 Simple TextIn 协议;
(2)、编译UEFI的BIOS源代码产生可执行的ROM文件;
(3)、更新步骤(2)中编译的BIOS源代码文件到计算机系统Firmware中;
(4)、编写UEFI应用程序实现BIOSSetup界面的显示和控制;
(5)、启动计算机系统配置文件到UEFIShell模式下,运行应用程序。
[0010]步骤(1)的实现,将图形抽象层和输入抽象层的程序按照驱动协议模型编写;包括如下步骤:①、编写UGA协议、Simple Pointer协议和Simple TextIn协议的接口 ;②、用驱动格式实现上述接口。
[0011]步骤(1)的①编写协议部分,需要在BIOS的Protocol文件夹下建立图形抽象层或输入抽象层的文件夹,并在该文件夹中编写Protocol的接口函数;
步骤(1)的②驱动格式是在BIOS的Driver文件夹下建立图形抽象层或输入抽象层的文件夹,在这个文件夹下编写Protocol文件中GAL函数接口的具体实现;需要实现Supported函数、Start函数与Stop函数;
Supported函数实现步骤:用UEFI规范的OpenProtocol函数打开UEFI的UGA协议并加以测试,以保证之后的GAL功能函数可以调用UGA的服务,之后用UEFI规范的CloseProtocol函数关闭UGA协议;
Start函数实现步骤:在得到Supported函数的保证下,用OpenProtocol函数打开UEFI的UGA协议以调用其提供的服务;随后构造相应的数据结构并用之前Protocol中的接口函数指针指向驱动程序中对应的函数;最后用UEFI规范的Instal!ProtocolInterface 函数将 GAL 协议安装到 Controller Handle 上; Stop函数实现步骤:将Start中安装的协议用CloseProtocol关闭,并用EFI规范的UninstallProtocolInterface函数卸载,最后释放所构造的数据结构;
具备了上面3个函数的驱动程序就实现了 UEFI驱动的绑定协议,为GAL功能函数的开发提供了一个符合UEFI驱动模式的框架;
接下来用图形学的算法实现相应的函数接口;
最后,通过在UEFI应用程序中调用GAL和IAL的驱动来实现对BIOS Setup界面的显示和修改;这包括图形设备接口的实现、字符的显示、窗口的管理和控制操作;窗口的管理和控制通过消息传递的方式来实现,通过调用IAL的驱动产生消息传递给窗口控制程序;对于BIOS Setup菜单的显示需要调用UEFI运行时服务的接口函数GetVariable和GetNextVariableName以及QueryVariableInfo ;在对Setup菜单的数值进行修改后需要调用SetVariable接口函数。具体的实现可以参考目前UEFI BIOS的实现方法。
[0012]本发明的一种修改BIOS SETUP界面的方法和现有技术相比,基于UEFI系统中GAL与IAL的分层设计大大降低了系统的耦合度,提高了系统的可扩展性。GAL与IAL和UEFI驱动模型的集成,为系统在UEFI SHELL下实现修改BIOS SETUP界面提供了坚实的基础,使系统取得了较好的交互体验和较美观的界面效果;因而,具有很好的推广使用价值。
【专利附图】

【附图说明】
[0013]下面结合附图对本发明进一步说明。
[0014]附图1为一种修改BIOS SETUP界面的方法使用的系统架构的结构框图。
【具体实施方式】
[0015]下面结合附图和具体实施例对本发明作进一步说明。
[0016]实施例1:
一种修改BIOS SETUP界面的方法,计算机系统在UEFI Shell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层(英文全称为graphics abstraction layer,简称GAL)、提供鼠标和键盘驱动的输入抽象层(英文全称为input abstraction layer、简称IAL)、图形设备接口层(英文全称为graphics device interface、简称⑶I)、图形用户接口层(英文全称为graphics user interface、简称⑶I)、应用程序编程接口(英文全称为Application Programming Interface、简称API),图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口;
与图形抽象层和输入抽象层相对应的接口部分是UEFI中的UGA协议、Simple Pointer协议和Simple TextIn协议,其中系统的图形抽象层对UGA协议进行封装,并为上层的图形设备接口层提供统一的接口,图形设备接口层则对图形抽象层进行封装,实现了更多的功能,如位图读取与绘制、区域剪切、文字输出等,为上层的图形用户接口层提供功能使用;输入抽象层则对Simple Pointer协议与SimpleTextIn协议进行封装,并通过对鼠标键盘输入的监视生成消息(Message),通过消息可以进行窗口之间的通信,为图形用户接口层的(窗口创建与绘制、多窗口之间的剪切等)的功能提供服务;图形用户接口层通过应用程序编程接口访问BIOS Setup的应用程序; 所述方法步骤为:
(1)、在UEFI的BIOS源代码中添加图形抽象层和输入抽象层的驱动并实现相关的UGA协议、Simple Pointer 协议和 Simple TextIn 协议;
(2)、编译UEFI的BIOS源代码产生可执行的ROM文件;
(3)、更新步骤(2)中编译的BIOS源代码文件到计算机系统Firmware中;
(4)、编写UEFI应用程序实现BIOSSetup界面的显示和控制;
(5)、启动计算机系统配置文件到UEFIShell模式下,运行应用程序。
[0017]实施例2:
一种修改BIOS SETUP界面的方法,计算机系统在UEFI Shell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层(英文全称为graphics abstraction layer,简称GAL)、提供鼠标和键盘驱动的输入抽象层(英文全称为input abstraction layer、简称IAL)、图形设备接口层(英文全称为graphics device interface、简称⑶I)、图形用户接口层(英文全称为graphics user interface、简称⑶I)、应用程序编程接口(英文全称为Application Programming Interface、简称API),图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口;
与图形抽象层和输入抽象层相对应的接口部分是UEFI中的UGA协议、Simple Pointer协议和Simple TextIn协议,其中系统的图形抽象层对UGA协议进行封装,并为上层的图形设备接口层提供统一的接口,图形设备接口层则对图形抽象层进行封装,实现了更多的功能,如位图读取与绘制、区域剪切、文字输出等,为上层的图形用户接口层提供功能使用;输入抽象层则对Simple Pointer协议与SimpleTextIn协议进行封装,并通过对鼠标键盘输入的监视生成消息(Message),通过消息可以进行窗口之间的通信,为图形用户接口层的(窗口创建与绘制、多窗口之间的剪切等)的功能提供服务;图形用户接口层通过应用程序编程接口访问BIOS Setup的应用程序;
所述方法步骤为:
(1)、在UEFI的BIOS源代码中添加图形抽象层和输入抽象层的驱动并实现相关的UGA协议、Simple Pointer 协议和 Simple TextIn 协议;
(2)、编译UEFI的BIOS源代码产生可执行的ROM文件;
(3)、更新步骤(2)中编译的BIOS源代码文件到计算机系统Firmware中;
(4)、编写UEFI应用程序实现BIOSSetup界面的显示和控制;
(5)、启动计算机系统配置文件到UEFIShell模式下,运行应用程序。
[0018]步骤(I)的实现,将图形抽象层和输入抽象层的程序按照驱动协议模型编写;包括如下步骤:①、编写UGA协议、Simple Pointer协议和Simple TextIn协议的接口 ;②、用驱动格式实现上述接口。
[0019]实施例3:
一种修改BIOS SETUP界面的方法,计算机系统在UEFI Shell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层(英文全称为graphics abstraction layer,简称GAL)、提供鼠标和键盘驱动的输入抽象层(英文全称为input abstraction layer、简称IAL)、图形设备接口层(英文全称为graphics device interface、简称⑶I)、图形用户接口层(英文全称为graphics user interface、简称⑶I )、应用程序编程接口(英文全称为Application Programming Interface、简称API),图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口;
与图形抽象层和输入抽象层相对应的接口部分是UEFI中的UGA协议、Simple Pointer协议和Simple TextIn协议,其中系统的图形抽象层对UGA协议进行封装,并为上层的图形设备接口层提供统一的接口,图形设备接口层则对图形抽象层进行封装,实现了更多的功能,如位图读取与绘制、区域剪切、文字输出等,为上层的图形用户接口层提供功能使用;输入抽象层则对Simple Pointer协议与SimpleTextIn协议进行封装,并通过对鼠标键盘输入的监视生成消息(Message),通过消息可以进行窗口之间的通信,为图形用户接口层的(窗口创建与绘制、多窗口之间的剪切等)的功能提供服务;图形用户接口层通过应用程序编程接口访问BIOS Setup的应用程序;
所述方法步骤为:
(1)、在UEFI的BIOS源代码中添加图形抽象层和输入抽象层的驱动并实现相关的UGA协议、Simple Pointer 协议和 Simple TextIn 协议;
(2)、编译UEFI的BIOS源代码产生可执行的ROM文件;
(3)、更新步骤(2)中编译的BIOS源代码文件到计算机系统Firmware中;
(4)、编写UEFI应用程序实现BIOSSetup界面的显示和控制;
(5)、启动计算机系统配置文件到UEFIShell模式下,运行应用程序。
[0020]步骤(I)的实现,将图形抽象层和输入抽象层的程序按照驱动协议模型编写;包括如下步骤:①、编写UGA协议、Simple Pointer协议和Simple TextIn协议的接口;②、用驱动格式实现上述接口。
[0021]步骤(I)的①编写协议部分,需要在BIOS的Protocol文件夹下建立图形抽象层或输入抽象层的文件夹,并在该文件夹中编写Protocol的接口函数;
步骤(I)的②驱动格式是在BIOS的Driver文件夹下建立图形抽象层或输入抽象层的文件夹,在这个文件夹下编写Protocol文件中GAL函数接口的具体实现;需要实现Supported函数、Start函数与Stop函数;
Supported函数实现步骤:用UEFI规范的OpenProtocol函数打开UEFI的UGA协议并加以测试,以保证之后的GAL功能函数可以调用UGA的服务,之后用UEFI规范的CloseProtocol函数关闭UGA协议;
Start函数实现步骤:在得到Supported函数的保证下,用OpenProtocol函数打开UEFI的UGA协议以调用其提供的服务;随后构造相应的数据结构并用之前Protocol中的接口函数指针指向驱动程序中对应的函数;最后用UEFI规范的InstalIProtocolInterface 函数将 GAL 协议安装到 Controller Handle 上;
Stop函数实现步骤:将Start中安装的协议用CloseProtocol关闭,并用EFI规范的UninstallProtocolInterface函数卸载,最后释放所构造的数据结构;
具备了上面3个函数的驱动程序就实现了 UEFI驱动的绑定协议,为GAL功能函数的开发提供了一个符合UEFI驱动模式的框架;
接下来用图形学的算法实现相应的函数接口; 最后,通过在UEFI应用程序中调用GAL和IAL的驱动来实现对BIOS Setup界面的显示和修改;这包括图形设备接口的实现、字符的显示、窗口的管理和控制操作;窗口的管理和控制通过消息传递的方式来实现,通过调用IAL的驱动产生消息传递给窗口控制程序;对于BIOS SETUP菜单的显示需要调用UEFI运行时服务的接口函数GetVariable和GetNextVariableName以及QueryVariableInfo ;在对SETUP菜单的数值进行修改后需要调用SetVariable接口函数。具体的实现可以参考目前UEFI BIOS的实现方法。
[0022]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种修改BIOS SETUP界面的方法的权利要求书的且任何所属【技术领域】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
[0023]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【权利要求】
1.一种修改BIOS SETUP界面的方法,其特征在于计算机系统在UEFI Shell环境中,所述方法使用的系统架构包括提供图形接口的图形抽象层、提供鼠标和键盘驱动的输入抽象层、图形设备接口层、图形用户接口层、应用程序编程接口,图形抽象层和输入抽象层位于系统最底层,图形设备接口层位于系统的中间层,图形用户接口层位于图形设备接口层上方,系统的最顶层为应用程序编程接口 ; 与图形抽象层和输入抽象层相对应的接口部分是UEFI中的UGA协议、Simple Pointer协议和Simple TextIn协议,其中系统的图形抽象层对UGA协议进行封装,并为上层的图形设备接口层提供统一的接口,图形设备接口层则对图形抽象层进行封装,为上层的图形用户接口层提供功能使用;输入抽象层则对Simple Pointer协议与SimpleTextIn协议进行封装,并通过对鼠标键盘输入的监视生成消息,通过消息可以进行窗口之间的通信,为图形用户接口层的(窗口创建与绘制、多窗口之间的剪切等)的功能提供服务;图形用户接口层通过应用程序编程接口访问BIOS Setup的应用程序; 所述方法步骤为: (1)、在UEFI的BIOS源代码中添加图形抽象层和输入抽象层的驱动并实现相关的UGA协议、Simple Pointer 协议和 Simple TextIn 协议; (2)、编译UEFI的BIOS源代码产生可执行的ROM文件; (3)、更新步骤(2)中编译的BIOS源代码文件到计算机系统Firmware中; (4)、编写UEFI应用程序实现BIOSSetup界面的显示和控制; (5)、启动计算机系统配置文件到UEFIShell模式下,运行应用程序。
2.根据权利要求1所述的一种修改BIOSSETUP界面的方法,其特征在于步骤(1)的实现,将图形抽象层和输入 抽象层的程序按照驱动协议模型编写;包括如下步骤:①、编写UGA协议、Simple Pointer协议和Simple TextIn协议的接口 、用驱动格式实现上述接□。
3.根据权利要求2所述的一种修改BIOSSETUP界面的方法,其特征在于步骤(1)的①编写协议部分,需要在BIOS的Protocol文件夹下建立图形抽象层或输入抽象层的文件夹,并在该文件夹中编写Protocol的接口函数; 步骤(1)的②驱动格式是在BIOS的Driver文件夹下建立图形抽象层或输入抽象层的文件夹,在这个文件夹下编写Protocol文件中GAL函数接口的具体实现;需要实现Supported函数、Start函数与Stop函数; Supported函数实现步骤:用UEFI规范的OpenProtocol函数打开UEFI的UGA协议并加以测试,以保证之后的GAL功能函数可以调用UGA的服务,之后用UEFI规范的CloseProtocol函数关闭UGA协议; Start函数实现步骤:在得到Supported函数的保证下,用OpenProtocol函数打开UEFI的UGA协议以调用其提供的服务;随后构造相应的数据结构并用之前Protocol中的接口函数指针指向驱动程序中对应的函数;最后用UEFI规范的InstalIProtocolInterface 函数将 GAL 协议安装到 Controller Handle 上; Stop函数实现步骤:将Start中安装的协议用CloseProtocol关闭,并用EFI规范的UninstallProtocolInterface函数卸载,最后释放所构造的数据结构; 具备了上面3个函数的驱动程序就实现了 UEFI驱动的绑定协议,为GAL功能函数的开发提供了一个符合UEFI驱动模式的框架; 接下来用图形学的算法实现相应的函数接口; 最后,通过在UEFI应用程序中调用GAL和IAL的驱动来实现对BIOS Setup界面的显示和修改;这包括图形设备接口的实现、字符的显示、窗口的管理和控制操作;窗口的管理和控制通过消息传递的方式来实现,通过调用IAL的驱动产生消息传递给窗口控制程序;对于BIOS Setup菜单的显示需要调用UEFI运行时服务的接口函数GetVariable和GetNextVariableName以及QueryVariableInfo ;在对Setup菜单的数值进行修改后需要调用 SetVariable 接口 函数 。
【文档编号】G06F9/45GK103809983SQ201410068650
【公开日】2014年5月21日 申请日期:2014年2月27日 优先权日:2014年2月27日
【发明者】鄢建龙 申请人:山东超越数控电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1