Pular para o conteúdo principal

Cold Boot do Weston Falha com EGL_NOT_INITIALIZED

Introdução

Se você substituir a área de trabalho padrão pelo Weston, poderá ver uma falha intermitente após um cold boot:

failed to initialize display
EGL error state: EGL_NOT_INITIALIZED (0x3001)

Um warm reboot às vezes funciona.

Esta página registra um caso confirmado e um diagnóstico funcional para que outras pessoas que encontrem os mesmos logs possam comparar os sintomas e dar continuidade. Não é uma afirmação de que toda imagem Seeed Jetson ou toda inicialização do JetPack 6 seja afetada.

Caso confirmado

reComputer Super J401 (Jetson Orin Nano Super) gravado com a imagem Seeed R36.4.4 (JetPack 6.2), usando Weston como compositor.

Problemas semelhantes de ordenação card0 / card1 com Weston também foram discutidos no NVIDIA Developer Forums para outras configurações de Jetson Orin + JetPack 6. Se você vir os mesmos logs em outro produto Orin da Seeed ou em uma imagem L4T R36.x, este FAQ ainda se aplica como ponto de partida — adicione detalhes na issue do GitHub vinculada abaixo.

Área de trabalho recomendada

Se você não precisar do Weston, permaneça na área de trabalho GNOME que vem com a imagem Seeed Jetson.

Os relatos até agora são sobre o Weston como compositor (frequentemente após desativar o GDM ou usar um modo quiosque/inicialização via serviço). O GNOME padrão é a solução prática usada no caso confirmado.

Sintomas

Nos logs confirmados:

  • Ligamento a frio (cold power-on): Weston falha com EGL_NOT_INITIALIZED.
  • Reinicialização suave/morna (soft/warm reboot): Weston pode iniciar.
  • Inicializações com falha frequentemente mostram o Weston usando /dev/dri/card0 vinculado a nvidia-drm / nv_platform, às vezes com Cannot find any crtc or sizes.
  • Inicializações bem-sucedidas frequentemente mostram o Weston usando /dev/dri/card1, com tegra_drm mantendo o outro nó.

Exemplo de trecho de falha:

using /dev/dri/card0
Loading module '.../gl-renderer.so'
failed to initialize display
EGL error state: EGL_NOT_INITIALIZED (0x3001)

O que os logs sugerem

A análise do BSP da Seeed em Linux_for_Tegra #50 aponta para uma interação de ordem de carregamento entre tegra_drm e nvidia-drm no Orin (ambos podem registrar minors de DRM). Não há garantia documentada de qual driver recebe o minor 0 (/dev/dri/card0).

Observado quando o Weston falhaObservado quando o Weston inicia
Weston abre /dev/dri/card0; esse nó costuma ser nvidia-drm / nv_platformWeston abre /dev/dri/card1; tegra_drm / host1x frequentemente mantém a outra placa

Cold boot vs warm boot pode alterar o tempo de detecção (probe), o que condiz com o comportamento intermitente. Isso pertence à pilha Weston-on-Tegra da NVIDIA, e não a um erro de gravação da placa-carregadora. A NVIDIA não publicou um aviso de correção dedicado para esse sintoma.

Se você realmente precisar usar Weston

  1. Prefira o GNOME a menos que o produto realmente exija Weston.
  2. Trate os problemas restantes de EGL/DRM com Weston como NVIDIA / upstream — publique no NVIDIA Developer Forums com os logs do Weston e a saída de dmesg | grep -i drm.
  3. Para comparar uma inicialização com falha e uma inicialização bem-sucedida:
# Which driver owns card0?
readlink -f /sys/class/drm/card0/device/driver
sudo udevadm info /dev/dri/card0
ls -l /dev/dri /dev/dri/by-path
sudo dmesg | grep -i drm

A Seeed não fornece um patch de BSP suportado que force a ordem de detecção do DRM. Soluções alternativas da comunidade (renomear nós em /dev/dri, temporização personalizada de modprobe) estão fora do escopo deste FAQ.

Se você reproduzir isso em outro SKU ou versão do L4T, comente em Linux_for_Tegra #50 com o hardware, a versão do L4T/JetPack e os comandos acima.

Recursos

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...