fbcon - использовать устройство кадрового буфера Android/MSM для загрузочной консоли

Я пытаюсь использовать устройство с установленным Nexus 5 (набор микросхем MSM 8974) с Debian, работающим с X-сервером и консолью загрузки linux framebuffer. Я перекомпилировал ядро ​​молотка Android по умолчанию (с CONFIG_FB_MSM_MDSS=y а также CONFIG_FB_MSM=yи включенные опции для консоли кадрового буфера (назначить основной дисплей и использовать скомпилированные в шрифтах). Используя это ядро, я могу успешно загрузить Android, используя fastboot boot -c "console=tty0,115200 fbcon=font:VGA8x8" kernel-fbcon.imgОднако во время загрузки отсутствует консоль кадрового буфера, только логотип Google и анимация загрузки.

Я проверил, остановив платформу Android (stop) и используя корневую оболочку через ADB, чтобы попробовать разные вещи в фреймбуфере (/dev/graphics/fb0).

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

С помощью con2fbmap 1 0 при включенном экране не имеет никакого эффекта, и он не изменяет отображение и не отображает какой-либо текст, который находится на консоли tty0. Я также попытался запустить Xorg на дисплее с помощью команды FRAMEBUFFER=/dev/graphics/fb0 Xorg vt1, который запускается и завершается как обычно, без ошибок, однако на экране не отображается ничего, кроме очень короткой вспышки того, что отображалось на экране в последний раз, когда завершается X (ctrl+c в оболочке). Xorg настроен на использование драйвера fbdev по умолчанию.

Я подозреваю, что эти проблемы вызваны нестандартной реализацией устройства кадрового буфера MSM (для Nexus это находится в kernel_source/drivers/video/msm/mdss/mdss_fb.c). Многие новые устройства Android имеют эту проблему, поскольку устройства с кадровым буфером не работают должным образом.

Я хотел бы знать, возможно ли изменить драйвер кадрового буфера или настроить ядро ​​так, чтобы при загрузке устройства оно отображало консоль загрузки на кадровом буфере.

Спасибо всем, кто может помочь.

РЕДАКТИРОВАТЬ: Эта проблема кажется очень специфичным для Nexus 5. Другие устройства в серии Google Nexus, похоже, не имеют проблем с графикой кадрового буфера и загрузочными консолями.

2 ответа

На моем Nexus 4 у ​​меня была такая же проблема. Это решило это:

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

Проверьте ваши dts файлы для таких записей: 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;
+
 };
Другие вопросы по тегам