본문 바로가기

IT/Linux

[Linux] 우분투 원격 데스크톱으로 접속 시에 검은 화면

sudo apt-get install libgtk2.0-dev

위에걸 설치하고부터 원격 데스크톱으로 접속 시에 검은 화면만 나왔다.

 

원인

  1. 환경 변수 충돌
    • XRDP 세션은 로그인할 때 DBUS_SESSION_BUS_ADDRESS, XDG_RUNTIME_DIR 같은 환경 변수를 통해 사용자 세션 버스를 찾습니다.
    • 그런데 libgtk2.0-dev 설치 과정에서 관련된 GTK/X11 구성 요소나 의존성 패키지가 갱신되면서, XRDP가 잘못된 세션 버스 주소를 참조하게 된 거예요.
    • 그 결과, 세션을 띄우는 과정에서 필요한 버스 연결이 실패하고 검은 화면만 보이게 됩니다.
  2. XRDP 세션 초기화 실패
    • XRDP의 startwm.sh 스크립트는 기본적으로 DBus와 XDG 런타임 디렉토리를 참조해 GNOME 같은 데스크톱 세션을 실행합니다.
    • 잘못된 변수가 남아 있으면 X 세션 프로세스가 뜨지 못하고 껍데기(검은 화면)만 남습니다.

해결 방법

/etc/xrdp/startwm.sh에 아래 두 줄을 추가하면 됩니다:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile

이렇게 하면 XRDP가 잘못된 DBus/XDG 경로를 쓰지 않고 새로 올바른 세션을 생성

 

  • unset DBUS_SESSION_BUS_ADDRESS 이 명령은 **DBUS_SESSION_BUS_ADDRESS**라는 환경 변수를 제거합니다. 이 변수는 응용 프로그램들이 D-Bus라는 메시지 시스템에 접속할 때 사용합니다. D-Bus는 프로그램들이 서로 통신할 수 있게 해주는 중요한 메커니즘입니다. 이 변수를 제거함으로써, 오래되거나 잘못된 연결 정보를 초기화합니다.
  • unset XDG_RUNTIME_DIR 이 명령은 **XDG_RUNTIME_DIR**이라는 환경 변수를 제거합니다. 이 변수는 임시 파일이나 소켓 등을 저장하는 디렉터리를 지정합니다. 그래픽 환경과 관련된 많은 프로그램들이 이 경로를 사용하는데, 원격으로 접속할 때 이 변수가 제대로 설정되지 않아 문제가 발생하는 경우가 있습니다.
  • . $HOME/.profile 이 명령은 **source $HOME/.profile**와 같은 의미이며, 사용자의 홈 디렉터리에 있는 .profile 파일을 현재 셸에서 다시 읽어 들여 실행합니다. .profile 파일은 사용자가 로그인할 때 자동으로 실행되는 스크립트입니다. 위에서 제거한 환경 변수들을 시스템이 정한 기본값으로 다시 설정해 주는 역할을 합니다.
$service xrdp restart

1. GNOME (데스크톱 환경)

  • 역할: 사용자가 직접 보는 그래픽 환경 (창 관리자, 패널, 설정 앱 등).
  • 기술적 특징:
    • GNOME 3 이후부터 Wayland 세션을 기본으로 채택 (Xorg도 지원하지만 보조적).
    • DBus, systemd-logind, XDG_RUNTIME_DIR 같은 런타임 환경 변수를 적극 활용.
    • 하드웨어 가속(OpenGL, Mutter compositor)에 의존도가 높음.
  • 장점: 모던하고 세련된 UI, 확장 기능 많음.
  • 단점: 무겁고, 네트워크/가상화/원격 환경에서 제약이 많음.

2. XRDP (원격 데스크톱 프로토콜 서버)

  • 역할: 원격 접속 시 클라이언트(윈도우 RDP, Remmina 등)에 X11 기반 화면을 전송.
  • 기술적 특징:
    • 기본적으로 Xorg 세션(X11) 에 최적화됨.
      • Xorg (X.Org Server)란?
        • 정식 이름: X Window System (X11) 의 구현체 중 하나
        • 역할: 운영체제 ↔ 그래픽 하드웨어 ↔ 응용 프로그램 사이에서 화면을 그려주는 서버
        • 즉, 앱이 “창을 띄워줘”, “이 버튼을 그려줘”라고 요청하면, Xorg가 그래픽 카드/모니터에 전달해서 화면에 출력합니다.
        • 리눅스/유닉스에서 수십 년간 표준이었고, 대부분의 데스크톱 환경(GNOME, KDE, Xfce 등)은 원래 Xorg 위에서 동작했어요.
    • X11은 네트워크 전송 친화적이라, 프레임 단위 전송이 단순하고 안정적.
    • Wayland는 원격 전송에 대한 표준화가 미비 → XRDP에서 제대로 지원하기 어려움.
  • 장점: 가볍고 네트워크 대역폭 효율적, Xfce·MATE 같은 Xorg 기반 환경과 궁합이 좋음.
  • 단점: Wayland 기반 데스크톱(GNOME, 최신 KDE 등)과 충돌 잦음.

'IT > Linux' 카테고리의 다른 글

[Linux] nvidia-smi No devices were found  (0) 2025.09.03
[Linux] Terminator 화면 분할  (1) 2024.07.12
[Linux] ubuntu에서 사라진 dock 살리기  (0) 2024.07.12
[Linux] vi replace all  (0) 2024.03.29
[Linux] GPU 이름 출력  (0) 2024.01.23