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.