
Ich habe vor Kurzem auf meinem Apple Macbook-Laptop ein Linux-System von Grund auf neu erstellt. Allerdings hatte ich Schwierigkeiten, die Grafikhardware zu verstehen und herauszufinden, welche Kerneltreiberoptionen ich aktivieren muss.
Das LFS-System ist (derzeit) ein ziemlich minimales System, das in Bash bootet, aber weder das X Window-System noch eine DE hat. Der Laptop ist ein Macbook 2,1, das einen Intel GMA 950-Grafikchip enthält. Ich habe den meiner Meinung nach geeigneten Treiber im Kernel für diese GPU aktiviert, nämlich den i915-Treiber. Wenn ich jedoch nicht auch einige andere Optionen in Bezug auf „Framebuffer-Geräte“ aktiviere (die genauen Konfigurationsoptionen muss ich noch ermitteln), wird während des Bootens nichts auf dem Bildschirm gedruckt (obwohl der Bildschirm ein paar Mal einen anderen Schwarzton annimmt).
Kann mir jemand erklären, was hier vor sich geht? Wenn dieser i915-Treiber der richtige für die GPU ist, sollte das dann nicht ausreichen, damit das System die Terminalausgabe auf dem Bildschirm ausdrucken kann? Wenn nicht, was brauche ich dann außer dem i915-Treiber noch?
Auf demselben Laptop habe ich auch Trisquel installiert. Der Start in die LXDE-Umgebung funktioniert problemlos. Laut lsmod
ist der i915-Treiber der richtige und der Kernel scheint keine Framebuffer-bezogenen Treiber zu laden.
Ich bin verwirrt!
Antwort1
Ich habe selbst einige Nachforschungen dazu angestellt und die kurze Antwort scheint zu sein: Ja – ich brauche einen Framebuffer, um die Konsole zu aktivieren.
Laut dem Wikipedia-Artikel über dieLinux-KonsoleDie Konsole verfügt über zwei Modi: Textmodus und Framebuffer. Aus der Beschreibung geht hervor, dass der Textmodus recht einfach ist und möglicherweise nicht mit jeder Grafikhardware funktioniert. Bleibt also noch die Framebuffer-Konsole, die offensichtlich einen Framebuffer benötigt, um zu funktionieren.
Ich habe die Ausgabe lsmod
für die Kernelkonfiguration, in der es bei mir funktioniert hat, in eine Datei kopiert. Beim Weiterleiten an wird Folgendes angezeigt grep fb
:
$ less lsmod_LFS | grep fb
fbcon 49152 70
bitblit 16384 1 fbcon
fbcon_rotate 16384 1 bitblit
fbcon_ccw 16384 1 fbcon_rotate
fbcon_ud 20480 1 fbcon_rotate
fbcon_cw 16384 1 fbcon_rotate
softcursor 16384 4 fbcon_ud,fbcon_cw,fbcon_ccw,bitblit
cfbfillrect 16384 1 drm_kms_helper
cfbimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
cfbcopyarea 16384 1 drm_kms_helper
fb 65536 8 fbcon_ud,fbcon_cw,fbcon_ccw,bitblit,softcursor,i915,fbcon,drm_kms_helper
fbdev 16384 2 fb,fbcon
Es wurde also die Framebuffer-Konsole (fbcon) verwendet.
Die nächste Frage ist jedoch, warum ich das fbcon-Modul nicht mehr laden kann (was der Grund dafür zu sein scheint, dass nichts auf meinem Bildschirm gedruckt wird).