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;
+
};