CN108241510A - 一种显卡的切换方法 - Google Patents
一种显卡的切换方法 Download PDFInfo
- Publication number
- CN108241510A CN108241510A CN201611206726.6A CN201611206726A CN108241510A CN 108241510 A CN108241510 A CN 108241510A CN 201611206726 A CN201611206726 A CN 201611206726A CN 108241510 A CN108241510 A CN 108241510A
- Authority
- CN
- China
- Prior art keywords
- server
- video card
- client
- switching method
- judging
- 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.)
- Granted
Links
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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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
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 (9)
1.一种显卡的切换方法,其特征在于,包括:
步骤一:运行Bumblebeed的服务端和客户端;
步骤二:启动监听模块,用于判断所述客户端中是否有进程启动;
步骤三:若判断所述客户端中有进程启动,执行所述客户端的optirun主程序;
步骤四:所述optirun主程序连接所述Bumblebeed的所述服务端,向所述服务端发送相关消息;
步骤五:判断是否得到所述服务端的正确应答;
步骤六:若得到所述服务端的正确应答,启动所述进程。
2.根据权利要求1所述的显卡的切换方法,其特征在于,所述步骤三和所述步骤四之间,还包括若判断所述客户端中无进程启动,判断是否输入中断命令的步骤。
3.根据权利要求2所述的显卡的切换方法,其特征在于,所述中断命令为Ctrl+C或Ctrl+Z。
4.根据权利要求2所述的显卡的切换方法,其特征在于,若所述判断是否输入中断命令的步骤的判断结果为是,则结束;若所述判断是否输入中断命令的步骤的判断结果为否,则返回所述步骤二。
5.根据权利要求1所述的显卡的切换方法,其特征在于,所述步骤五和所述步骤六之间,还包括若判断未得到所述服务端的正确应答,则返回所述步骤二。
6.根据权利要求1所述的显卡的切换方法,其特征在于,所述监听模块用于监听Bash的COMMAND执行器通信和/或Linux桌面系统的鼠标事件。
7.根据权利要求6所述的显卡的切换方法,其特征在于,所述Linux桌面系统的鼠标事件通过解析/proc/bus/input/devices目录的文件和/或判断所述Linux桌面系统的鼠标双击是否为启动进程来进行监听。
8.根据权利要求6所述的显卡的切换方法,其特征在于,所述Bash的COMMAND执行器通信包括已修改代码的所述COMMAND执行器要求所述optirun主程序启动进程的信息。
9.根据权利要求1所述的显卡的切换方法,其特征在于,所述步骤六通过execvp系统调用启动所述进程。
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 true CN108241510A (zh) | 2018-07-03 |
CN108241510B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158625A (zh) * | 2019-12-31 | 2020-05-15 | 中国电子科技集团公司第十五研究所 | 一种基于飞腾平台的双独立显卡动态切换装置及方法 |
CN111258668A (zh) * | 2020-02-20 | 2020-06-09 | 湖南麒麟信安科技有限公司 | 一种gpu虚拟桌面动态切换显示的方法及装置 |
CN117078499A (zh) * | 2023-10-13 | 2023-11-17 | 统信软件技术有限公司 | 双显卡渲染处理方法、装置、计算设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819449A (zh) * | 2012-07-04 | 2012-12-12 | 深圳市京华科讯科技有限公司 | 一种显卡重定向方法及系统 |
CN105094895A (zh) * | 2015-06-30 | 2015-11-25 | 北京金山安全软件有限公司 | 一种安装多显卡驱动的方法及装置 |
-
2016
- 2016-12-23 CN CN201611206726.6A patent/CN108241510B/zh active Active
Patent Citations (2)
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)
Title |
---|
LISTENERRI: ""arch-linux+xfce4+lightdm+uefi个人安装记录"", 《HTTP://BLOG.CSDN.NET/LISTENER_RI/ARTICLE/DETAILS/45407783》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158625A (zh) * | 2019-12-31 | 2020-05-15 | 中国电子科技集团公司第十五研究所 | 一种基于飞腾平台的双独立显卡动态切换装置及方法 |
CN111258668A (zh) * | 2020-02-20 | 2020-06-09 | 湖南麒麟信安科技有限公司 | 一种gpu虚拟桌面动态切换显示的方法及装置 |
CN117078499A (zh) * | 2023-10-13 | 2023-11-17 | 统信软件技术有限公司 | 双显卡渲染处理方法、装置、计算设备及可读存储介质 |
CN117078499B (zh) * | 2023-10-13 | 2024-01-23 | 统信软件技术有限公司 | 双显卡渲染处理方法、装置、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108241510B (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7266635B2 (ja) | 画面切り替え表示方法、装置、スマートバックミラー及び読み取り可能な記憶媒体 | |
JP7030177B2 (ja) | テスト方法及び装置 | |
CN106878361B (zh) | 一种终端应用页面的调试方法、装置及客户端 | |
CN103345405A (zh) | 应用程序的启动方法、装置和客户端 | |
CN111767069A (zh) | 小程序处理方法、服务器、设备及存储介质 | |
CN108241510A (zh) | 一种显卡的切换方法 | |
CN112817656B (zh) | 小程序运行方法和装置 | |
CN111813623A (zh) | 一种页面监控方法、装置、电子设备及存储介质 | |
CN103513858A (zh) | 远程协助方法及装置 | |
CN110581885A (zh) | 确定设备同步方法、装置、设备及存储介质 | |
CN111371629B (zh) | 网络构建和带外管理方法、装置、设备、介质和云平台 | |
CN109683964A (zh) | Bios软件调试控制方法、系统及服务器 | |
CN111610972A (zh) | 页面生成方法、装置、设备及存储介质 | |
JP2022120046A (ja) | 認証コードの同期方法、装置、電子機器および記憶媒体 | |
CN111522599B (zh) | 用于发送信息的方法和装置 | |
CN101989204A (zh) | 一种计算机远程网络诊断和用户支持的方法 | |
CN113971277A (zh) | 多用户登录方法和装置 | |
CN111913707B (zh) | 运行进程的复用方法和装置 | |
CN111615171B (zh) | 无线局域网的接入方法和装置 | |
CN110324432B (zh) | 应用于终端的数据处理方法、装置、介质和计算设备 | |
CN100458695C (zh) | 自动化完全远程控制方法 | |
CN111966877A (zh) | 前端服务方法、装置、设备及存储介质 | |
CN115913913B (zh) | 网卡预启动执行环境功能故障定位方法及装置 | |
CN111782218A (zh) | 小程序处理方法、装置、设备及存储介质 | |
CN113791777B (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 | ||
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. |