TechBlog: Kernel kompilieren für PAE / NVIDIA-Treiber
Für ein Projekt (Blogeintrag dazu wird später folgen) benötige ich eine zweite Grafikkarte. Da hierbei der für Arbeitsspeicher zu Verfügung stehende Adressraum sofort schrumpft (insgesamt sind es bei 32Bit 4GB) habe ich mich nach einem Ausweg umgeschaut und bin auf Physical Addresse Extension (PAE) gestoßen.
Damit kann man sogar bis zu 64GB ansteuern - man hat also genug Luft nach oben. Leider ist PAE im linux-generic-* Kernel-Package von Ubuntu nicht aktiviert. Anders ist das bei der Server-Version. Möchte man PAE schnell einmal testen, kann man also das linux-server-*-Package installieren. Dieses ist allerdings nicht gerade für den Desktop-Betrieb optimiert und somit sehr langsam.
Was bleibt ist das Neukompilieren des Kernels. Dies ist mittlerweile sehr einfach, wenn man weiß, wie es geht, und das erfährt man zum Beispiel hier: Enabling PAE on a 32 bit Ubuntu Desktop supporting up to 64 GB.
Allerdings gabs anschließend beim Installieren der Kernels folgenden Fehler:
run-parts: executing /etc/kernel/postinst.d/dkms
run-parts: executing /etc/kernel/postinst.d/nvidia-common
run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 20
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.28.10-mykernel.postinst line 1186.
dpkg: Fehler beim Bearbeiten von linux-image-2.6.28.10-mykernel (?install):
Unterprozess post-installation script gab den Fehlerwert 2 zurück
Fehler traten auf beim Bearbeiten von:
linux-image-2.6.28.10-mykernel
Dies liegt nun, wie sich herausgestellt hat, an den proprietären NVIDIA-Treibern, die ich aktiviert hatte. Gelöst habe ich es, indem ich auch die Grafiktreiber selbst kompiliert habe. Wie dies funktioniert, kann man hier nachlesen: NViDIA 185.18 Drivers in Ubuntu.
Nach der Installation der kompilierten Treiber also den Linux Kernel neu kompilieren. Anschließend muss dafür gesorgt werden, dass der neue Kernel auch die selbstgebauten Treiber verwendet, sonst gibt der X-Server beim Booten einen Fehler. Deshalb ist der Hinweis auf der folgenden Seite wichtig: Treiber für mehrere Kernelversionen installieren (Kernelupdate).
Hat man dies alles gemacht, sollte es funktionieren.
- Kommentar schreiben