이 글은 버그 리포트입니다.
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 초기화 자체가 실패합니다.
재현 절차
- TOPST D3-G Ubuntu 22.04 데스크톱 이미지로 정상 부팅 확인
- sudo apt update && sudo apt upgrade (또는 unattended-upgrades 자연 발생)로 mesa 관련 패키지가 상위 point release로 업그레이드됨
- 재부팅
- 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 빌드로 덮어써짐) — 실패