- 그래픽카드: NVIDIA RTX 5060 Ti (GB206-A)
- 모니터: LG ULTRAWIDE 3440x1440
- 연결: HDMI 분배기/스플리터 사용
- 운영체제: HamoniKR (Ubuntu 24.04 기반)
- 데스크톱: XFCE, Cinnamon
- lightdm 로그인 화면은 보이지만 데스크톱 환경 로그인 후 화면이 검은색으로 표시
- 해상도 자동 변경: 시스템이 지속적으로 해상도를 59.97Hz, 60Hz로 변경 시도
- 분배기 EDID 제한: 분배기/스플리터로 인한 EDID 정보 제한으로 불안정한 해상도
- Cinnamon compositor 충돌: ForceCompositionPipeline 등 NVIDIA 옵션과 Mutter 충돌
- NVIDIA 드라이버: 모니터를
DFP-0
로 인식 - xrandr: 동일 모니터를
HDMI-0
으로 표시 - 설정 파일에서 잘못된 출력 장치 지정시 화면 출력 불가
- 분배기/스플리터 사용으로 모니터 EDID 정보 손상
- 시스템이 지원하지 않는 60Hz 해상도로 자동 변경 시도
- 30Hz로 제한하면 안정적 동작
lightdm 시작 → 데스크톱 환경 로딩 → EDID 재감지 → 해상도 자동 변경 시도
- 각 단계에서 "최적" 해상도로 변경하려는 자동 조정 발생
- 결과적으로 불안정한 30Hz → 60Hz → 30Hz 반복
파일: /etc/X11/xorg.conf.d/10-nvidia.conf
Section "Device"
Identifier "NvidiaCard"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "PrimaryGPU" "yes"
Option "AllowEmptyInitialConfiguration" "true"
Option "UseDisplayDevice" "DFP-0"
Option "TripleBuffer" "true"
Option "RenderAccel" "true"
Option "MetaModes" "DFP-0: 3440x1440_30 +0+0"
Option "ModeValidation" "NoMaxPClkCheck"
Option "ExactModeTimingsDVI" "true"
Option "Coolbits" "28"
Option "AllowIndirectGLXProtocol" "off"
EndSection
Section "Monitor"
Identifier "Monitor0"
HorizSync 30.0 - 90.0
VertRefresh 25.0 - 35.0
Option "PreferredMode" "3440x1440_30"
Option "DPMS" "true"
Modeline "3440x1440_30" 174.50 3440 3488 3520 3600 1440 1443 1453 1474 -hsync +vsync
EndSection
Section "Screen"
Identifier "Screen0"
Device "NvidiaCard"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-0: 3440x1440_30 +0+0"
Option "ConnectedMonitor" "DFP-0"
SubSection "Display"
Depth 24
Modes "3440x1440_30"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
파일: /etc/lightdm/lightdm.conf
[Seat:*]
xserver-command=X -core
minimum-vt=7
display-setup-script=/home/사용자명/nvidia-issue/setup-display.sh
스크립트 파일: /home/사용자명/nvidia-issue/setup-display.sh
#!/bin/bash
export DISPLAY=:0
# NVIDIA 설정 재적용
nvidia-settings --load-config-only
# DFP-0으로 NVIDIA가 인식하므로 nvidia-settings으로 설정
nvidia-settings -a "[gpu:0]/GPUScaling=0"
nvidia-settings -a "[DPY:DFP-0]/Dithering=0"
# 로그 기록
echo "$(date): Display set to 3440x1440@30Hz" >> /tmp/display-setup.log
파일: /home/사용자명/.config/autostart/display-fix.desktop
[Desktop Entry]
Name=Display Resolution Fix
Comment=Force 3440x1440@30Hz resolution
Exec=/home/사용자명/nvidia-issue/maintain-display.sh setup
Icon=preferences-desktop-display
Type=Application
X-GNOME-Autostart-enabled=true
NoDisplay=true
파일: /home/사용자명/nvidia-issue/maintain-display.sh
#!/bin/bash
# NVIDIA RTX 5060 Ti + LG ULTRAWIDE 3440x1440@30Hz 유지 스크립트
export DISPLAY=:0
# 함수: 현재 해상도 확인
check_resolution() {
local current_mode=$(xrandr | grep "HDMI-0 connected" | grep -o "[0-9]*x[0-9]*")
local current_rate=$(xrandr | grep "HDMI-0 connected" -A1 | grep "\*" | grep -o "[0-9]*\.[0-9]*")
echo "현재 해상도: $current_mode @ ${current_rate}Hz"
if [[ "$current_mode" == "3440x1440" ]] && [[ "${current_rate%.*}" == "29" ]]; then
return 0 # 정상
else
return 1 # 비정상
fi
}
# 함수: 30Hz 해상도 설정
set_30hz_resolution() {
echo "$(date): 3440x1440@30Hz 해상도 설정 중..."
xrandr --output HDMI-0 --mode 3440x1440 --rate 29.99
sleep 1
if check_resolution; then
echo "$(date): 해상도 설정 완료"
return 0
else
echo "$(date): 해상도 설정 실패"
return 1
fi
}
# 메인 실행부
case "${1:-setup}" in
"setup")
echo "=== NVIDIA 디스플레이 설정 초기화 ==="
set_30hz_resolution
;;
"check")
echo "=== 현재 디스플레이 상태 확인 ==="
check_resolution
xrandr | head -5
;;
"force")
echo "=== 강제 해상도 복원 ==="
set_30hz_resolution
;;
*)
echo "사용법: $0 {setup|check|force}"
echo " setup : 초기 해상도 설정"
echo " check : 현재 상태 확인"
echo " force : 강제 해상도 복원"
;;
esac
# 강제 해상도 복원
/home/사용자명/nvidia-issue/maintain-display.sh force
# lightdm 재시작
sudo systemctl restart lightdm
# 현재 상태 확인
/home/사용자명/nvidia-issue/maintain-display.sh check
# 간단한 해상도 확인
xrandr | head -3
- NVIDIA 드라이버:
DFP-0
(Digital Flat Panel-0) - xrandr:
HDMI-0
(HDMI 포트 인식) - 실제로는 같은 물리적 연결이지만 서로 다른 식별자 사용
- 60Hz: 이론적으로 더 부드러운 화면, 하지만 분배기 환경에서 불안정
- 30Hz: 분배기 대역폭 제한에 안정적으로 동작, GPU 연산 작업에는 충분
lightdm 시작(30Hz) → 로그인(60Hz 시도) → 스크립트 복원(30Hz) →
데스크톱 로딩(60Hz 시도) → 자동시작 복원(30Hz) → 안정화
- ✅ lightdm 로그인 화면 정상 표시
- ✅ XFCE 데스크톱 환경 정상 작동
- ✅ Cinnamon 데스크톱 환경 정상 작동
- ✅ 3440x1440@30Hz 해상도 안정적 유지
- ✅ 자동 해상도 변경 방지
이 설정은 NVIDIA RTX 5060 Ti와 HDMI 분배기/스플리터 환경에서 LG ULTRAWIDE 모니터를 사용하는 경우에 특히 효과적입니다.