Ubuntu 22.04 mesa 정기 보안 업데이트 후 재부팅하면 GNOME(EGL) 전체가 죽습니다

이 글은 버그 리포트입니다.

on

사용 보드

D3-G

보드 이미지 또는 펌웨어

Ubuntu

보드 이미지 또는 펌웨어 버전

Ubuntu 22.04.5 LTS (jammy)

사용자 PC 또는 빌드 환경

기타 Linux

사용자 PC 운영체제 버전

Debian 13

SDK/BSP 버전

TOPST BSP v1.3.0 (추정 — 정확한 버전 마킹이 이미지에 없어 확실친 않음, meta-topst-bsp 저장소 최신 태그 1.3.0-r01 기준)

기술 분야

기타

기타 기술 분야

그래픽/디스플레이 (Mesa/EGL/GBM, PowerVR 드라이버)

발생 빈도

항상 발생

문제 영향도

기능을 전혀 사용할 수 없음

문제 요약

apt의 정기 보안 업데이트로 mesa 관련 패키지(libgbm1, libegl-mesa0, libgl1-mesa-dri, libglx-mesa0, libglapi-mesa)가 23.2.1-1ubuntu3.1~22.04.3 → .4로 업그레이드된 뒤 재부팅하면, GNOME(gdm/gnome-shell/mutter)이 Wayland/Xorg 세션 둘 다 기동에 실패합니다. 화면엔 커서만 깜빡이는 상태로 멈춥니다.

원인은 TOPST 이미지의 mesa가 PowerVR Gallium 드라이버 및 GBM/EGL 확장 패치가 다수 적용된 커스텀 빌드인데 (meta-topst-bsp의 recipes-graphics/mesa/mesa/tcc805x/ 참고, 59개 패치, 그중 0018-gbm-add-gbm_bo_blit.patch 등), 패키지 이름/버전 문자열이 vanilla Ubuntu mesa와 동일하게 되어 있어서 unattended-upgrades가 이를 "평범한 점 릴리스 업데이트"로 인식해 커스텀 빌드를 vanilla 빌드로 조용히 덮어씁니다. 이 패치된 mesa 없이는 PowerVR DRI 드라이버(tccdrm_dri.so/pvr_dri.so)가 DRI_Mesa extension을 찾지 못해 EGL 초기화 자체가 실패합니다.

재현 절차

  1. TOPST D3-G Ubuntu 22.04 데스크톱 이미지로 정상 부팅 확인
  2. sudo apt update && sudo apt upgrade (또는 unattended-upgrades 자연 발생)로 mesa 관련 패키지가 상위 point release로 업그레이드됨
  3. 재부팅
  4. gdm이 Wayland/Xorg 세션 모두 기동 실패

실행한 명령 또는 코드

sudo apt update && sudo apt upgrade
sudo reboot
journalctl -b 0 | grep -iE "DRI_Mesa|EGL"

기대한 결과

정기 보안 업데이트를 받고 재부팅해도 GNOME 데스크톱이 평소처럼 정상 기동해야 합니다.

실제 결과

gdm이 Wayland 세션 기동 시도 → 실패 → Xorg 폴백 시도 → 역시 실패. 화면엔 커서만 깜빡이고 아무것도 뜨지 않음.

오류 로그

did not find extension DRI_Mesa version 1
failed to bind extensions
Failed to setup: The GPU /dev/dri/card0 chosen as primary is not supported by EGL.

이미 시도한 방법 또는 우회 방법

  • mesa 관련 5개 패키지(libgbm1, libegl-mesa0, libgl1-mesa-dri, libglx-mesa0, libglapi-mesa)를 dpkg로
    23.2.1-1ubuntu3.1~22.04.3으로 다운그레이드 → 그래도 실패 (dpkg 버전 문자열은 같아도 실제 파일(build-id,
    gbm_bo_blit 심볼)이 vanilla 빌드라 원인 미해결)
  • 예전 이미지에서 그대로 남아있던 실제 벤더 패치 libgbm.so/libglapi.so 파일로 직접 교체 → 정상 동작 확인
  • 이후 재부팅 후에도 정상 동작 확인
  • 재발 방지를 위해 관련 mesa 패키지 apt-mark hold 처리

정상 동작했던 이전 버전

mesa 23.2.1-1ubuntu3.1~22.04.3 (커스텀/벤더 패치 빌드) — 정상, mesa 23.2.1-1ubuntu3.1~22.04.4 (apt로 받은 vanilla 빌드로 덮어써짐) — 실패

요청

PowerVR 패치가 적용된 mesa 빌드를 vanilla Ubuntu mesa와 다른 패키지 이름 또는 버전 접미사 (예: 23.2.1-1ubuntu3.1~22.04.3+topst1)로 패키징해주시면 apt가 실수로 덮어쓰는 일을 막을 수 있을 것 같습니다.
(다른 PowerVR 기반 Yocto BSP인 meta-ti는 mesa-pvr이라는 별도 레시피명을 씁니다.)

감사합니다!
바로 확인 후 Packaging 변경하도록 하겠습니다.