fbcon - Use o dispositivo framebuffer Android / MSM para o console de inicialização

1

Eu estou tentando usar um dispositivo Nexus 5 (msm 8974 chipset) enraizado com o Debian rodando com um servidor X e console de boot linux framebuffer. Eu recompilei o kernel hammerhead padrão do Android (com CONFIG_FB_MSM_MDSS=y e CONFIG_FB_MSM=y , e habilitei opções para o framebuffer console (atribua a exibição primária e use compilado em fontes). Usando este kernel, eu posso inicializar o Android com sucesso usando fastboot boot -c "console=tty0,115200 fbcon=font:VGA8x8" kernel-fbcon.img , no entanto, durante a inicialização, não há console de framebuffer, somente o logotipo do Google seguido por animação de inicialização.

Eu testei parando o framework Android ( stop ) e usando um shell de root via ADB para tentar várias coisas diferentes no framebuffer ( /dev/graphics/fb0 ).

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

Usar con2fbmap 1 0 enquanto a tela está ligada não tem efeito, e isso não altera a exibição ou mostra qualquer texto que esteja no console tty0. Eu também tentei rodar o Xorg no display com o comando FRAMEBUFFER=/dev/graphics/fb0 Xorg vt1 , que roda e termina como normal sem erros, porém a tela não exibe nada exceto um breve flash do que foi exibido na tela por último quando X termina (ctrl + c no shell). O Xorg está configurado para usar o driver fbdev padrão.

Eu suspeito que esses problemas são causados por uma implementação não-padrão do dispositivo de framebuffer do MSM (para o Nexus isso está em kernel_source / drivers / video / msm / mdss / mdss_fb.c). Muitos dispositivos Android novos apresentam esse problema com dispositivos framebuffer que não funcionam conforme o esperado.

Gostaria de saber se é possível modificar o driver framebuffer ou configurar o kernel para que, quando o dispositivo inicializar, ele exiba o console de inicialização no framebuffer.

Obrigado a qualquer um que possa ajudar.

EDITAR: Esse problema parece muito específico para o Nexus 5. Outros dispositivos da série Google Nexus parecem não ter problemas com gráficos framebuffer e consoles de inicialização.

    
por Javacow 05.01.2015 / 13:09

2 respostas

1

Verifique seus arquivos dts para essas entradas: 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;
+
 };
    
por 20.03.2015 / 12:05
1

No meu Nexus 4, tive o mesmo problema. Isso resolveu:

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

    
por 02.03.2016 / 23:45