基于UEFI固件的多屏显示方法及系统
技术领域
本发明涉及计算机技术领域,是一种基于UEFI固件的多屏显示方法及系统。
背景技术
固件,用于计算机平台硬件的初始化和操作系统引导,在整个计算机系统中担任着不可替代的作用。只有在UEFI固件下点亮显卡,驱动图像输出设备,用户才可以通过界面显示完成UEFI固件下时间设置、语言选择、UEFI固件层安全功能设置、外设管理,启动项选择修改等诸多功能。
目前在UEFI启动的过程中,主要通过自动检测与主板相连接的显卡,只有在该显卡连接有显示器时,才点亮显示器并执行开机操作,该方式所支持的显卡种类有限,通常是只支持主流显卡,不支持同时在多张显卡上连接多个显示器的操作,因此虽然能对板上所连接的多张显卡都进行检测,但最终只驱动与显示器相连的那张显卡,并只对该显卡进行控制和输出图像数据,从而会导致当启动后,将显示器连接到其他显卡上时,无图像数据输出到显示器中,显示器黑屏。
发明内容
本发明提供了一种基于UEFI固件的多屏显示方法及系统,克服了上述现有技术之不足,其能有效解决现有UEFI固件启动过程中的显示器点亮方法存在的不能使多显卡上对应连接的多个显示器同时点亮的问题。
本发明的技术方案之一是通过以下措施来实现的:一种基于UEFI固件的多屏显示方法,包括:
识别主板上连接的所有显卡,安装其对应的显卡驱动;
根据UEFI固件程序执行流程,绘制UI显示数据;
持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
下面是对上述发明技术方案的进一步优化或/和改进:
上述持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据,包括:
判断显卡是否正常运行,响应于是,则判断该显卡上是否连接有显示器,响应于否,则停止向该显卡输出UI显示数据;
判断显卡上是否连接有显示器,响应于是,则向该显卡输入UI显示数据,响应于否,则确定该显卡未连接或已移除显示器,停止向该显卡输出UI显示数据;
保持对显卡是否连接有显示器的重复判断,向连接有显示器的显卡输入UI显示数据,或停止向移除显示器的显卡输入UI显示数据。
上述向每个连接有显示器的显卡输入UI显示数据时,根据显示器的显示特性向其对应的显卡输出符合其显示特性的UI显示数据,其中显示器的显示特性包括显示需求、显示器的特征类型。
上述绘制UI显示数据时基于文本字符协议和UI绘制方法进行绘制。
上述向每个连接有显示器的显卡输入UI显示数据,显示器进行UI显示,在UI显示界面完成UEFI固件配置后,UEFI固件执行启动系统操作,释放对显卡的控制权,将其移交至操作系统。
本发明的技术方案之二是通过以下措施来实现的:一种基于UEFI固件的多屏显示系统,包括显卡驱动层、UI处理层和多屏控制输出层;
显卡驱动层,用于识别主板上连接的所有显卡,安装其对应的显卡驱动;
UI处理层,用于根据UEFI固件程序执行流程,绘制UI显示数据;
多屏控制输出层,用于持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
下面是对上述发明技术方案的进一步优化或/和改进:
上述多屏控制输出层包括显卡运行状态检测模块、显示器连接状态检测模块、UI显示数据输出模块;
显卡运行状态检测模块,用于判断显卡是否正常运行,响应于是,则判断该显卡上是否连接有显示器,响应于否,则停止向该显卡输出UI显示数据;
显示器连接状态检测模块,用于判断显卡上是否连接有显示器,并且保持对显卡是否连接有显示器的重复判断;
UI显示数据输出模块,用于根据显示器连接状态检测模块的判断结果,向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
上述多屏控制输出层包还括输出控制模块,所述输出控制模块,用于在向每个连接有显示器的显卡输入UI显示数据时,根据显示器的显示特性向其对应的显卡输出符合其显示特性的UI显示数据,其中显示器的显示特性包括显示需求、显示器的特征类型
上述UI处理层包括文本字符协议层、UI绘制层;
文本字符协议层,用于构建进行传输的图像素材,其中图像素材包括基本字符字库;
UI绘制层,用于运用文本字符协议层中的图像素材,完成UI界面的绘制。
上述显卡驱动层中设置有若干个不同类型的显卡驱动。
本发明实现了计算机在UEFI固件启动配置过程中的多屏显示输出,能同时对主板上连接有显示器的显卡进行驱动显示,使得多显卡上对应连接的多个显示器同时点亮,解决了现有UEFI固件启动过程中的显示器点亮方法存在的不能使多显卡上对应连接的多个显示器同时点亮的问题,并且通过持续且重复检测每个显卡上显示器的连接状态,确定显卡上显示器的连接与断开状态,及时停止向未连接显示器的显卡输入UI显示数据,降低显卡功耗,延长显卡寿命,节约电能。
附图说明
附图1为本发明实施例的流程图。
附图2为本发明实施例中检测显卡上显示器的连接状态,输出UI显示数据至接有显示器的显卡的流程图。
附图3为本发明实施例的系统结构示意图。
具体实施方式
本发明不受下述实施例的限制,可根据本发明的技术方案与实际情况来确定具体的实施方式。
下面结合实施例及附图对本发明作进一步描述:
如附图1所示,本发明实施例公开了基于UEFI固件的多屏显示方法,包括:
S1,识别主板上连接的所有显卡,安装其对应的显卡驱动;
S2,绘制UI显示数据;
S3,持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
本发明实现了计算机在UEFI固件启动配置过程中的多屏显示输出,支持UEFI固件层多显卡上对应连接的多个显示器同时点亮,即通过对主板上连接的所有显卡进行驱动,实时检测所有显卡上显示器的连接状态,及时关闭移去显示器的显卡。采取上述技术方案解决了现有UEFI固件启动过程中的显示器点亮方法存在的不能使多显卡上对应连接的多个显示器同时点亮的问题,并且通过持续且重复检测每个显卡上显示器的连接状态,确定显卡上显示器的连接状态,及时停止向未连接显示器的显卡输入UI显示数据,降低显卡功耗,延长显卡寿命,节约电能。
上述技术方案中在,绘制UI显示数据时根据已有的UEFI固件程序执行流程进行,其中绘制UI显示数据是基于文本字符协议和UI绘制方法进行。文本字符协议提供用于传输的图像素材,图像素材包括基本字符字库等素材,基本字符字库包括中文字体库、英文字体库、数字符号字体库、其他需要支持的语言字体字符库等字符字库。通过UI绘制方法运用文本字符协议中的字体字符字库等图像素材,完成UI界面的绘制,其中主要绘制的内容包括:创建界面定位机制、搭建界面显示框架、填充显示界面背景、向框架中填充字符图形。
上述技术方案中在,在绘制UI显示数据后,持续且重复检测每个显卡上显示器的连接状态,能灵活且及时的调整显示策略,即选择向连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据,有效降低显卡功耗,达到延长显卡寿命。
可根据实际需要,对上述本发明实施例的技术方案作进一步优化或/和改进:
如附图2所示,在上一实施例中持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据,本实施中的基于UEFI固件的多屏显示方法,该过程还可以进一步包括:
S31,判断显卡是否正常运行,响应于是,则判断该显卡上是否连接有显示器,响应于否,则停止向该显卡输出UI显示数据;
S32,判断显卡上是否连接有显示器,响应于是,则向该显卡输入UI显示数据,响应于否,则确定该显卡未连接或已移除显示器,停止向该显卡输出UI显示数据;
S33,保持对显卡是否连接有显示器的重复判断,向连接有显示器的显卡输入UI显示数据,或停止向移除显示器的显卡输入UI显示数据。
上述步骤S31中通过判断显卡是否正常运行,确定显卡的当前健康状况,为后续对显卡的UI显示数据输入提供基础保障。上述在步骤S32判断显卡上是否连接有显示器,根据判断结果向连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据后,上述通过步骤S33持续对主板上运行正常的各个显卡进行判断,判断其当前状态下是否连接有显示器,根据判断结果灵活且调整显示策略;例如:若判断某一显卡上连接的显示器从该显卡上移除,则停止向该显卡输入UI显示数据;如判断某一显示器连接到某个之前未连接有显示器的显卡上,则立即开始向该显卡输入UI显示数据,从而有效降低显卡功耗,达到延长显卡寿命。
如附图1所示,在上一实施例中向每个连接有显示器的显卡输入UI显示数据,本实施中的基于UEFI固件的多屏显示方法,向每个连接有显示器的显卡输入UI显示数据还可以进一步根据显示器的显示特性向其对应的显卡输出符合其显示特性的UI显示数据,其中显示器的显示特性包括显示需求、显示器的特征类型。
上述技术方案中,根据显示器的显示特性向其对应的显卡输出符合其显示特性的UI显示数据,完成了对显卡和显示器的管控,实现了UI显示数据的分流操作,优化多屏显示。例如:若多个显示器的屏幕比例不同,则根据每个显示器的屏幕比例实行UI显示数据分流,实现界面显示的最优化;若有多个显示屏需要分别显示不同页面信息,或者是需要多个显示器共同显示同一界面,则根据各个显示器的显示需求实行UI显示数据分流。
如附图1所示,在上一实施例中向每个连接有显示器的显卡输入UI显示数据,显示器进行UI显示,在UI显示界面完成UEFI固件配置后,本实施中的基于UEFI固件的多屏显示方法,UEFI固件还可以进一步执行启动系统操作,释放对显卡的控制权,将其移交至操作系统。
如附图3所示,相应的,本发明实施例还公开了基于UEFI固件的多屏显示系统,包括显卡驱动层、UI处理层和多屏控制输出层;
所述显卡驱动层,用于识别主板上连接的所有显卡,安装其对应的显卡驱动;
所述UI处理层,用于绘制UI显示数据;
所述多屏控制输出层,用于持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
上述技术方案中,所述显卡驱动层中设置有若干个不同类型的显卡驱动,若干个不同类型的显卡驱动包括嵌入式显卡(集成在CPU内的显卡)、AMD显卡(AMD公司生产的各系列)、BMC显卡(集成在BMC芯片中的显卡),以及各种国产类型的显卡等。由于实现多屏显示功能首先需要UEFI固件具有需要控制的所有显卡的控制程序,即各类显卡的驱动程序。因此本发明的显卡驱动层中设置有若干个不同类型的显卡驱动,这些显卡驱动可以由显卡设计厂家进行提供,UEFI固件开发人员直接进行调用,或在对相应的显卡驱动进行改造后进行使用,也可以自己根据显卡的硬件结构设计显卡的驱动程序。
可根据实际需要,对上述本发明实施例的技术方案作进一步优化或/和改进:
如附图3所示,在上一实施例中利用多屏控制输出层,持续且重复检测每个显卡上显示器的连接状态,根据连接状态向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据,本实施中的基于UEFI固件的多屏显示系统,多屏控制输出层还可以进一步包括显卡运行状态检测模块、显示器连接状态检测模块、UI显示数据输出模块;
所述显卡运行状态检测模块,用于判断显卡是否正常运行,响应于是,则判断该显卡上是否连接有显示器,响应于否,则停止向该显卡输出UI显示数据;
所述显示器连接状态检测模块,用于判断显卡上是否连接有显示器,并且保持对显卡是否连接有显示器的重复判断;
所述UI显示数据输出模块,用于根据显示器连接状态检测模块的判断结果,向每个连接有显示器的显卡输入UI显示数据完成多屏显示,或停止向移除显示器的显卡输入UI显示数据。
上述技术方案中,显卡运行状态检测模块检测显卡运行状态完成对显卡当前健康状况的判断,根据检测结果,实现对显卡的数据输入的优化;显示器连接状态检测模块判断显卡上是否连接有显示器,即对显示器与显卡的断开与接入状态进行检测,根据检测结果显示资源进行合理配置;UI显示数据输出模块能向连接有显示器的显卡输出UI显示数据,向用户展示UI界面,在显卡上连接的显示器从显卡上移除时,停止向该显卡输出UI显示数据,在某个显示器连接到某个之前未接有显示器的显卡时,立即开始向该显卡输出UI显示数据,完成多屏显示。
如附图3所示,在上一实施例中多屏控制输出层包括显卡运行状态检测模块、显示器连接状态检测模块、UI显示数据输出模块,本实施中的基于UEFI固件的多屏显示系统,多屏控制输出层还包括输出控制模块,用于在向每个连接有显示器的显卡输入UI显示数据时,根据显示器的显示特性向其对应的显卡输出符合其显示特性的UI显示数据,其中显示器的显示特性包括显示需求、显示器的特征类型。
如附图3所示,在上一实施例中利用UI处理层根据UEFI固件程序执行流程,绘制UI显示数据,本实施中的基于UEFI固件的多屏显示系统,UI处理层还可以进一步包括文本字符协议层和UI绘制层;
所述文本字符协议层,用于构建进行传输的图像素材,其中图像素材包括基本字符字库;
所述UI绘制层,用于运用文本字符协议层中的图像素材,完成UI界面的绘制。
上述技术方案中在,文本字符协议层构建进行传输的图像素材,图像素材包括基本字符字库等素材,基本字符字库包括中文字体库、英文字体库、数字符号字体库、其他需要支持的语言字体字符库等字符字库。UI绘制层运用文本字符协议中的字体字符字库等图像素材,完成UI界面的绘制,其中主要绘制的内容包括:创建界面定位机制、搭建界面显示框架、填充显示界面背景、向框架中填充字符图形。
以上技术特征构成了本发明的最佳实施例,其具有较强的适应性和最佳实施效果,可根据实际需要增减非必要的技术特征,来满足不同情况的需求。