현재 화면 해상도가 파일로 저장되나요?

현재 화면 해상도가 파일로 저장되나요?

디스플레이 해상도를 가져오고 설정하기 위해 일련의 낮은 수준 함수를 실행하려고 하는데 사용된 해상도만 포함하고 이를 변경하는 데 사용할 수 있는 파일이 있는지 궁금합니다.

Xorg 설정 파일에서 내가 찾고 있는 것의 일부를 찾을 수 있다는 것을 알고 있지만 여기에는 활성 해상도만 포함되어 있지 않습니다.

지금까지 내가 찾은 모든 것은 Xorg 또는 Xorg를 사용해야 하며 xrandr파일을 읽고 쓰는 것만으로 이를 수행할 수 있는 방법을 찾고 싶습니다.

답변1

현재 해상도는 X 서버의 메모리에 저장됩니다. 파일에 저장되지 않습니다.

Xorg 설정 파일은 초기 구성만 포함하므로(전혀 존재하지 않을 수도 있음) 도움이 되지 않지만 해결 방법은 동적으로 호출될 수 있습니다.

(솔루션은 실제로 X 서버 로그에 나타나는 것 같지만 로그에 액세스할 수 있다는 보장은 없습니다. 예를 들어 서버에 원격으로 액세스하는 경우 - 그렇게 하더라도 로그를 구문 분석해야 합니다. 작업이 많고 오류가 발생하기 쉽습니다.)

부르다 xrandr. 그것이 바로 그 목적입니다. 이것이 없는 환경에 대해 걱정할 필요가 없습니다. 이는 표준 X11 클라이언트 배포판의 일부인 기본 도구입니다.

xrandr15년 이 넘은 오래된 시스템에서 실행해야 하는 경우 xdpyinfo20년 이상 표준 X11 클라이언트 배포판의 일부로 사용되어 온 시스템을 호출할 수 있습니다.

답변2

그래서 이전 답변을 시도한 후에 나는 확신하지만 완전히 만족하지는 않습니다. 나는 계속 연구했고 마침내 내가 찾던 것을 발견했습니다. 실제로 화면 해상도를 포함하는 파일 하나와 화면이 지원하는 모든 해상도(EDID로 지정)를 포함하는 또 다른 파일이 있습니다.

이러한 파일은 /sys/class/graphics프레임 버퍼에 해당하는 디렉터리(일반적으로 fb0)에서 찾을 수 있습니다. 관심 있는 파일을 mode(현재 해상도 포함) 및 modes(화면에서 지원하는 모든 해상도 포함)이라고 합니다.

해상도를 변경하려면 다음을 수행해야 합니다. echo your-resolution > mode, 여기서 는 your-resolution정확히 파일 줄 중 하나입니다 modes.

여기에 설명할 구체적인 예가 있습니다. 해상도를 VESA 표준으로 설정하고 싶어요. 내 화면에 허용되는 해상도는 다음과 같이 정의됩니다.

# 고양이 모드
D:1920x1080p-60
소형:1280x720p-50
소형:1280x720p-60
소형:1920x1080p-50
소형:1920x1080p-60
소형:640x480p-60
소형:720x480p-60
소형:720x576p-50
비디오: 640x480p-60

내가 해야 할 일은 echo V:640x480p-60 > mode화면 해상도를 640x480으로 변경하는 것뿐입니다.

관련 정보