Ubuntu 14.04 LTS mit BumbleBee auf Lenovo Y580

Send to Kindle
Ubuntu 14.04 LTS mit BumbleBee

Ubuntu 14.04 LTS mit BumbleBee

Das Lenovo Y580 ist ein für Spieler konzipiertes Notebook. Neben einem Full-HD-Display und einer GeForce GTX 660M Nvidia-Grafikkarte mit 2 GB RAM (neben der Onboard-Grafikkarte) zeichnet es sich durch eine 1 TB große Festplatte aus. In einem zweiten Festplattenschacht ist standardmäßig eine 16 GB große SSD verbaut, die in Zusammenspiel mit dem vorinstallierten Windows 8 als Cache konfiguriert ist. Als Prozessor ist ein Intel i7 Quad-Core in der Maschine vorhanden, so dass das Notebook recht leistungsfähig ist.

Die eingebaute SSD war mir zu klein, weshalb sie einer größeren mit 256 GB weichen musste. Für die SSD steht ein kleiner Schacht für das Mini-Format zur Verfügung, so dass ich mich für eine entsprechende SSD von Crucial entschieden habe. Diese Platte habe ich für das Betriebssystem nebst aller Anwendungsprogramme vorgesehen. Da das den Platz der Platte aber nicht völlig beansprucht, bleibt hinreichend Platz übrig, auch noch diverse Daten aufzunehmen. Die 1 TB Harddisk soll für Musik und Fotos herhalten – da braucht es schon ein wenig mehr Platz.

Bei der Installation von Linux sind im Wesentlichen zwei Besonderheiten zu beachten. Das sind UEFI sowie der Umgang mit den zwei Grafikkarten, der Onboard- sowie der NVidia-Grafikkarte.

  1. Da das Notebook mit dem ganzen UEFI-Geraffel ausgerüstet und konfiguriert ist, muss man dieses ausschalten, da ansonsten keine Linux-Installation möglich ist. Hat man sich von diesem Ballast befreit, steht der Installation alternativer Betriebssysteme nichts mehr im Wege.
  2. Da Linux standardmäßig nicht zwischen den beiden Grafikkarten umschalten kann – Nvidia nennt das Optimus – habe ich mich für die Installation von BumbleBee entschieden. Wie das funktioniert, werde ich im Folgenden näher beschreiben.

Basis-Installation

Da ich BumbleBee nutzen wollte, um zur Laufzeit zwischen den Grafikkarten umschalten zu können, habe ich mich für ein möglichst aktuelles Ubuntu mit Langzeitsupport entschieden. Das ist die Version 14.04 LTS, die im April diesen Jahres, also gerade letzten Monat herausgekommen ist. Ich habe mir das Installationsimage von ububtuusers.de heruntergeladen, auf eine DVD gebrannt und war so für die eigentliche Installation gerüstet.

Wie von Ubuntu bereits bekannt, bootet das System von der DVD, erfragt die Zugangsdaten für das WLAN, um bereits während der Installation Sprachpakete und anderes mehr online laden zu können. Nach etwa 20 Minuten ist dieser Part der Installation geschafft. Es bietet sich an, das System jetzt nochmals manuell auf den aktuellsten Stand zu bringen. Ubuntu macht dies auch von sich aus selbst, allerdings kann dies einige Minuten dauern. Daher kurz und bündig via Kommandozeile:

$ sudo apt-get update
$ sudo apt-get upgrade

Da ich für Anpassungen an Konfigurationsdateien gerne vim benutze, habe ich den auch gleich mit installiert. Ebenso synaptic, da man dort eine schöne Übersicht zuzüglich Beschreibungen hat, um einzelne Pakete gezielt installieren oder löschen zu können.

$ sudo apt-get install vim-nox synaptic

Kaum zu glauben, aber wahr, in synaptic hat sich ein Fehler eingeschlichen. Das Programm ist träge wie Pudding. Da hilft es nur, den xapian-Index zu löschen.

$ sudo apt-get autoremove --purge apt-xapian-index
$ sudo apt-get autoremove --purge

Jetzt ist zwar die Schnellsuche weg, dafür funktioniert das Tool aber wieder zügig und zuverlässig.

Eigentlich könnte man nun mit der individuellen Paketauswahl fortfahren. Da ich aber nicht sicher war, ob mit der Installation/Konfiguration von BumbleBee alles sauber klappen würde, habe ich diesen Teil der Installation vorgezogen. Die Berichte im Internet sind da etwas zwiespältig. Sollte ich mein System zerlegen, habe ich wenigstens nicht allzu viel Arbeit investiert.

BumbleBee-Installation/Konfiguration

Zuerst ist BumbleBee selbst zu installieren.

$ sudo apt-get install bumblebee bumblebbe-nvidia primus

