테스트환경 : Debian linux(데비안), KDE
X window의 설정 메뉴에 없는 설정으로 화면 해상도를 변경하는 법.
설정에 1600x900 해상도가 없어서 직접 추가해보게 되었다.
1. cvt명령으로 원하는 해상도의 modeline을 계산한다.
$ cvt 1600 900
아래와 같은 결과가 출력된다.
이 출력 결과를 잠시 다른 곳에 복사해 둔다.
1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
modeline에서 각각의 수치는 video timing에 관련된 것이고 아래와 같다.
이름, pixelclock, hdisp, hsync-start, hsync-end, htotal, vdisp, vsync-start, vsync-end, vtotal
(관련 내용은 http://www.arachnoid.com/modelines/ 참고.)
(pixelclock는 초당 뿌려줄 수 있는 픽셀 수)
2. xrandr명령으로 현재 디스플레이 정보를 본다.
$ xrandr
아래 결과가 출력되는데, xxxx connected 라는 부분이 있다.
디스플레이 장치마다 다르게 나오므로 이 부분의 이름을 기억해 둔다.
Screen 0: minimum 320 x 200, current 1360 x 768, maximum 8192 x 8192
xxxx connected primary 1360x768+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
1920x1080 59.93 +
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 59.80* 59.96
1152x864 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
3. xrandr의 newmode와 addmode로 추가한다.
newmode에서 1번에서 복사한 modeline수치들을 붙여넣는다.
(xxxx는 2번에서 확인한 이름)
$ xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
$ xrandr --addmode xxxx 1600x900_60.00
다시 xrandr를 쳐서 확인해 보면 방금 설정한 해상도가 추가되어 있는 것을 볼 수 있다.
해상도를 적용하려면 xwindow의 디스플레이 설정 메뉴에서 설정해도 되고, 터미널에서도 할 수 있다.
$ xrandr --output xxxx --mode 1600x900_60.00
그러니 이 설정은 컴퓨터를 재부팅하면 초기화된다.
아래와 같이 쉘스크립트로 작성해 두고 xwindow시작 시 자동으로 실행되게 하면 편하다.
(x 시스템마다 다르므로 별도 설정)
#!/bin/sh
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --addmode xxxx 1600x900_60.00
xrandr --output xxxx --mode 1600x900_60.00