내 그래픽 카드, 드라이버, 모니터 및 xserver가 적절한 해상도를 언제 어떻게 협상했습니까? 장치에서 지원되는 목록을 가져오는 방법이 있습니까?

내 그래픽 카드, 드라이버, 모니터 및 xserver가 적절한 해상도를 언제 어떻게 협상했습니까? 장치에서 지원되는 목록을 가져오는 방법이 있습니까?

나는 KDE나 GNOME이 연결된 모니터와 그래픽 카드가 지원할 수 있는 해상도를 어떻게 결정하는지 알아내려고 노력했습니다. 이 질문에 대해 2가지 시나리오가 있습니다. 제가 이해한 바에 따라 프로세스를 설명하려고 노력할 것입니다. 제가 틀렸다면 지적해주세요.

grub으로 부팅하면 그래픽 드라이버나 xserver가 없습니다. grub은 프레임버퍼가 포함된 부팅 메뉴를 표시합니다. 이때 grub은 모니터에서 EDID를 읽고 적절한 해상도를 선택합니다. 그렇죠? grub으로 부팅할 때 항상 "c"를 눌러 grub 명령줄에 들어가서 videoinfo 명령을 사용하여 모니터에서 지원되는 해상도를 얻을 수 있다는 것을 알고 있습니다. 이 명령이 모니터 EDID에서 읽히나요? "EFI GOP 드라이버"는 그래픽 카드용 임시 드라이버인가요? 이 과정에서 그래픽 카드의 역할은 무엇입니까? 그래픽 카드가 협상 과정에 있었나요? 그렇다면 Grub은 그래픽 카드에 지원되는 해상도를 어떻게 알게 되었습니까?

데스크탑으로 부팅합니다. 이제 xserver가 있고 xrandr 명령을 사용하여 비디오 카드에 지원되는 해상도를 표시할 수 있습니다. 하지만 xserver는 모니터와 비디오 카드 모두에서 지원되는 해상도를 어떻게 결정합니까? 모니터에 지원되는 해상도를 얻는 데 사용할 수 있는 명령줄 도구가 있습니까? 시나리오 1에서는 videoinfo 명령으로 1024x768이 지원되는 것을 볼 수 있지만 grub에서 GFXMODE=1024x768을 설정하면 grub 메뉴가 화면 오른쪽에 표시되고 auto는 괜찮습니다. 어떻게 이런일이 일어 났습니까? 시나리오 2에서는 일부 해상도가 설정되면 바탕 화면이 화면 중앙에 나타나지 않습니다. 이유는 시나리오 1과 같나요?

그런데 저는 VGA 및 HDMI 인터페이스가 있는 모니터를 사용하고 있었는데, 제가 만난 문제는 VGA 인터페이스를 사용할 때만 발생했습니다. OS는 커널 4.19의 debian10이었습니다.

또한 read-edid 및 edid-decode를 사용하여 EDID를 읽으려고 시도했지만 출력이 충분히 정확하지 않은 것 같습니다. 최소 1920x1080은 목록에 없습니다. 때때로 get-edid가 모니터에서 정보를 읽지 못하는 경우가 있습니다.

관련 정보