fbcon - Verwenden Sie ein Android / MSM-Framebuffer-Gerät für die Startkonsole

4060
Javacow

Ich versuche, ein gerootetes Nexus 5-Gerät (MSM 8974-Chipsatz) zu verwenden, auf dem Debian mit einem X-Server und einer Linux-Framebuffer-Boot-Konsole ausgeführt wird. Ich habe den Standard-Android-Hammerhead-Kernel (mit CONFIG_FB_MSM_MDSS=yund CONFIG_FB_MSM=y, und aktivierte Optionen für Framebuffer Console (Zuordnen zu primärer Anzeige und Verwendung in Schriftarten kompiliert) neu kompiliert. Mit diesem Kernel kann ich Android erfolgreich mit fastboot boot -c "console=tty0,115200 fbcon=font:VGA8x8" kernel-fbcon.imgbooten, jedoch während des Bootens keine Framebuffer-Konsole. Nur Google-Logo gefolgt von Boot-Animation.

Ich habe es getestet, indem ich das Android-Framework ( stop) gestoppt und eine Root-Shell über ADB verwendet habe, um verschiedene Dinge mit dem Framebuffer ( /dev/graphics/fb0) auszuprobieren .

# cat /dev/urandom > /dev/graphics/fb0 # does not affect the screen cat: write error: No space left on device 

Die Verwendung con2fbmap 1 0bei eingeschaltetem Bildschirm hat keine Auswirkungen und ändert weder die Anzeige noch zeigt der Text auf der Konsole tty0. Ich habe auch versucht, Xorg auf dem Display mit dem Befehl auszuführen FRAMEBUFFER=/dev/graphics/fb0 Xorg vt1, der normal ausgeführt wird und ohne Fehler abläuft. Der Bildschirm zeigt jedoch nichts an, außer ein sehr kurzes Aufblinken der auf dem Bildschirm zuletzt angezeigten Anzeige, wenn X beendet wird (Strg + c in der Schale). Xorg ist so konfiguriert, dass der Standard-Fbdev-Treiber verwendet wird.

Ich vermute, diese Probleme werden durch eine nicht standardmäßige Implementierung des MSM-Framebuffer-Geräts verursacht (für den Nexus ist dies in kernel_source / drivers / video / msm / mdss / mdss_fb.c). Viele neue Android-Geräte haben dieses Problem mit Framebuffer-Geräten, die nicht wie erwartet funktionieren.

Ich möchte wissen, ob es möglich ist, den Framebuffer-Treiber zu ändern oder den Kernel so zu konfigurieren, dass beim Booten des Geräts die Boot-Konsole im Framebuffer angezeigt wird.

Danke an alle, die helfen können.

BEARBEITEN: Dieses Problem scheint sehr spezifisch für den Nexus 5 zu sein. Andere Geräte der Google Nexus-Serie scheinen mit Framebuffer-Grafiken und Boot-Konsolen kein Problem zu haben.

1

2 Antworten auf die Frage

1
sub77

Überprüfen Sie Ihre dts-Dateien auf solche Einträge qcom,cont-splash-enabled:

--- a/arch/arm/boot/dts/msm8226-sec-matissewifi-r03.dtsi +++ b/arch/arm/boot/dts/msm8226-sec-matissewifi-r03.dtsi @@ -752,5 +752,5 @@ }; &dsi2lvds_wxga_vid_r01 { - qcom,cont-splash-enabled; + }; 
1
max1220

Auf meinem Nexus 4 hatte ich das gleiche Problem. Das hat es gelöst:

cat /sys/class/graphics/fb0/modes > /sys/class/graphics/fb0/mode