Bumblebee dla NVIDIA Optimus

Bumblebee dla NVIDIA Optimus

Wprowadzenie

Nvidia Optimus to prawdopodobnie najlepsze karty graficzne aktualnie obsługiwane przez Linuxa.. Dostarczają świetną akcelerację graficzną i oszczędzanie energii,, gdy którakolwiek jest potrzebna. Obie funkcjonalności dostarcza Bumblebee.

Some computer may need BIOS adjustments before Bumblebee installation. Zobacz sekcję Dwa typy BIOS section.

Bumblebee installation and removal are simple and straightforward processes. Zobacz sekcję Instalacja i Remove Bumblebee sections.

The text mainly speaks about a fresh Bumblebee installation. But it is not only an installation guide. It is also a repairing tool. Jeśli bumblebee jest już zainstalowany ale nie jesteś pewien co do jego stanu, simply install Bumblebee again. It does not hurt a system in any way.

Bumblebee's power saving feature was missing in the mid of 2015. Zobacz sekcję Niedziałające wyłączenie section.

Poradnik można użyć także do instalacji Bumblebee w innych dystrybucjach, that use unmodified Arch Linux repositories, takich jak Apricity OS (discontinued), Architect Linux (discontinued, but still available), Arch Anywhere, Bluestar Linux, Bridge Linux, Feliz. And, obviously, in native Arch Linux itself.

To druga,, zaktualizowana wersja tego artykułu. Pierwsza edycja,, niedostępna już na wiki, została odwiedzona 12000+ razy.

Do I have an Optimus card?

First things first. An excerpt from Bumblebee Project Wiki Troubleshooting section:

"Only laptops have these kind of nVidia Optimus card, so this project won't apply to desktops (for now). Cards from the 4xxM and newer series are all Optimus-enabled. The M stands for "Mobile". But having a 4xxM card isn't enough to be sure that you're having an Optimus laptop. There must also be an integrated video controller in your processor. To check that, run this command in a terminal:

lspci -vnn | grep '\''[030[02]\]'

If it outputs two lines, then you're likely having an Optimus laptop. Else..."

...this article is of no help for your card.

On NVIDIA Optimus two output lines look like:

00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 09) (prog-if 00 [VGA controller])

i

01:00.0 3D controller [0302]: NVIDIA Corporation GK107M [GeForce GT 750M] [10de:0fe4] (rev ff) (prog-if ff)

The first line starts with 00:02.0. It corresponds to Intel GPU.

The second line starts with 01:00.0. It corresponds to Nvidia GPU.

Your Intel and Nvidia make and model will obviously be different from this example.

Take note of your nVidia model because the driver version you install will depend on it (see the section, Do I Have Legacy or Current Hardware?).

Dwa typy BIOS

For the purpose of this guide let's distinguish two BIOS types:

  1. BIOS nie kontroluje karty graficznej i nie wspomina o niej
  2. BIOS próbuje kontrolować zintegrowaną i/lub dedykowaną kartę graficzną

 

1Pierwszy typ BIOSu jest najbardziej przyjazy dla Bumblebee. Nie wymaga wchodzenia do BIOS Setup, konfiguracji i zmian czegokolwiek. Uruchom komputer normalnie i , jeśli to możliwe, upewnij się, że pracuje na sterowniku xf86-video-intel. Tak powinno być domyślnie. Nie wymaga niczego więcej.

2nd Typ BIOS jest mniej przyjazne Bumblebee. It requires to enter BIOS Setup utility and make some adjustments within it. Przed i po instalacji Bumblebee. All BIOS changes in the guide refer only to the 2nd BIOS type. Make sure the computer runs on xf86-video-intel.

Krótko mówiąc. Bumblebee installation on:

  1. 1Pierwszy typ BIOSu nie wymaga zmian w BIOS setup
  2. 2Drugi typ BIOS może wymagać pewnych zmian w BIOS setup przed lub po instalacji Bmb

Do I Have Legacy or Current Hardware?

If your hardware is over 4 or 5 years old, you'll need to check if it's supported by the current version of nVidia drivers.

At the time of writing (26, October, 2016), the current nVidia driver version is 370.xx and the oldest GPU it covers goes down to the 400 mobile and desktop series. This link provides more info; click on the supported hardware tab: http://www.nvidia.com/download/driverResults.aspx/108586/en-us. Obviously, this is very time sensitive and as this article ages, this driver version and supported hardware list will change.