Nach einem Reboot habe ich versucht ein Programm mittels optirun zu starten, was jedoch nicht funktionierte. Die Fehlermeldung, die ich leider nicht notiert habe, murmelte etwas davon, die Nvidia-Grafikkarte nicht aktivieren zu können.

Ubuntu 14.04 LTS installiert standardmäßig den Nvidia-Treiber Version 304. ein Update auf 319 schafft Abhilfe.

$ sudo apt-get install nvidia-319

Ubuntu installiert hierauf nicht nur Version 319. Es wird gleich die 331 installiert. Das allein hat allerdings noch nicht den gewünschten Erfolg gebracht. Ursache war eine jetzt nicht mehr passende /etc/bumblebee/bumblebee.conf. Hier müssen noch die Pfade an die neue NVidia-Version angepasst werden. Meine bumblebee.conf sieht jetzt so aus:

# Configuration file for Bumblebee. Values should **not** be put between quotes
## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d
## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false
# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods
## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-331
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-331:/usr/lib32/nvidia-331
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-331/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Nach einem Reboot konnte ich nun beide Grafikkarten gleichzeitig nutzen.

BumbleBee in Aktion

BumbleBee in Aktion

Mit BumbleBee schafft man immerhin etwa 240 Frames/Sekunde, ohne gerade mal etwa 60 Frames/Sekunde. Je nach Auslastung der Maschine ist auch mehr drin. Ich habe schon bis zu 350 Frames/Sekunde messen können, was aber wohl eher ein akademischer Wert ist, da ansonsten nichts weiter lief. 280 Frames/Sekunde sind aber im „Normalbetrieb“ realistisch, denke ich.

Um Programme, die die NVidia nutzen sollen, komfortabel aus dem Unity-Launcher starten zu können, kann man sich entsprechende Konfigurationsdateien schreiben, die in

~/.local/share/applications/<progname>.desktop

abgelegt werden. Hier ein Beispiel für GIMP:

[Desktop Entry]
Version = 1.0
Type = Application
Name = GIMP Image Editor
GenericName = Image Editor
Comment = Create images and edit photographs (created for Bumblebee)
Exec = gimp-2.8 %U
TryExec = gimp-2.8
Icon = gimp
Terminal = false
Categories = Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla = GNOME
X-GNOME-Bugzilla-Product = GIMP
X-GNOME-Bugzilla-Component = General
X-GNOME-Bugzilla-Version = 2.8.10
X-GNOME-Bugzilla-OtherBinaries = gimp-2.8
StartupNotify = true
MimeType = image/bmp;image/g3fax;image/gif;image/x-fits;image/x-pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/x-gimp-gbr;image/x-gimp-pat;image/x-gimp-gih;image/tiff;image/jpeg;image/x-psp;application/postscript;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
X-Ubuntu-Gettext-Domain = gimp20
X-Ayatana-Desktop-Shortcuts = BumblebeeDisable
[BumblebeeDisable Shortcut Group]
Name = Launch with Bumblebee
Exec = optirun gimp-2.8 %U
TargetEnvironment = Unity
[BumblebeeEnable Shortcut Group]
Name = Launch without Bumblebee
Exec = gimp-2.8 %U
TargetEnvironment = Unity

Man kann sich das Ganze aber auch einfach machen und BumbleBee-UI installieren. Das Programm erstellt die entsprechenden Dateien automatsich. Außerdem ist ein Indikator-Applet im Paket enthalten, welches man nutzen kann, um sich anzeigen zu lassen, ob ein Programm BumbleBee nutzt oder nicht.

Da BumbleBee-UI nicht in den Ubuntu-Repsoitories enthalten ist, habe ich es mir im Quelltext besorgt und compiliert.

$ git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
$ cd bumblebee-ui
$ sudo ./INSTALL

Hinweis: Compiler etc. müssen natürlich bereits installiert sein. Da das aber selbstverständlich sein sollte, habe ich es nicht erwähnt.

Fazit

Um BumbleBee zu installieren habe ich ein wenig recherieren und die Dokumentation lesen müssen. Erfahrungsberichte, die ich im Internet habe finden können, beziehen sich durchgehend auf ältere Ubuntu-Versionen. Schlussletztlich hat aber alles gut geklappt.Mit Ausnahme des Paketes BumbleBee-UI habe ich ausschließlich Software aus den Ubuntu-Repositories verwendet.

Das Notebook läuft schnell und stabil.

Apropos: Während meine externe Maus zuverlässig funktionierte, hatte ich auf dem eingebauten Touchpad keine rechte Maustaste. Ich habe daher in /etc/modprobe.d eine Konfigurationsdatei für das Mausprotokoll angelegt. Die Datei enthält nur eine Zeile:

options psmouse proto=exps