CN108241510B - 一种显卡的切换方法 - Google Patents

一种显卡的切换方法 Download PDF

Info

Publication number
CN108241510B
CN108241510B CN201611206726.6A CN201611206726A CN108241510B CN 108241510 B CN108241510 B CN 108241510B CN 201611206726 A CN201611206726 A CN 201611206726A CN 108241510 B CN108241510 B CN 108241510B
Authority
CN
China
Prior art keywords
client
started
optirun
display card
monitoring module
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.)
Active
Application number
CN201611206726.6A
Other languages
English (en)
Other versions
CN108241510A (zh
Inventor
杜永贵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yanxiang Smart Technology Co ltd
Original Assignee
EVOC Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EVOC Intelligent Technology Co Ltd filed Critical EVOC Intelligent Technology Co Ltd
Priority to CN201611206726.6A priority Critical patent/CN108241510B/zh
Publication of CN108241510A publication Critical patent/CN108241510A/zh
Application granted granted Critical
Publication of CN108241510B publication Critical patent/CN108241510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供一种显卡的切换方法,其中包括,运行Bumblebeed的服务端和客户端;启动监听模块,用于判断所述客户端中是否有进程启动;若判断所述客户端中有进程启动,执行所述客户端的optirun主程序;所述optirun主程序连接所述Bumblebeed的所述服务端,向所述服务端发送相关消息;判断是否得到所述服务端的正确应答;若得到所述服务端的正确应答,启动所述进程。本发明改进了Bumblebee的显卡切换操作,在Linux环境下可以方便切换到独立显卡并运行3D图形处理程序,也可以实现直接在图形界面下双击运行程序,切换到独立显卡运行。使用更加灵活方便。

Description

一种显卡的切换方法
技术领域
本发明涉及计算机电子科学技术领域,尤其涉及一种显卡的切换方法。
背景技术
Nvidia芯片在Windows环境下能够实现显卡切换功能,可以根据使用情况自动或手动切换显卡,例如上网办公时使用Intel集成显卡、游戏设计时使用高性能独立显卡。但通常双显卡硬件是由Nvidia显卡负责渲染,桥接到Intel集成显卡后进行VGA输出,所以Nvidia显卡没有正式的输出屏幕,因此,Nvidia芯片在Linux环境下即使安装驱动也不能获得使用,也无法像ATI芯片一样支持在集成显卡与独立显卡之间进行切换的功能。
在现有技术中,Linux环境下通常使用Bumblebeed软件来切换独立显卡,该软件包括服务端和客户端。服务端启动后进行初始化,随后创建socket服务端等待客户端的连接,对每个客户端发来的socket信息进行判断,进而开启独立显卡供应用程序的底层库调用。但使用Bumblebee来实现Linux下独立显卡的切换,每次启动应用程序时都需要在应用程序前面增加启动方式命令,并且只能在终端上启动程序,由此造成了使用上的不便。
发明内容
本发明提供的显卡的切换方法,能够在Linux环境下方便地将集成显卡切换到独立显卡运行。
本发明提供一种显卡的切换方法,其中包括:
步骤一:运行Bumblebeed的服务端和客户端;
步骤二:启动监听模块,用于判断所述客户端中是否有进程启动;
步骤三:若判断所述客户端中有进程启动,执行所述客户端的optirun主程序;
步骤四:所述optirun主程序连接所述Bumblebeed的所述服务端,向所述服务端发送相关消息;
步骤五:判断是否得到所述服务端的正确应答;
步骤六:若得到所述服务端的正确应答,启动所述进程。
可选地,所述步骤三和所述步骤四之间,还包括若判断所述客户端中无进程启动,判断是否输入中断命令的步骤。
可选地,所述中断命令为Ctrl+C或Ctrl+Z。
可选地,若所述判断是否输入中断命令的步骤的判断结果为是,则结束;若所述判断是否输入中断命令的步骤的判断结果为否,则返回所述步骤二。
可选地,所述步骤五和所述步骤六之间,还包括若判断未得到所述服务端的正确应答,则返回所述步骤二。
可选地,所述监听模块用于监听Bash的COMMAND执行器通信和/或Linux桌面系统的鼠标事件。
可选地,所述Linux桌面系统的鼠标事件通过解析/proc/bus/input/devices目录的文件和/或判断所述Linux桌面系统的鼠标双击是否为启动进程来进行监听。
可选地,所述Bash的COMMAND执行器通信包括已修改代码的所述COMMAND执行器要求所述optirun主程序启动进程的信息。
可选地,所述步骤六通过execvp系统调用启动所述进程。
本发明实施例提供的显卡的切换方法,改进了Bumblebee的显卡切换操作,在Linux环境可以像Windows环境那样方便地切换到独立显卡并运行3D图形处理程序,不需要每次启动程序都要使用optirun命令,也可以实现直接在图形界面下双击运行程序,切换到独立显卡运行。使用更加灵活方便。
附图说明
图1为本发明Bumblebeed客户端运行的流程图;
图2为本发明Bumblebeed服务端程序监听系统鼠标事件的示意图;
图3为本发明Linux系统的Bash的框架示意图;
图4为本发明Bumblebeed服务端程序监听Bash的COMMAND执行器通信的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,Linux环境下通常使用Bumblebeed软件来切换独立显卡,该软件包括服务端和客户端。服务端启动后进行初始化,随后创建socket服务端等待客户端的连接,对每个客户端发来的socket信息进行判断,进而开启独立显卡供应用程序的底层库调用。
每次要使用独立显卡来启动应用程序时,Bumblebeed软件以这样的方式在Shell上运行应用程序:#optirun<应用程序名>[参数]。执行该命令后,optirun客户端主函数开始执行。optirun首先连接服务端的socket,然后给服务端发送相关的消息,在得到服务端的正确应答之后,利用execvp系统调用启动真正要运行的应用程序,这样真正要运行的应用程序就会在独立显卡开启的状态下运行,并把独立显卡作为3D渲染的计算模块,实现高性能的3D显示效果。
本发明提供一种显卡的切换方法。本发明修改了客户端主函数optirun,加入了监听模块,加入监听模块后客户端的optirun单独启动并在后台运行,有新进程启动时,optirun能监测到,然后判断要启动的进程是否需要3D渲染,如果是,则和服务端Bumblebeed通信,最终启用独显,运行进程。
图1示出了客户端运行的流程图。客户端开始运行后,首先进行初始化,进行初始化后启动监听模块,监听模块用于判断是否有进程启动。当判断有进程启动时,则optirun连接服务端的socket,并发送消息并判断是否得到服务端的正确应答,如果得到服务端的正确应答则启用独显并运行进程,如果没有得到服务端的正确应答则不启动进程,而是返回继续判断是否有进程启动。当判断没有进程启动时,则判断是否输入了Ctrl+C,如果输入了Ctrl+C,则客户端运行结束,如果没有输入Ctrl+C,则返回继续判断是否有进程启动。
其中,监听模块用于判断是否出现以下两种情况:第一,系统鼠标事件发生,即双击事件且双击事件是启动应用程序;第二,Shell终端上有进程启动。当监听模块监测到有上述两种情况发生,则使optirun连接服务端的socket,让服务端设置独立显卡,然后启动应用程序,达到使用独立显卡计算3D渲染的效果。
进一步地,如图2所示,在Linux系统中,Bumblebeed客户端监听系统鼠标事件可以通过解析系统目录/proc/bus/input/devices中的输入文件进行,监听系统鼠标事件只需打开该目录下对应的文件并使用鼠标事件处理模块进行解析即可。结合Linux桌面系统的鼠标事件,由optirun监听模块判断得到鼠标的双击事件是否为启动进程,如果为启动进程,则给客户端主程序optirun发送消息,然后由optirun使用独立显卡来启动进程。
进一步地,Bash(GNU Bourne-Again Shell)是大多数Linux系统默认的shell,它能运行于大多数类Unix风格的操作系统之上。Bash的命令语法是Bourneshell命令语法的超集。数量庞大的Bourne shell脚本大多不经修改即可以在Bash中执行,只有使用了Bourne的特殊变量或内置命令的脚本才需要修改。图3示出了Bash的基本框架图。
在Bash中,COMMAND执行器负责启动用户在shell终端中要启动的进程。在本发明当中,如图4所示,修改了Bash主程序的COMMAND执行器代码,让其把进程的启动工作交给客户端主函数optirun,optirun监听模块收到Bash发来的信息后,连接Bumblebeed服务端,最后再启动进程,达到使用独立显卡的目的。
本发明没有对Bumblebeed服务端做出修改,仅对客户端主程序optirun作了修改,添加了监听模块,该模块监听Bash的COMMAND执行器通信和Linux桌面系统的鼠标事件,启动后进入死循环,等待COMMAND执行器和鼠标事件处理模块的的消息,收到消息后,执行optirun的主程序,optirun主程序连接Bumblebeed服务端的socket,然后给服务端发送相关的消息,在得到服务端的正确应答之后,利用execvp系统调用启动真正要运行的应用程序,应用程序就会在独立显卡开启的状态下运行,并把独立显卡作为3D渲染的计算模块,实现3D显示效果。
本发明实施例提供的显卡的切换方法,改进了Bumblebee的显卡切换操作,使之在Linux环境下可以如Windows环境一般方便切换到独立显卡并运行3D图形处理程序,不需要每次启动程序都使用optirun命令,也可以实现直接在图形界面下双击运行程序,切换到独立显卡运行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (5)

1.一种显卡的切换方法,其特征在于,客户端主函数optirun中加入了监听模块,加入监听模块后客户端的optirun单独启动并在后台运行;所述方法包括:
步骤一:运行Bumblebeed的服务端和客户端;
步骤二:启动监听模块,用于判断所述客户端中是否有进程启动;
步骤三:若监听模块判断所述客户端中有进程启动,执行所述客户端的optirun主程序,判断要启动的进程是否需要3D渲染;若监听模块判断所述客户端中没有进程启动时,则判断是否输入了Ctrl+C,如果输入了Ctrl+C,则客户端运行结束;如果没有输入Ctrl+C,则返回继续判断是否有进程启动;
步骤四:执行所述客户端的optirun主程序时,当要启动的进程需要3D渲染时,所述optirun主程序连接所述Bumblebeed的所述服务端socket,向所述服务端发送相关消息;
步骤五:判断是否得到所述服务端的正确应答;
步骤六:若得到所述服务端的正确应答,则启用独显并启动所述进程;若没有得到服务端的正确应答则不启动进程,而是返回继续判断是否有进程启动。
2.根据权利要求1所述的显卡的切换方法,其特征在于,所述监听模块用于监听Bash的COMMAND执行器通信和/或Linux桌面系统的鼠标事件。
3.根据权利要求2所述的显卡的切换方法,其特征在于,所述Linux桌面系统的鼠标事件通过解析/proc/bus/input/devices目录的文件和/或判断所述Linux桌面系统的鼠标双击是否为启动进程来进行监听。
4.根据权利要求2所述的显卡的切换方法,其特征在于,所述Bash的COMMAND执行器通信包括已修改代码的所述COMMAND执行器要求所述optirun主程序启动进程的信息。
5.根据权利要求1所述的显卡的切换方法,其特征在于,所述步骤六通过execvp系统调用启动所述进程。
CN201611206726.6A 2016-12-23 2016-12-23 一种显卡的切换方法 Active CN108241510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611206726.6A CN108241510B (zh) 2016-12-23 2016-12-23 一种显卡的切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611206726.6A CN108241510B (zh) 2016-12-23 2016-12-23 一种显卡的切换方法

Publications (2)

Publication Number Publication Date
CN108241510A CN108241510A (zh) 2018-07-03
CN108241510B true CN108241510B (zh) 2021-12-17

Family

ID=62703569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611206726.6A Active CN108241510B (zh) 2016-12-23 2016-12-23 一种显卡的切换方法

Country Status (1)

Country Link
CN (1) CN108241510B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158625A (zh) * 2019-12-31 2020-05-15 中国电子科技集团公司第十五研究所 一种基于飞腾平台的双独立显卡动态切换装置及方法
CN111258668B (zh) * 2020-02-20 2023-05-23 湖南麒麟信安科技股份有限公司 一种gpu虚拟桌面动态切换显示的方法及装置
CN117078499B (zh) * 2023-10-13 2024-01-23 统信软件技术有限公司 双显卡渲染处理方法、装置、计算设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819449A (zh) * 2012-07-04 2012-12-12 深圳市京华科讯科技有限公司 一种显卡重定向方法及系统
CN105094895A (zh) * 2015-06-30 2015-11-25 北京金山安全软件有限公司 一种安装多显卡驱动的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819449A (zh) * 2012-07-04 2012-12-12 深圳市京华科讯科技有限公司 一种显卡重定向方法及系统
CN105094895A (zh) * 2015-06-30 2015-11-25 北京金山安全软件有限公司 一种安装多显卡驱动的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"arch-linux+xfce4+lightdm+uefi个人安装记录";listenerri;《http://blog.csdn.net/listener_ri/article/details/45407783》;20150501;全文 *

Also Published As

Publication number Publication date
CN108241510A (zh) 2018-07-03

Similar Documents

Publication Publication Date Title
KR101702729B1 (ko) 다중 환경 운영 시스템에서 환경을 전환하는 시스템 및 방법
EP3432140B1 (en) Android-based pop-up prompt method and device
US20160328241A1 (en) Data processing method for multiple operating systems and terminal equipment
CN109308241B (zh) 监听应用程序启动流程方法、装置、终端设备和存储介质
CN108241510B (zh) 一种显卡的切换方法
CN111767090A (zh) 小程序的启动方法、装置、电子设备以及存储介质
WO2019100898A1 (zh) 一种输入操作处理方法、处理装置及计算机可读存储介质
CN111330280A (zh) 游戏中的数据处理方法、装置、存储介质与电子设备
CN111652665A (zh) 订单展示方法、装置及电子设备
CN108401453B (zh) 一种控制显示屏的方法、装置和智能终端
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN113791834A (zh) 信息显示设备
US20200089512A1 (en) Method and Apparatus for Invoking Input Method, Server, and Terminal
CN112214416B (zh) 调试小程序的方法、装置、电子设备和存储介质
CN111615171B (zh) 无线局域网的接入方法和装置
CN112700515A (zh) 动画播放方法和装置、存储介质、电子设备
CN107391354B (zh) 自动监测终端性能的方法及系统、存储装置
US20150235023A1 (en) Presenting Service Processes
CN110570830A (zh) 设备调节方法、装置、存储介质及电子设备
CN111522599B (zh) 用于发送信息的方法和装置
CN107015874B (zh) 数据传输控制方法、装置及终端
CN108268287B (zh) 一种串口重定向终端软件优化实现方法
CN112579460B (zh) 一种基于多核嵌入式系统的多级调试方法
CN114328090A (zh) 一种程序监控方法、装置、电子设备及存储介质
CN112306292B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230705

Address after: 518057 1701, Yanxiang science and technology building, 31 Gaoxin middle Fourth Road, Maling community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Yanxiang Smart Technology Co.,Ltd.

Address before: 518107 5th floor, No.1, Yanxiang Zhigu chuangxiangdi, No.11, Gaoxin Road, Guangming New District, Shenzhen City, Guangdong Province

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right