맥북 외부 모니터 FHD 고정, EDID 오인식 진단과 해결

HDMI로 연결해 두 달 넘게 QHD(2560×1440)로 잘 쓰던 모니터가 어느 날 시스템 설정을 열어 보니 FHD(1920×1080)까지만 선택지에 나타났다. 케이블도 안 바꿨고 설정을 건드린 기억도 없었다. 화면은 멀쩡히 나오는데 해상도 목록만 반 토막 난 상태, 이런 경우 원인을 어디서부터 좁혀야 할까?
모니터 자체 고장이었다면 화면 출력 자체가 불안정하다는 신호가 먼저 남았을 텐데 그런 흔적은 없었다. 그래서 순서를 정해 하나씩 지워 나갔다. AI에게 증상을 설명하고 함께 원인 후보를 추렸다. 결과부터 말하면 모니터는 멀쩡했고 문제는 macOS가 모니터 정보(EDID, Extended Display Identification Data)를 잘못 읽는 데 있었다.
케이블부터 EDID까지, 원인 후보 6가지 좁히기
같은 증상을 만나면 진단 순서는 대체로 정해져 있다. 갑자기 QHD 옵션이 사라졌을 때 의심할 원인은 여섯 가지로 나뉜다.
- 케이블·어댑터 — USB-C 허브나 USB-C→HDMI 어댑터를 새로 바꾼 적이 있다면 가장 먼저 의심한다. 기존에는 USB-C→DisplayPort로 QHD 144Hz까지 나오다가 저가형 HDMI 1.4급 어댑터로 바뀌면 대역폭 자체가 부족해질 수 있다.
- 모니터가 자기 화면 사양을 알려주는 정보(EDID) 오인식 — 절전 복귀나 도킹 스테이션 사용, macOS 업데이트 뒤에 흔히 발생한다. 모니터는 QHD인데 macOS가 FHD 모니터로 인식하는 증상이다.
- HDMI 버전 제한 — 케이블이나 저가형 USB-C 허브가 실제로는 낮은 대역폭만 지원하는 경우다.
- 모니터 자체 설정 변경 — OSD 메뉴에서 입력 모드나 DisplayPort 버전, HDMI 호환 모드가 바뀌었을 가능성.
- macOS 설정 꼬임 — 최근 업데이트 이후 디스플레이 환경설정 파일이 손상됐을 가능성.
- 모니터·허브 하드웨어 고장 — 다른 PC에 연결해도 FHD까지만 나오면 모니터나 케이블 쪽 문제로 좁혀진다.
원인을 특정하려면 여섯 가지 정보를 먼저 확인한다. 맥북 모델과 macOS 버전을 확인하고 모니터 모델명과 연결 방식(USB-C→HDMI인지 USB-C→DisplayPort인지)을 적는다. 여기에 최근 변경 사항과 시스템 정보에 표시되는 현재 외부 모니터 해상도까지 더하면 여섯 가지 확인 항목이 갖춰진다. 이 경우는 맥북 프로(M3 Pro 계열로 추정, 애플 실리콘)에 27Q80 모니터를 HDMI로 연결한 상태였다.
제일 먼저 지운 건 macOS 설정 꼬임이었다. 디스플레이 환경설정 캐시를 지우고 재부팅해도 증상은 그대로였다. sudo rm /Library/Preferences/com.apple.windowserver.plist로 설정 자체를 초기화하는 방법까지 써 봤지만 결과는 같았다. 여기서 macOS 설정 문제 쪽 가능성이 크게 낮아졌다.
남은 후보는 케이블·어댑터, EDID 오인식, HDMI 버전 제한, 모니터 하드웨어 네 가지였다. 케이블은 바꾼 적이 없었고 같은 모니터를 다른 기기에 연결해도 QHD가 정상 출력됐다. 하드웨어 고장과 최근 변경 사항 쪽도 지워졌다. 남는 건 하나, EDID 오인식이었다.
진짜 원인: macOS가 모니터 정보(EDID)를 잘못 읽는다
시스템 정보 → 그래픽/디스플레이에서 확인한 값이 결정적이었다.
DisplayHints:
MaxW = 2560
MaxH = 1440
DisplayAttributes:
NativeFormatHorizontalPixels = 1920
NativeFormatVerticalPixels = 1080
HasHDMILegacyEDID = Yes
모니터가 보낸 정보(EDID) 안에는 2560×1440까지 가능하다는 최대값(MaxW/MaxH)이 분명히 들어 있다. 그런데 macOS가 이 모니터를 기본으로 인식하는 해상도(native format)는 1920×1080으로 잡혀 있었다. HasHDMILegacyEDID 항목이 Yes라는 표시까지 더하면 결론은 하나로 좁혀진다. macOS가 이 HDMI 입력을 구형(legacy) 방식의 FHD 모니터로 분류해 버린 상태였다.
EDID 안에 있는 QHD 타이밍 값을 풀어 보면 더 분명해진다.
- 2560×1440 @ 75.00Hz — 화면을 그리는 속도를 정하는 값(픽셀 클럭, Pixel Clock) 295.42 MHz
- 2560×1440 @ 59.95Hz — 픽셀 클럭 241.50 MHz
모니터가 QHD를 못 내는 게 아니었다. macOS가 이 모니터의 HDMI EDID를 잘못 분류해서 QHD를 사용자 선택지에 아예 올리지 않고 있을 뿐이었다. 대역폭 부족 의심도 접었다. 애플 공식 문서 기준으로 M3 Pro·M3 Max 맥북 프로는 HDMI로 8K 60Hz 또는 4K 240Hz급 외부 디스플레이까지 지원한다. QHD 60Hz는 이 스펙에서 한참 여유 있는 부하였다.
SwitchResX로 QHD 모드 강제 추가 시도와 실패
원인이 EDID 오인식으로 좁혀지면 다음 단계는 macOS 기본 설정에 없는 해상도를 직접 추가하는 작업이다. SwitchResX는 macOS에서 커스텀 해상도를 만들고 관리하는 도구다. 60Hz부터 추가하기로 했다. 75Hz는 나중이었다.
Resolution: 2560 × 1440
Refresh Rate: 59.95Hz
Timing: CVT-RB (Reduced Blanking)
Pixel Clock: 241.50 MHz
Horizontal: Active 2560 / Front Porch 48 / Sync Width 32 / Back Porch 80 / Total 2720
Vertical: Active 1440 / Front Porch 3 / Sync Width 5 / Back Porch 33 / Total 1481
Front Porch·Sync Width·Back Porch는 화면 신호가 실제 화면 밖에서 대기하는 여백 구간을 정하는 타이밍 값이다. 이 숫자들은 EDID 안에 이미 들어 있던 2560×1440 59.95Hz 타이밍을 그대로 옮긴 값이었다. 절차는 단순했다. SwitchResX 설치 → 27Q80-HDMI 선택(내장 디스플레이가 아니라 외부 모니터 항목) → Custom Resolutions → 값 입력 → 저장 → 재부팅 → 시스템 설정에서 2560×1440 선택.
60Hz가 먼저 안정적으로 붙는지 확인한 다음에야 75Hz를 시도하는 순서였다. 75Hz 쪽 타이밍도 EDID 안에 이미 들어 있었다.
Resolution: 2560 × 1440
Refresh Rate: 75.00Hz
Pixel Clock: 295.42 MHz
Horizontal: Active 2560 / Front Porch 38 / Sync Width 8 / Back Porch 34 / Total 2640
Vertical: Active 1440 / Front Porch 8 / Sync Width 32 / Back Porch 12 / Total 1492
다만 이 모니터와 macOS 조합에서는 75Hz보다 60Hz 쪽이 더 안정적으로 붙을 가능성이 높다는 판단이었다. 그래서 순서를 뒤집지 않고 60Hz를 먼저 고정하는 쪽을 지켰다. 터미널만으로 해결되지 않을까 하는 생각도 잠깐 했지만 displayplacer나 cscreen, BetterDisplay CLI 같은 도구는 macOS가 이미 인식한 해상도 목록 중에서 고르는 방식이다. 지금처럼 2560×1440 모드 자체가 생성되지 않은 상태에서는 효과가 제한적이다. 필요한 건 "존재하는 해상도 선택"이 아니라 "존재하지 않는 출력 모드 생성"이었고, 그래서 SwitchResX 같은 커스텀 모드 도구가 먼저였다.
여기서 첫 벽에 부딪혔다. 저장하려는 순간 이런 메시지가 떴다.
SwitchResX has detected that the display configuration has changed.
All unsaved preferences are thus invalid and have been discarded.
SwitchResX 자체 오류라기보다 HDMI 연결이 재협상되면서 macOS가 27Q80-HDMI를 다시 감지했다는 신호였다. 실제로 ioreg에는 EDIDChanged = Yes가 찍혀 있었다. 재시도 전에는 다음 다섯 가지를 먼저 맞췄다.
- Sidecar·AirPlay 디스플레이 완전히 끄기
- 시스템 설정의 디스플레이 창 닫기
- SwitchResX만 실행하고 다른 디스플레이 관련 창은 열지 않기
- HDMI 케이블을 건드리지 않기
- 커스텀 해상도 추가 후 창을 오래 열어 두지 말고 바로 저장(Command+S)
저장 후 재부팅하고 system_profiler SPDisplaysDataType으로 확인하는 순서까지 맞췄는데도 결과는 바뀌지 않았다. 값을 넣어도 실제 출력 모드는 그대로였다. 왜 그럴까. 애플 실리콘에서는 SwitchResX가 인텔 맥 시절처럼 존재하지 않는 물리 출력 타이밍을 자유롭게 주입하는 방식이 제한된다. SwitchResX 공식 지원 문서도 애플 실리콘에서 일부 디스플레이 관련 기능이 제한된다고 밝히고 있다. 지금 문제는 "2560×1440 선택지가 숨겨진 상태"가 아니라 "macOS 디스플레이 드라이버가 HDMI EDID를 보고 물리 출력 모드를 이미 1920×1080으로 확정한 상태"에 가까웠다. SwitchResX에 값을 넣는 것과 실제 출력 모드가 바뀌는 것은 별개의 일이었다.
BetterDisplay vs USB-C→DisplayPort 우회
SwitchResX가 막히면 남는 선택지는 두 갈래다. BetterDisplay로 한 번 더 시도하거나 HDMI 경로 자체를 버리는 것.
BetterDisplay는 애플 실리콘 환경에서 디스플레이 구성 보호와 커스텀 HiDPI 해상도, EDID 오버라이드와 숨겨진 주사율·색상 모드 접근 기능을 제공한다. 경로는 Settings → Displays → 27Q80-HDMI → System Configuration → Custom scaled resolutions에서 2560×1440을 추가하는 방식이다. 다만 BetterDisplay가 강한 영역은 스케일링과 HiDPI 표시 조정 쪽이다. 지금 문제처럼 물리 출력 타이밍 자체가 macOS에서 이미 잠긴 경우에는 한계가 있을 수 있다.
가장 확실한 방법은 HDMI를 아예 거치지 않는 것이다. 맥북 프로 → USB-C to DisplayPort 케이블 → 모니터 DisplayPort 입력으로 연결하면 지금 문제의 핵심인 HasHDMILegacyEDID = Yes 경로 자체를 통째로 우회한다. 모니터에 DisplayPort 입력이 있다면 가장 빠른 해결책이다.
SwitchResX가 왜 막혔는지까지 포함해 검토한 세 경로를 비교하면 이렇다.
| 방법 | 애플 실리콘 지원 | 난이도 | 부작용·한계 |
|---|---|---|---|
| SwitchResX 커스텀 해상도 | 제한적 — 물리 타이밍 강제 주입이 막히는 사례가 있음 | 중 — 수동 타이밍 값 입력 필요 | 저장 전 디스플레이 재감지로 설정이 폐기될 수 있음 |
| BetterDisplay | 부분 지원 — 스케일링·HiDPI 중심 | 중 — 메뉴 경로만 따라가면 됨 | 물리 출력 타이밍 자체는 보장하지 못함 |
| USB-C → DisplayPort 우회 | 완전 지원 — HDMI EDID 경로를 아예 거치지 않음 | 하 — 케이블만 교체 | 모니터에 DisplayPort 입력이 있어야 함 |
우회를 시도하기 전에 Sidecar부터 껐는지 다시 확인했다. 화면 미러링에 iPad가 물려 있으면 macOS가 디스플레이 구성을 다시 계산하면서 SwitchResX 설정이 또 폐기될 수 있어서다. 끄는 방법은 세 가지다. 제어 센터 → 화면 미러링 클릭 → iPad 선택 해제가 가장 빠르고, 시스템 설정 → 디스플레이에서 iPad/Sidecar Display 항목을 선택해 연결 해제하거나 사용 중지하는 방법도 있다. iPad 쪽에서 사이드바 하단 연결 해제 아이콘을 탭해도 된다. 셋 중 아무거나 하나로 끊으면 되고, 실제로 꺼졌는지는 뒤에 나올 system_profiler 출력으로 확인하면 된다.
결론: 확인 명령과 남은 숙제
어느 단계에서든 실제 적용 여부를 확인하는 명령은 하나다.
system_profiler SPDisplaysDataType
정상 적용됐다면 출력에 27Q80-HDMI: Resolution: 2560 x 1440처럼 나와야 한다. Sidecar가 꺼졌는지도 같은 명령으로 확인할 수 있다. 출력에 Sidecar Display / Connection Type: AirPlay / Virtual Device: Yes 항목이 없으면 이미 꺼진 상태다.
진단과 시도는 이 순서로 좁혀 간다.
- 케이블·연결 방식 확인
- 캐시·설정 초기화로 macOS 버그 배제
- EDID 값 실측으로 오인식 확정
- SwitchResX 시도 — 애플 실리콘에서는 물리 타이밍 주입 자체가 막힐 수 있음
- BetterDisplay 한 차례 더 시도
- 그래도 안 되면 USB-C→DisplayPort 우회
확인되지 않은 부분도 남아 있다. 실제로 우회 케이블을 꽂았을 때 QHD가 다시 나오는지, BetterDisplay 시도 결과가 어땠는지는 아직 검증하지 못했다. 다음에 할 일은 명확하다. USB-C→DisplayPort 케이블로 연결을 바꾼 뒤 같은 명령으로 해상도를 다시 확인하는 것.
재사용 가능한 규칙 하나는 남는다. 애플 실리콘 맥북에서 HDMI 커스텀 해상도 문제를 만나면 인텔 맥 시절의 SwitchResX 노하우가 그대로 통하지 않는다. 물리 타이밍 강제 주입이 제한되므로 SwitchResX보다 DisplayPort 우회를 먼저 시도하는 편이 시간을 아낀다.
같은 하드웨어 트러블슈팅 계열로 써멀 인터페이스 선택 기준을 다룬 글도 참고할 만하다.
아직 댓글이 없습니다.