- 리눅스에서 모니터 문제로 xorg.conf를 아래와 같이 바꾸었습니다.
Section "Monitor"
...
ModeLine "1920x1200" 154.0 1920 1968 2000 2100 1200 1203 1209 1222 -hsync +vsync
Gamma 0.9
...
EndSection
Section "Screen"
...
Option "NoLogo" "True"
Option "ModeValidation" "NoDFPNativeResolutionCheck"
SubSection "Display"
Depth 24
Modes "1920x1200" "1920x1080" "1600x1200" "1280x1024" "1280x768" "1024x768" "800x600"
EndSubSection
EndSection - DPI 문제
xorg는 displaysize로 DPI를 정합니다.
본인의 모니터는 PBM-240W로 제원상 수평 518.4 mm이며, 수직 324.0 mm으로,
xorg.conf의 Section "Monitor" 에 다음과 같이 기록합니다.
Section "Monitor"
...
DisplaySize 518.4 324.0
...
EndSection
그러나Nvidia社의 드라이버를 설치하여 사용하면 DisplaySize 옵션에 추가로 DPI 옵션을 사용할 수 있습니다.
Section "Device"
Driver "nvidia"
Option "UseEdidDpi" "false"
Option "DPI" "96 x 96"
...
EndSection
참고로 DPI 옵션과 DisplaySize옵션을 같이 사용하면 DisplaySize는 무시됩니다.
본인의 모니터에서 Nvidia社의 드라이버를 설치하고 위의 DisplaySize, DPI 옵션을 설정하고 X윈도우를 띄우면 다음과 같이 보입니다.
$ xdpyinfo | grep -B1 dot
dimensions: 1920x1200 pixels (508x318 millimeters)
resolution: 96x96 dots per inch
실제 모니터 크기가 다르게 인식됩니다. 실제 픽셀 크기는 0.270 mm X 0.270 mm인데...
참고로 DisplaySize 옵션만 적용하면 다음과 같으며,
$ xdpyinfo | grep -B1 dot
dimensions: 1920x1200 pixels (813x455 millimeters)
resolution: 60x67 dots per inch
X윈도우(그놈)에서 DPI 해상도를 96으로 맞추면 제대로 보이나 로그인창의 폰트가 작게 보여 불편합니다.
Option "DPI" "96 x 96" 해야 로그인창의 폰트가 맞게 보입니다. - 최근의 xorg-xserver는 type1 font module 대신에 freetype을 사용하므로
# nvidia-xconfig가 실행되고나서 xorg.conf에 type1 module설정이 남아있으면
주석 처리 # 합니다.
# Load "type1"
데비안
- 저장소에 커널에 맞게 만들어진 nvidia 모듈이 있으면 간단히 설치하고,
없으면 module-assistant로 직접 소스 패키지로 모듈을 만들어 설치하거나,
Nvidia 회사의 설치파일을 이용합니다.
먼저 /etc/apt/sources.list에 contrib non-free 추가후 update- 배포판 커널을 사용중이고, 저장소에 커널에 맞게 만들어진 nvidia 모듈이 있으면 다음과 같이 합니다.
# uname -r
# apt-get install nvidia-kernel-$(uname -r)
# apt-get install nvidia-glx nvidia-settings nvidia-xconfig
# nvidia-xconfig - 소스패키지로 설치후 모듈을 직접 만들어 설치
module-assistant 설치
# apt-get install module-assistant
# m-a update
# m-a prepare
설치된 gcc와 커널을 컴파일한 gcc 버전이 맞는지 확인
# cat /proc/version
# ls -l /usr/bin/gcc
gcc 버전이 맞지 않으면 다음의 방법과 같이 바꾸어 줍니다.
# ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc
# apt-get install nvidia-kernel-common nvidia-settings nvidia-xconfig
# m-a autoinstall nvidia
이제 nvidia-glx 설치
# apt-get install nvidia-glx
# nvidia-xconfig - Nvidia회사의 드라이버를 직접 설치시
설치전에 xorg가 xserver-xorg-video-vesa나 nv를 사용하여야 합니다.
설치 전에 다음을 확인합니다.
* development tools like make and gcc are installed
* the linux-headers package matching the installed Linux kernel is installed
* the pkg-config and xserver-xorg-dev packages are installed
* the nvidia-glx package has been uninstalled with the --purge option and the file /etc/init.d/nvidia-glx does not exist.
추가로 libc6-dev가 필요하므로 설치되어있는지 확인합니다.
따라서,
설치 전에 다음이 설치되어 있어야 합니다.
커널에 맞는 linux-headers-$(uname -r) make gcc pkg-config xserver-xorg-dev libc6-dev
다음과 같이 설치합니다.
# apt-get install linux-headers-2.6.18-6-k7 make gcc pkg-config xserver-xorg-dev libc6-dev- (참고)
module-assistant 설치후 m-a prepare하면 gcc와 커널에 맞는 linux-headers가 설치됩니다. 추가로 build-essential도 설치됩니다.
# apt-get install module-assistant
# m-a update
# m-a prepare
이제 나머지 필요한 패키지 설치
# apt-get install pkg-config xserver-xorg-dev
gcc확인
$ cat /proc/version 및 ls /usr/bin/gcc -l 하여 커널을 컴파일한 gcc와 설정되어 있는 버전이 같은지 확인합니다.
다르면 다음과 같이 맞게 고치거나
# mv /usr/bin/gcc /usr/bin/gcc.backup.00
# ln -s /usr/bin/gcc-4.1 /usr/bin/gcc
또는, #export CC=gcc-XXX하여 XXX에 알맞은 gcc 버전을 기록합니다.
X윈도우를 빠져나온 후 (또는 Ctrl + Alt + F1)
# /etc/init.d/gdm stop
# sh NVIDIA-Linux-x86-100.14.19-pkg1.run
# /etc/init.d/gdm start
참고)- nvidia 드라이버를 제거하려면 nvidia-installer --uninstall합니다.
- xorg.conf를 만들려면 nvidia-config합니다.
- 설치후 man nvidia-xconfig하면 자세한 설정방법을 알 수 있습니다.
- (참고)
- 배포판 커널을 사용중이고, 저장소에 커널에 맞게 만들어진 nvidia 모듈이 있으면 다음과 같이 합니다.
- 그래픽카드에 모니터를 2개 모두 연결하니 주 모니터인 LCD가 보이지 않아 다음과 같이 하였습니다.
Section "ServerLayout"
Screen 0 "Default Screen" 0 0
Screen 1 "Screen-2nd" Rightof "Default Screen"
EndSection
Section "Monitor"
Identifier "PCBANK.240W"
Gamma 0.9
DisplaySize 518.4 324.0
# ModeLine "1920x1200" 154.0 1920 1968 2000 2104 1200 1203 1209 1222 +hsync -vsync
ModeLine "1920x1200" 154.0 1920 1968 2000 2100 1200 1203 1209 1222 -hsync +vsync
EndSection
Section "Monitor"
Identifier "42LB5DR"
ModeLine "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 +hsync +vsync
EndSection
Section "Device"
Identifier "7300GT.Ultra2.256MB"
Driver "nvidia"
Option "UseDisplayDevice" "DFP"
Option "UseEdidDpi" "false"
Option "DPI" "96 x 96"
Screen 0
EndSection
Section "Device"
Identifier "7300GT.Ultra2.256MB-2nd"
Driver "nvidia"
Option "UseDisplayDevice" "CRT"
Screen 1
EndSection
Section "Screen"
Identifier "Default Screen"
Device "7300GT.Ultra2.256MB"
Monitor "PCBANK.240W"
DefaultDepth 24
Option "NoLogo" "True"
Option "ModeValidation" "NoDFPNativeResolutionCheck"
# Option "TwinView" "True"
# Option "MetaModes" "nvidia-auto-select, nvidia-auto-select"
SubSection "Display"
Depth 24
Modes "1920x1200" "1920x1080" "1600x1200" "1280x1024" "1280x768" "1024x768" "800x600"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen-2nd"
Device "7300GT.Ultra2.256MB-2nd"
Monitor "42LB5DR"
DefaultDepth 24
Option "NoLogo" "True"
Option "ModeValidation" "NoMaxPClkCheck,NoEdidModes,NoVirtualSizeCheck"
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection - Nvidia社의 드라이버를 설치하면 사용중인 커널에 맞게 모듈이 설치됩니다. 따라서 새로 설치된 커널로 부팅하여 X윈도우가 안되면 Nvidia社의 드라이버를 다시 설치하면 됩니다.
- 또한 원래 Nvidia社의 드라이버를 설치하면 xorg의 버전에 맞게 설치됩니다. 따라서 사용중에 xorg가 업그레이드 되면서 /usr/lib/xorg/modules/extensions/libglx.so 파일이 변경될 수 있습니다. 원래 Nvidia社의 드라이버를 설치하면 libglx.so.xx(버전)이 설치되고 libglx.so는 단지 이를 가리키는 symbolic link파일입니다. xorg가 업그레이드되면서 이 symbolic link파일이 xorg의 libglx.so로 바뀌게 됩니다.
Nvidia社의 드라이버를 다시 설치할 때 libglx.so가 symbolic link파일이 아니라는 에러가 보여도 그냥 설치하면 새 symbolic link파일로 설치 됩니다.
사용중에 xserver-xorg-code의 업그레이드로 문제가 있으면
문제가 있으면 다음과 같이 합니다.
# /etc/init.d/gdm stop
# cd /usr/lib/xorg/modules/extensions
# rm libglx.so
# ln -s libglx.so.1.0.9746 libglx.so
# etc/init.d/gdm start
페도라
- Nvidia 드라이버 설치는 Livna Repository에서설치하였습니다.
# rpm -ivh http://rpm.livna.org/livna-release-8.rpm
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna
# yum install kmod-nvidia
kmod-nvidia 설치시에 알맞은 새 커널이 설치되기도 합니다.
- 모니터는 LCD로 DVI로 연결하여 사용중인데, 여분의 모니터를 추가로 그래픽카드의 RGB에 연결하면 RGB가 첫번 째 모니터로 인식되어 다음과 같이 바꾸어 DVI에 연결된 모니터가 첫번째 모니터가 되게 바꾸었습니다.
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen-2nd" Rightof "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Monitor"
Identifier "PCBANK.24W"
HorizSync 28.0 - 51.0
VertRefresh 43.0 - 60.0
Gamma 0.9
DisplaySize 518.4 324.0
ModeLine "1920x1200" 154.0 1920 1968 2000 2100 1200 1203 1209 1222 -hsync +vsync
Option "DPMS"
EndSection
Section "Monitor"
Identifier "42LB5DR"
ModeLine "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 +hsync +vsync
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Screen 0
BusID "PCI:5:0:0"
Option "UseDisplayDevice" "DFP"
Option "UseEdidDpi" "false"
Option "DPI" "96 x 96"
Option "AddARGBGLXVisuals" "True"
EndSection
Section "Device"
Identifier "7300GT.Ultra2.256MB-2nd"
Driver "nvidia"
Option "UseDisplayDevice" "CRT"
Screen 1
BusID "PCI:5:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "PCBANK.24W"
DefaultDepth 24
Option "NoLogo" "True"
Option "ModeValidation" "NoDFPNativeResolutionCheck"
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1920x1200" "1280x768" "1024x768" "800x600"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen-2nd"
Device "7300GT.Ultra2.256MB-2nd"
Monitor "42LB5DR"
DefaultDepth 24
Option "NoLogo" "True"
Option "ModeValidation" "NoMaxPClkCheck,NoEdidModes,NoVirtualSizeCheck"
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
- TV로 출력이 되게 설정되어 tv out이 안되게 하였습니다.
#Section "Extensions"
# Option "Composite" "Enable"
#EndSection
댓글 1개:
와, 감사합니다..
제 데비안이 어디 아픈지, xming으로 하면 분명히 xwindow에 그놈이 아주 잘돌아가는데.직접 local에서 돌리니까 안돌아 가는겁니다.. 결론은 그래픽카드가 안잡힌거였군요;;
댓글 쓰기