Recently, more and more models appear on the notebook market, containing not one, but two graphic cards at once. The first is usually from Intel, inefficient and not greedy for the battery, and the second from NVIDIA or ATI, which takes on heavy tasks and demanding games, at the same time is very voracious in relation to the charge of the battery. Almost all the time the first graphics card works, the second one starts working as soon as it becomes necessary, and is in the disabled state the rest of the time.
Windows support manufacturers have attended to the full, which is not surprising. Everything works almost out of the box, just put the right set of drivers.
Under Linux, not everything is so smooth. It should be understood immediately, support at the kernel level is almost absent. There are several projects that implement a separate functionality, like turning off cards or transferring images from one card to another, but alas and oh so. Everything is complicated by the fact that manufacturers are
not in a hurry to add support for their
bike solutions in Linux and do not tell
them how to drive them.
')
Technical details
In most cases, the discrete (second) card is not connected anywhere, and image transfer to the integrated card is performed by software and drivers. This explains the presence of a virtual CRT-0 or DFP-0 screen in the system to which it is impossible to connect normally. However, sometimes it is possible.
Consider the majority of solutions available at this time.
vga_switcheroo
A kernel module that switches between cards (turning off one card, turning on another).
Appeared in the kernel with version 2.6.34. I also received advanced features and great support for maps in
byo-switcheroo (formerly asus-switcheroo). Requires a mounted debugfs, to switch between the cards requires turning off the X server. Also works only with open drivers.
acpi_call
Another kernel module, but not yet included in the main branch. Perhaps he will never be there. Located on
github . The main task is to enable the user to transfer command lines to the acpi subsystem. It is mainly used to turn on and off a discrete card in order to save energy.
hybrid-windump
Application for forwarding the main screen of the X server, to the screen of another X server. Also
located on github . Allows you to combine two screens from different X servers on the same physical display.
bumblebee
The project supports the use of discrete cards based on NVIDIA Optimus with proprietary drivers. The most actively developing project at the moment. Located again on
github . Allows you to manually upload individual applications to a discrete map. Implemented by using an additional X server for an NVIDIA graphic card and
VirtualGL package for data transfer between X servers. Recently, the ability to disable a discrete card for some laptop models via acpi_call, when not in use, has been added. Additionally, it allows you to get support for CUDA, support for VDPAU is not yet implemented.
What's next?
Core 3.0
is expected to add a more advanced MXM switching method. Nevertheless, this is just a small part of the full support of everything and everyone. It is also recommended to subscribe to the
linux-hybrid-graphics newsletter and follow the updates on a
specialized blog . Well, of course, if possible, be active in the community, helping to develop various solutions and providing acpi dumps of your equipment.
List of links
- Application for support for NVIDIA Optimus in Linux - www.nvnews.net/vbulletin/showpost.php?p=2183477&postcount=2
- The commit of the vga_switcheroo module to the main branch of the kernel - git.kernel.org/linus/6a9ee8af344e3bd7dbd61e67037096cdf7f83289
- Byo-switcheroo repository on github - github.com/awilliam/asus-switcheroo
- The acpi_call repository on github - github.com/avilella/acpi_call
- The hybrid-windump repository on github - github.com/gebart/hybrid-windump
- VirtualGL Project - www.virtualgl.org
- The bumblebee repository on github - github.com/MrMEEE/bumblebee
- News about Optimus support in kernel 3.0 - www.phoronix.com/scan.php?page=news_item&px=OTQzMA
- Hybrid-graphics-linux mailing on launchpad - lists.launchpad.net/hybrid-graphics-linux
- Linux Hybrid Graphics Support Blog - linux-hybrid-graphics.blogspot.com