이 가이드는 솔라리스 x86 플랫폼에서 Xinerma 를 설정하는 방법에 대해 설명합니다. 그리고 솔라리스를 운영하고 있는 x86 시스템의 멀티헤드 기능을 사용하는 법에 대해서도 설명합니다.
Xinerama 는 X 윈도우 시스템의 확장이고 좀 더 많은 수의 스크린을 사용할 수 있도록 해 줍니다. 즉 /etc/X11/xorg.conf 파일에 단순히 여러개의 디스플레이를 설정하는 것 대신에 사용자가 윈도우를 디스플레이 간에 이동할 수 있고 윈도우 사이즈를 여러개의 디스플레이에 걸치도록 확장 할 수 있고 디스플레이간 잘라내기/붙여넣기가 가능하도록 합니다. 디스플레이의 총 해상도에 맞춰서 효율적으로 해상도가 증가 됩니다.
설정 절차
1. 준비
솔라리스 x86 플랫폼은 Xsun, Xorg 두개의 X 서버를 제공합니다. x86 플랫폼에서의 기본 X 서버는 Xorg 입낟; 그러므로 이 글은 Xinerma 를 Xorg 에서 설정하는 법에 촛점을 맞춰서 설명합니다. Xinerama 설정을 시작하기 전에 일단 Xorg 에 싱글 비디오 카드 설정이 필요 합니다. 만약 솔라리스 Xorg 의 비디오 카드 설정에 대해 잘 모르신다면 kdmconfig(1M) 와 xorgconfig(1) 를 미리 살펴보시기 바랍니다.
2. 패치 설치하기
Xinerama 설치를 진행하기 전에 Xinerama 가 Xorg 에서 잘 작동하기 위해서는 패치를 적용해야 합니다. 이 패치는 Xinerama 가 Xsun 과 Xorg 에서의 확장 프로토콜이 서로 비호환되는 버그를 해결 합니다. 이 버그는 썬 자바 데스크탑 시스템과 CDE 데스크탑 시스텝 환경이 Xinerama 설정을 한 Xorg 서버에서 시작될때 크래쉬를 유발합니다. (이 데스크탑 어플리케이션들은 Xsun 프로토콜을 기대했지만 Xorg 프로토콜이 사용됐기 때문입니다.)
솔라리스9, 10의 패치 번호는 아래와 같습니다 (SunSolve 에서 다운로드 가능합니다):
- 112786-41 혹은 그 이상 (솔라리스9 x86 플랫폼)
- 119060-04 혹은 그 이상 (솔라리스10 x86 플랫폼)
3. 수동으로 추가 비디오카드 설치하기
Xinerma 를 설정하려면 일단 추가 비디오카드를 설치해야 합니다. 솔라리스 x86 플랫폼에서 이것은 /etc/X11/xorg.conf 파일의 Xorg 설정을 수정해야 합니다. 자세한 과정은 아래와 같습니다:
3.1 현재 동작하고 있는 Xorg 설정 파일을 다음과 같이 백업합니다:
root# > cp /etc/X11/xorg.conf /etc/X11/xorg.conf.working
3.2 두번째 비디오카드의 모델을 확인합니다.
비디오 카드의 모델 확인을 위해 Xorg 커맨드를 실행해야 합니다. X 서버가 실행되지 않은 상태에서 커맨드를 실행하기 위해 현재 데스크탑을 종료시키고 커맨드 라인에서 로그인 하던지 머신을 싱글-유저 모드로 재부팅 합니다. 커맨드 라인에서 로그인 하기 위해 다음의 과정을 따릅니다:
a. 현재 데스크탑 환경에서 로그아웃하고 로그인 스크린으로 돌아감.
b. 로그인 스크린에서 Options -> Command line 로그인을 클릭함. 콘솔 로그인 인터페이스를 보여 줌.
c. 콘솔에서 root 로 로그인함. 그다음 다음의 커맨드를 통해서 비디오 카드의 타입을 확인함:
root# > /usr/X11/bin/Xorg -scanpci
Xorg 는 비디오 카드를 포함한 PCI 버스의 각 디바이스들의 정보를 출력해 줄것입니다. 이 경우 출력은 아래와 같을 것입니다. (주의: 출력의 각 줄들은 가독성을 위해 "\" 로 구별됨.)
Probing for PCI devices (Bus:Device:Function) (0:0:0) unknown card (0x8086/0x2570) using a Intel Corp. 82865G/PE/P \ Processor to I/O Controller (0:2:0) unknown card (0x1014/0x02c7) using a Intel Corp. 82865G Integrated \ Graphics Device .... (0:30:0) Intel Corp. 82801BA/CA/DB/EB PCI Bridge (0:31:0) Intel Corp. 82801EB LPC Interface Controller (0:31:1) unknown card (0x1014/0x02c7) using a Intel Corp. 82801EB Ultra \ ATA Storage Controller (0:31:3) unknown card (0x1014/0x02c7) using a Intel Corp. 82801EB SMBus \ Controller (0:31:5) unknown card (0x1014/0x02c7) using a Intel Corp. 82801EB AC'97 \ Audio Controller (3:2:0) nVidia Corporation NV17 [GeForce4 MX 440] (3:8:0) unknown card (0x1014/0x02c7) using an unknown chip
(DeviceId 0x1050) \ from Intel Corp.
머신에서 두개의 비디오 카드가 발견됐음을 볼 수 있습니다 (두번째 줄과 밑에서 두번째 줄을 확인). 하나는 온보드로 통합된 비디오 카드 Intel i810 (0:2:0), 이고 다른 하나는 nVidia Geforce 4 MX 440 (3:2:0) 입니다. 여러분의 경우 여러분은 비디오 카드를 찾은 다음 각각에 연관된 디바이스 번호를 적어 두어야 합니다 (Bus:Device:Function) 이 번호들은 다음 단계에서 Xorg 설정 파일에 비디오 카드를 설정할때 필요합니다.
3.3 xorg.conf 파일 수정하기
현재의 xorg.conf 파일을 열고 Monitor 섹션을 찾습니다. 다음의 섹션들을 원래의 Xorg 백업 파일(xorg.conf.working)에서 카피할 수 있습니다: Monitor, Device, Screen. 각 섹션을 카피한 다음 각 구분자들이 각각 유일무이한지 확인합니다. 후에 이 구분자들을 사용할 것입니다.
이제 여러분은 각각의 비디오 카드/모니터 조합에 맞게 Monitor, Device, Screen 섹션을 가지고 있어야 합니다. 각 섹션은 유일무이한 구분자를 가지고 있어야 합니다.
이제 각각의 Device 섹션의 끝에 PCI BusID 를 옵션으로 추가시켜줘야 합니다. 항목은 다음과 같은 형태입니다: BusID "PCI:3:2:0" 3가지 숫자를 여러분이 이전에 인식했었던 비디오 카드의 PCI bus ID 에 맞도록 바꾸어 줘야 합니다. 이제 이 ID 를 Xorg -pci 커맨드의 출력을 통해서 제대로 설정됐는지 확인해야 합니다. 하나의 비디오 카드에 대한 Device 섹션의 샘플을 보시기 바랍니다.
Section "Device" Identifier "nVidia" Driver "nv" BusID "PCI:3:2:0" EndSection
3.4 서버 레이아웃 설정하기
이제 XF86Config 파일의 끝에 ServerLayout 섹션을 수정해야 합니다. ServerLayout 섹션은 정확하게 어떠한 스크린을 사용하고 논리적으로 이것들을 어떻게 배치시키고 어떠한 입력 디바이스를 지정할지를 포함합니다. 여러분의 현재 레이아웃은 하나의 스크린, 하나의 키보드, 하나의 마우스 입니다. 이 섹션에서는 여러분이 생성했던 각 스크린 섹션을 지정해서 스크린 섹션에 여러분의 디스플레이에 나타나도록 해야 합니다.
현재 사용하고 있는 스크린을 시작 지점으로 사용해서 여러분의 새 스크린을 추가 시켜 줍니다. reference 는 다음과 같이 설정될 것입니다:
Screen "Screen 2" Relationship "Screen 1"
이 reference 는 "Screen 2" 와 "Screen 1" 간 관계를 정의 합니다. 적잘한 관계는 RightOf, Below, Above, LeftOf, Absolute X Y, 그리고 Relative 를 포함합니다. 앞의 네개 속성은 아래의 예제를 보면 명확하게 이해가 가능할 것입니다:
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 2"
Screen "Screen 1" RightOf "Screen 2"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
4. Xinerama 플래그 추가하기
이제 Xorg 시작시에 Xinerama 확장을 적용하도록 해야 합니다. ServerFlags 섹션에 다음과 같은 옵션을 추가 합니다:
Section "ServerFlags" Option "Xinerama" "true" EndSection
이제 Xorg 를 시작한다음에 Xinerama 가 동작해야 합니다.
5. xorg.conf 파일 샘플
(주의: 대부분의 코멘트들은 지워졌습니다..)
아래의 내용은 잘동작하는 Xorg 설정 파일의 샘플 입니다.
# File generated by xorgconfig.
# **********************************************************************
# Module section -- this section is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
Section "Module"
Load "dbe" # Double buffer extension
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
# This loads the font modules
Load "bitstream"
Load "type1"
# This loads the Xst module
Load "Xst"
# This loads the SolarisIA module
Load "IA"
EndSection
# **********************************************************************
# Files section. This allows default font and rgb paths to be set
# **********************************************************************
Section "Files"
RgbPath "/usr/X11/lib/X11/rgb"
FontPath "/usr/X11/lib/X11/fonts/TrueType/"
FontPath "/usr/X11/lib/X11/fonts/Type1/"
FontPath "/usr/X11/lib/X11/fonts/Type1/sun/"
FontPath "/usr/X11/lib/X11/fonts/F3bitmaps/"
FontPath "/usr/X11/lib/X11/fonts/misc/"
FontPath "/usr/X11/lib/X11/fonts/100dpi/"
FontPath "/usr/X11/lib/X11/fonts/75dpi/"
EndSection
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
Option "Xinerama" "true"
EndSection
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
EndSection
# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/mouse"
EndSection
# **********************************************************************
# Monitor section
# **********************************************************************
Section "Monitor"
Identifier "Monitor1"
HorizSync 31.5 - 48.5
VertRefresh 50-70
EndSection
Section "Monitor"
Identifier "Monitor2"
HorizSync 31.5 - 48.5
VertRefresh 50-70
EndSection
# **********************************************************************
# Graphics device section
# **********************************************************************
# Device configured by xorgconfig:
Section "Device"
Identifier "intel"
Driver "i810"
BusID "PCI:0:2:0"
#VideoRam 32768
# Insert Clocks lines here if appropriate
EndSection
Section "Device"
Identifier "nVidia"
Driver "nv"
BusID "PCI:3:2:0"
EndSection
# **********************************************************************
# Screen sections
# **********************************************************************
Section "Screen"
Identifier "Screen 1"
Device "intel"
Monitor "Monitor1"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x768"
ViewPort 0 0
EndSubsection
EndSection
Section "Screen"
Identifier "Screen 2"
Device "nVidia"
Monitor "Monitor2"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x768"
ViewPort 0 0
EndSubsection
EndSection
# **********************************************************************
# ServerLayout sections.
# **********************************************************************
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 2"
Screen "Screen 1" RightOf "Screen 2"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
참고자료
Using Xinerama to MultiHead XFree86 V. 4.0+
저자에 관하여
Wenlong Zhang은 Market 개발 엔지니어링 팀의 기술 컨설턴트로써 중국의 썬 ISV 파트너들의 기술지원을 제공하고 있습니다.
이 아티클의 영문 원본 :
http://www.sun.com/bigadmin/features/ar ··· x86.html
"관리자코너" 카테고리의 다른 글
- 썬 버추얼 데스크탑 커넥터 1.0(베타)을 사용한 VDI 데모 구축 (댓글 0개 / 트랙백 0개) 2008/01/23
- 솔라리스 부트 매니저를 이용한 부트 디스크 미러링 방법 (댓글 1개 / 트랙백 0개) 2005/09/23
- 솔라리스 10 5/08 릴리스의 새로운 기능 (댓글 0개 / 트랙백 0개) 2008/06/11
- Solaris 10의 컨테이너를 이용하여 보안을 향상시키는 방법 - Part 1 of 2 (댓글 1개 / 트랙백 0개) 2005/10/23
- 설정 파일 관리 베스트 프랙티스 (댓글 0개 / 트랙백 0개) 2008/05/19
- The Zone Manager 스크립트 (댓글 1개 / 트랙백 0개) 2005/11/23
- 스크립트를 이용한 자동화된 시스템 체크 (댓글 0개 / 트랙백 0개) 2008/06/16
- 플래시 어카이브로 부터 솔라리스10 Branded 존 설치하기 (댓글 0개 / 트랙백 0개) 2008/08/19
- xVM DomU 지원을 솔라리스 라이브CD 배포판에 추가하기 (댓글 0개 / 트랙백 0개) 2008/12/05
- 솔라리스 레디 애플리케이션 및 솔루션 (댓글 0개 / 트랙백 0개) 2008/03/13
TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/408
-
솔라리스 x86 플랫폼에서 Xinerama 설정하기
Tracked from ★ dingpong의 조그만 휴식 공간 ★ 삭제솔라리스 x86 플랫폼에서 Xinerama 설정하기에 대한 글입니다. 솔라리스에서 Xinerama 설정에 대해서 궁금하시면 해당 글을 참고해 봐주시길 바랍니다. 본문은 http://www.sdnkorea.com/blog/408입니다.
2007/09/20 01:52
댓글을 달아 주세요
좋은정보 감사해요...항상 고마워
2007/09/06 09:47Xinerma가 무엇을 하는 프로그램인지를 먼저 소개하고 내용을 기술하였으면 더욱 좋은 컨탠츠가 될 수 있을 텐데 하는 아쉬움은 있습니다만, 그래도 좋은 정보 감사합니다.
2007/09/06 11:58자바는 알면 알수록 재미가 있어지네요. 무궁무진한 자바의 세계로 빠져들어 갑니다. 좋은 자료 잘 활용하겠습니다.
2007/09/17 23:46좋은 정보 감사해요~
2007/09/19 03:24오늘도 하나 배우고 갑니다 ^^
2007/09/19 19:23너무 너무 감사합니다.
2007/09/19 19:24좋은 정보 많이 담아가요 ^^
2007/09/19 22:42어렵지만 도움이 되는 글이네요^-^ 좋아요~*
2007/09/20 01:52