The 340.xx drivers provide support for the legacy hardware down to the Geforce 8800 series (that's 2 gens before the GTX 100 series): http://www.nvidia.com/download/driverResults.aspx/77525/en-us (again, select the supported hardware list to check if your device is in there).

The 304.xx drivers supports even older hardware.

Instalacja

Disable and remove Nouveau

Nouveau video driver causes many troubles on NVIDIA Optimus cards. Unbootable system, crashes during boot, a system that boots into unresponsive black screen with a white text cursor blinking in the top left corner, Cnchi and LiveDE freezes are only few of Nouveau effects.

If you don't experience any of these issues, you may safely skip this section. Otherwise, keep reading on.

Three steps are needed to remove Nouveau.

1. Disable it during a boot from LiveMedia, to be able to start LiveDE with Cnchi and complete the installation

2. Disable it on the first boot of the installed system, to be able to reach the graphical DE

3. Physical uninstallation of the package with Nuoveau video driver on the first boot; the system will use Intel GPU on subsequent boots until Bumblebee installation

Steps in details.

1. Use the default LiveMedia boot menu option. Edit the boot line and add to it the following parameter:

modprobe.blacklist=nouveau

Continue to boot normally.

There are other ways to disable Nouveau on boot. This one works in most cases.

2. Disable Nouveau on the first boot of the installed system, exactly the same way as in previous step.

3. Once you've reached the graphical DE, open the terminal and run the following command, to remove Nouveau completely:

sudo pacman -Rc xf86-video-nouveau

Zainstaluj Antergos bez sterowników Nvidii

Podczas świeżej instalacji Antergosa, upewnij się, że not zostanie instalowany własnościowy sterownik Nvidii. The option installs drivers for single-GPU, non-hybrid video cards, with NVIDIA GPU only. It does not install drivers for double-GPU, hybrid video cards with NVIDIA and Intel GPUs.

Zostaw w instalatorze przełącznik Graphic drivers (Proprietary) w domyślnej pozycji OFF position. Po prostu tego nie dotykaj.. antergos-dont-install-nvidia Jeśli tego nie zrobisz, to sprawisz, że system się nie uruchomi..

Wyłącz Nvidia Optimus, 2tylko dla drugiego typu BIOS

Posiadacze pierwszego typu BIOSu mogą tę sekcję pominąć.

Po instalacji zrestartuj komputer, and enter the BIOS configuration utility. Większość kart z technologią optimus działa obok zintegrowanej grafiki Intela. Znajdź ustawienia wyświetlania, i wybierz "Intel Integrated" "Intel Integrated", lub coś podobnego - upewnij się że Optimus i Dyskretna karta nie są włączone. Also, upewnij się, że ustawienie pod tym , "Detection by OS" setting is disabled. Po zakończeniu tego kroku, możesz zrestartować komputer, i uruchomić nową instalację Antergosa.

Włącz repozytorium [multilib] repo

To repozytorium jest domyślnie włączone w ostatnich wydaniach Antergosa. Jeśli instalujesz atywny Arch Linux , Architect, Większość, systemów korzystających z niezmodyfikowanego repozytorium Archa,, edytuj plik /etc/pacman.conf i odkomentuj to repozytorium.

Całkowicie zaktualizuj system

yaourt -Syyua

Zainstaluj Bumblebee

On modern hardware, with current drivers:

sudo pacman -S bumblebee mesa xf86-video-intel nvidia lib32-nvidia-utils lib32-virtualgl nvidia-settings bbswitch

On older hardware, with 340.xx legacy drivers:

sudo pacman -S bumblebee mesa xf86-video-intel nvidia-340xx nvidia-340xx-utils lib32-nvidia-340xx-utils lib32-virtualgl bbswitch

On even older hardware, with 304.xx legacy drivers:

sudo pacman -S bumblebee mesa xf86-video-intel nvidia-304xx nvidia-304xx-utils lib32-nvidia-304xx-utils lib32-virtualgl bbswitch

Dodaj siebie do grupy bumblebee

Any user that is supposed to use Bumblebee must be added to this group. The user must also be a member of the video group - it is usually so by default, but not always.

sudo gpasswd -a $USER bumblebee
sudo gpasswd -a $USER video

Włącz usługę bumblebeed

Notice the final d (from daemon) letter in the service's name. The step may be skipped if the next step will be executed.

sudo systemctl enable bumblebeed.service
 

Zainstaluj łatkę do oszczędzania energii

Tylko gdy potrzeba. Poniżej opisano szczegół tej łatki.

The package is found at:

bumblebee-3.2.1-11-x86_64.pkg.tar.xz

sudo pacman -U /path/to/package/bumblebee-3.2.1-11-x86_64.pkg.tar.xz

Gdy zainstalujesz ten pakiet, pacman pokaże ostrzeżenie o kolejnych aktualizacjach. It may be safely ignored:

warning: bumblebee: local (3.2.1-11) is newer than community (3.2.1-10)

Zrestartuj system

sudo shutdown -r now

Włącz Optimus, 2tylko dla drugiego typu BIOS

Posiadacze pierwszego typu BIOSu mogą tę sekcję pominąć.

Start up your computer, and once again, enter your BIOS utility configuration. Find the Display configuration and change it from "integrated graphics" to "Optimus". Leave the "Detected by OS" in the "Disabled" position.

Niedziałające wyłączenie

Aktualizacja 2016.07: Somewhere in 2016.06 problem został naprawiony. Jeśli zainstalujesz bmb po tej dacie, , jest bardzo prawdopodobne, że problem się nie pojawi. Sprawdź to za pomocą sposobu opisanego poniżej. Nie ma potrzeby instalowania łatki.

Most time NVIDIA Optimus cards run on Intel GPU. It is done for power saving. Nvidia GPU is used only when explicitly instructed to do so - by placing the optirun command in front of the program's name. When optirun exits it should immediately switch Nvidia GPU off and turn back to Intel GPU. It does not happen recently. Nvidia is not switched off. The system continues to run on Nvidia.

There's no power saving, computer becomes overheated, cooling fans are constantly spinning at max speed. Technically speaking, the issue is caused by the fact that nvidia_drm, nvidia_modeset i nvidia modules are not unloaded upon optirun termination.

When the system runs on Intel GPU, three modules are not used and are not loaded. All are loaded only when optirun starts running. And should be unloaded on optirun termination. Which doesn't happen.

Sprawdź czy system dotyczy także twojego systemu. Po uruchomieniu systemu, otwórz terminal i uruchom po kolei trzy komendy, one after another:

optirun --status
  Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.
optirun pwd
  /home/just
optirun --status
  Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

If after the last (third) command the Discrete video card is off, tak jak na powyższym przykładzie, to problem nie dotyczy tego systemu. Możesz pominąć tę sekcję.

If after the last (third) command the Discrete video card is on, to problem dotyczy tego systemu. Możesz go naprawić, ręcznie albo automatycznie. Poniżej opisano, jak to zrobić.

Ręczne wyłączanie Nvidii

Spróbujmy najpierw, wyłączyć kartę Nvidii ręcznie. To be sure that we're facing with the issue described here; three modules must be listed exactly in the same order like in this example:

sudo rmmod nvidia_drm nvidia_modeset nvidia
sudo tee <<<OFF /proc/acpi/bbswitch

The first command forces three modules to be unloaded. The second one switches Nvidia GPU off. Check Nvidia status again:

optirun --status
  Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

Let's run a bit more complicated test. It will switch Nvidia on and then back off, in one command:

optirun pwd && sleep 1 && sudo rmmod nvidia_drm nvidia_modeset nvidia && sudo tee <<<OFF /proc/acpi/bbswitch

This method may be used to switch Nvidia off by hand.

Automatyczne wyłączanie Nvidii

The method to solve the issue automatically was discussed in Arch Linux bugtracker here. It applies the same two commands seen in previous section.

The advantage of the method is that there's no need to enter any command by hand in terminal, with elevated privileges. Optirun turns to work normally, as usual, automatically switching Nvidia ON and OFF when it starts and exits.

The disadvantage is that you'll need to install a "homemade" package, unknown to regular Arch repos.

The patch for fixing missing power saving can be found at:

bumblebee-3.2.1-11-x86_64.pkg.tar.xz

Pobierz plik i zainstaluj za pomocą pacmana, like any other package:

sudo pacman -U /path/to/package/bumblebee-3.2.1-11-x86_64.pkg.tar.xz

Pakiet nie ma żadnych zależności. Podczas instalacji pojawią się trzy powiadomienia informacyjne. Można je zignorować.

Gdy zainstalujesz ten pakiet, pacman i pacmac pokażą ostrzeżenia o kolejnych aktualizacjach systemu. It may be safely ignored as well:

warning: bumblebee: local (3.2.1-11) is newer than community (3.2.1-10)

Ważne. Po instalacji pakietu, należy zrestartować komputer. Nie wystarczy wylogowanie-logowanie.

Zmiana ustawień NVIDIA Optimus

Możliwa jest zmiana ustawień NVIDIA, uruchamiając nvidia-settings za pomocą procesora graficznego NVIDIA

optirun -b none nvidia-settings -c :8

Komenda ta to jedyny sposób na uruchomienie nvidia-settings na komputerach obsługujących technologię Optimus. nvidia-x-server-settings Każda próba uruchomienia nvidia-settings z inną składnią nie powiedzie się.

Adjust menu to run NVIDIA settings

Once Bumblebee and proprietary NVIDIA drivers are installed, the menu entry to launch nvidia-settings utility is automatically created. It is called NVIDIA X Server Settings in the menu.

This menu entry is wrong for NVIDIA Optimus.

The menu is not configured correctly right after the installation. It executes the simple nvidia-settings command.

If you select NVIDIA X Server Settings menu entry with the default content (command), you will be adviced to run nvidia-xconfig utility, to fix the problem. Nigdy tego nie rób. The problem does not exist. Zobacz Ostrzeżenie by uzyskać więcej informacji.

If you want to run NVIDIA X Server Settings from menu, you have to edit the menu entry by hand, and replace the default incorrect command with the correct one.

From:

/usr/bin/nvidia-settings

To:

optirun -b none nvidia-settings -c :8

Ostrzeżenie

Nardzędzie nvidia-xconfig utility, wraz z Bumblebee. Nigdy nie uruchamiaj go na komputerach z Optimusem. Został on zaprojektowany dla kart NVIDIA i działa poprawnie tylko na pojedynczym GPU NVIDIA. Nie wykryje hybrydowych kart NVIDIA Optimus. To doskonały zabójca Bumblebee. Jeśli go uruchomisz, natychmiast popsujesz konfigurację Bumblebee.

Known Issues

Geforce GTX960m

When rebooting your computer might not start again. To solve that issue add acpi_osi="!Windows 2015" as a kernel parameter. See issue #764(comment) on github.

To make that change permanent in grub add in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi=\"!Windows 2015\""

and create grub config after with the command

sudo grub-mkconfig -o /boot/grub/grub.cfg

 

Użyte karty

The article was written and tested on three Nvidia Optimus video cards:

  • GeForce GT 555M
  • GeForce GT 650M
  • GeForce GT 750M

Nie był testowany na nowszych kartach Optimus, takich jak na przykład GF GTX 970M, for example. Są raporty o pomyślnej instalacji bumblebee na nowszych Optimusach, ale mogą wystąpić z nimi problemy nie przedstawione tutaj..

Other authors help to make the article better and add more cards to the list. Additions, corrections, know-how are very welcome and highly appreciated.

  • NVS 4200M
  • GeForce 820M
  • GeForce GTX 860M
  • GeForce 920M
  • GeForce 940M
  • GeForce 940MX
  • GeForce GTX 960M
  • GeForce GTX 970M

Remove Bumblebee

Assuming that Bumblebee and proprietary Nvidia driver were installed by following this guide, the steps to completely uninstall Bumblebee and Nvidia are as follows.

  1. Stop the running bumblebee service:
sudo systemctl stop bumblebeed

2. Disable bumblebee service from being started on next boot:

sudo systemctl disable bumblebeed

3. Delete all users from bumblebee group. If only the current user was added to it, he may be removed with:

sudo gpasswd --delete $USER bumblebee

4. Delete bumblebee group:

sudo groupdel bumblebee

5. Remove all packages that were installed for Bumblebee and Nvidia, along with their dependencies:

sudo pacman -Rcnsu bumblebee nvidia lib32-nvidia-utils lib32-virtualgl nvidia-settings bbswitch --noconfirm

6. Re-install xf86-video-intel without unneeded Bumblebee dependencies:

sudo pacman -Syu xf86-video-intel --noconfirm

7. Regenerate initramfs:

sudo mkinitcpio --preset linux

8. Shutdown the system:

sudo shutdown -h now

9. Done

 

Regards

Marzec 2016

(odwiedził 48,413 razy, 101 wizyt dzisiaj)

Przypnij na Pinterest

Udostępnij