Xinerama
Konfiguracja ┼Ťrodowiska wielomonitorowego pod linuksem
Ostatnia zmiana: 2013-11-26 18:43

1. Standardowa konfiguracja wykorzystuj─ůca wbudowany panel LCD (kopia ekranu)
2. Wy┼Ťwietlanie na drugim ekranie pulpitu identycznego jak na pierwszym ekranie, niezale┼╝nym od niego z mo┼╝liwo┼Ťci─ů przesuwania myszy mi─Ödzy nimi
3. Wy┼Ťwietlanie "rozci─ůgni─Ötego" pulpitu na dwa ekrany
4. Prze┼é─ůczanie mi─Ödzy konfiguracjami
5. Przykładowy plik konfiguracyjny xorg.conf


Coraz cz─Ö┼Ťciej karty graficzne dysponuja 2 wyj┼Ťciami monitorowymi, umo┼╝liwiaj─ůc jednoczesne wy┼Ťwietlanie obrazu na kilku monitorach. Dotyczy to tak┼╝e notebook├│w, wyposa┼╝onych w karty Intel i855 lub i915, obs┼éugiwane przez sterownik i810. Podobn─ů konfiguracj─Ö mo┼╝na uzyska─ç na kartach NVidii lub dw├│ch r├│┼╝nych kartach graficznych (np. jednej AGP i jednej PCI).
Konfiguracje przedstawione poni┼╝ej przetestowano na notebooku Aristo Smart 400 wyposa┼╝onym w kart─Ö Intel 915 z zewn─Ötrznym wyj┼Ťciem CRT i TV-Out (svideo)
Prezentowane konfiguracje mo┼╝na uzyska─ç tak┼╝e na zewnetrznym telewizorze, zamieniaj─ůc MonitorLayout "CRT,LFP" na "TV,LFP".

Z plik├│w konfiguracynych usuni─Öto wpisy nieistotne z punktu widzenia xineramy; nale┼╝y pami─Öta─ç o ich uzupe┼énieniu stosowanie do posiadanej konfiguracji. S─ů to sekcje: Files, ServerFlags, Module, DRI oraz Extensions.

Jako zewn─Ötrzmy monitor wykorzystano stary CRT o maksymalnej rozdzielczo┼Ťci 1024x768, ustawiony z lewej strony ekranu LCD. Sekcje wsp├│lne dla wszystkich konfiguracji to:

Section "InputDevice"
                Identifier  "PS2 Keyboard"
                Driver      "kbd"
                Option      "CoreKeyboard"
                ...
EndSection

Section "InputDevice"
                Identifier  "PS2 Mouse"
                Driver      "mouse"
                ...
EndSection

Standardowa konfiguracja wykorzystuj─ůca wbudowany panel LCD (kopia ekranu)



Nale┼╝y pami─Öta─ç o zmianie BusID na odpowiedni dla systemu (zr├│b X -scanbus ┼╝eby uzyska─ç odpowiedni─ů warto┼Ť─ç)!
Ta sama zawarto┼Ť─ç ekranu mo┼╝e by─ç wy┼Ťwietlane na zewn─Ötrznym monitorze, u┼╝ywaj─ůc sprz─Ötowych klawiszy do prze┼é─ůczania ekranu. Je┼╝eli prze┼é─ůczanie ekranu nie b─Ödie mo┼╝liwe, lub obraz b─Ödzie zamazany (wygl─ůda tak, jakby straci┼é synchronizacj─Ö) warto doda─ç opcje Option "CloneRefresh" "60" oraz Option "DevicePresence" "yes".

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915I"
                BusID       "PCI:0:2:0"
                Screen      0
                Option	"MonitorLayout"	"CRT,LFP"
                Option	"Clone"	"True"
EndSection

Section "Monitor"
                Identifier  "LCD"
                HorizSync   31-90
                VertRefresh 59-75
EndSection

Section "Screen"
                Identifier  "Screen0"
                Device      "i915I"
                Monitor     "LCD"
                DefaultDepth 24
                SubSection   "Display"
                                Depth    24
                                Modes    "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "ServerLayout"
                Identifier  "single"
                Screen      0  "Screen0" 0 0
                InputDevice "PS2 Mouse" "AlwaysCore"
                InputDevice "PS2 Keyboard" "CoreKeyboard"
EndSection

Wy┼Ťwietlanie na drugim ekranie pulpitu identycznego jak na pierwszym ekranie, niezale┼╝nym od niego z mo┼╝liwo┼Ťci─ů przesuwania myszy mi─Ödzy nimi



Poniewa┼╝ w noteboku znajduj─ů si─Ö tylko jedna karta graficzna, obie sekcje Device maj─ů ten sam BusID. W przypadku posiadania dw├│ch r├│znych kart nale┼╝y odpowiednio przypisa─ç driver i BusID do odpowiednich kart.
MonitorLayout jest opcj─ů specyficzn─ů dla i810 i pozwala na okre┼Ťlenie po┼é─ůczonych ekran├│w (LFP, DFP, CRT, TV) i ich priorytetu (pipeA, pipeB) oraz w┼é─ůczenia (NONE). Po szczeg├│┼éy zapraszam do manuala drivera i810.

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915I"
                BusID       "PCI:0:2:0"
                Screen      0
EndSection

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915E"
                BusID       "PCI:0:2:0"
                Screen      1
EndSection

Section "Monitor"
                Identifier  "LCD"
                HorizSync   31-90
                VertRefresh 59-75
                Option      "MonitorLayout" "CRT,LFP"
EndSection

Section "Monitor"
                Identifier  "CRT"
                HorizSync   31-90
                VertRefresh 54-61
EndSection

Section "Screen"
                Identifier  "Screen0"
                Device      "i915I"
                Monitor     "LCD"
                DefaultDepth 24
                SubSection  "Display"
                                Depth   24
                                Modes   "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "Screen"
                Identifier  "Screen1"
                Device      "i915E"
                Monitor     "CRT"
                DefaultDepth 24
                SubSection 	"Display"
                                Depth   24
                                Modes   "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "ServerLayout"
                Identifier  "xinerama-multi"
                Screen      0  "Screen0" 0 0
                Screen      1  "Screen1" LeftOf "Screen0"
                InputDevice "PS2 Mouse" 	"AlwaysCore"
                InputDevice "PS2 Keyboard" "CoreKeyboard"
                Option      "Xinerama" "Off"
EndSection

Wy┼Ťwietlanie "rozci─ůgni─Ötego" pulpitu na dwa ekrany



W tym przypadku dla obydwu monitor├│w nale┼╝y zdefiniowa─ç t─ů sam─ů g┼é─Öbi─Ö kolor├│w. Od poprzedniej konfiguracji r├│┼╝ni si─Ö opcj─ů "Xinerama" "On"

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915I"
                BusID       "PCI:0:2:0"
                Screen      0
EndSection

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915E"
                BusID       "PCI:0:2:0"
                Screen      1
EndSection

Section "Monitor"
                Identifier  "LCD"
                HorizSync   31-90
                VertRefresh 59-75
                Option      "MonitorLayout" "CRT,LFP"
EndSection

Section "Monitor"
                Identifier  "CRT"
                HorizSync   31-90
                VertRefresh 54-61
EndSection

Section "Screen"
                Identifier  "Screen0"
                Device      "i915I"
                Monitor     "LCD"
                DefaultDepth 24
                SubSection  "Display"
                                Depth   24
                                Modes   "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "Screen"
                Identifier  "Screen1"
                Device      "i915E"
                Monitor     "CRT"
                DefaultDepth 24
                SubSection 	"Display"
                                Depth   24
                                Modes   "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "ServerLayout"
                Identifier  "xinerama-multi"
                Screen      0  "Screen0" 0 0
                Screen      1  "Screen1" LeftOf "Screen0"
                InputDevice "PS2 Mouse"  "AlwaysCore"
                InputDevice "PS2 Keyboard" "CoreKeyboard"
                Option      "Xinerama" "On"
EndSection

Prze┼é─ůczanie mi─Ödzy konfiguracjami
Oczywi┼Ťcie mo┼╝na w jednym pliku xorg.conf zdefiniowa─ç kilka konfiguracji. Prze┼é─ůczanie (na sta┼ée) mo┼╝na umie┼Ťci─ç w sekcji ServerFlags, np.

    Section "ServerFlags"
                ...
                Option	"DefaultServerLayout"	"single"
                #Option	"DefaultServerLayout"	"xinerama-multi"
                #Option	"DefaultServerLayout"	"xinerama-one"
                ..
    EndSection

lub uruchamiaj─ůc Xy z odpowiednim parametrem

    $ startx -- -layout xinerama-one

Przykładowy plik konfiguracyjny xorg.conf
Poni┼╝ej zosta┼é zaprezentowany kompletny plik konfiguracyjny xorg.conf dla Aristo Smart 400 (i915, touchpad) z po┼é─ůczonymi konfiguracjami:

Section "Files"
                FontPath	"/usr/share/fonts/X11/misc"
                FontPath	"/usr/share/fonts/X11/100dpi"
                FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "ServerFlags"
                Option	"OffTime"	"5"
                Option	"AllowMouseOpenFail"	"true"
                Option	"DefaultServerLayout"	"single"
                #Option	"DefaultServerLayout"	"xinerama-multi"
                #Option	"DefaultServerLayout"	"xinerama-one"
EndSection

Section "Module"
                Load	"dri"
                Load	"drm"
                Load	"glx"
                Load	"dbe"
                Load	"extmod"
                Load	"freetype"
                Load	"type1"
                Load	"synaptics"
EndSection

Section "InputDevice"
                Identifier	"PS2 Keyboard"
                Driver	"kbd"
                Option	"CoreKeyboard"
                Option	"XkbRules"	"xorg"
                Option	"XkbModel"	"pc104"
                Option	"XkbLayout"	"pl"
EndSection

Section "InputDevice"
                Identifier	"PS2 Mouse"
                Driver	"mouse"
                Option	"Device"	"/dev/psaux"
                Option	"Protocol"	"ImPS/2"
                Option	"ZAxisMapping"	"4 5"
EndSection

Section "InputDevice"
                Identifier 	"Touchpad"
                Driver 	"synaptics"
                Option 	"Device" "/dev/input/event1"
                Option 	"Protocol" "auto-dev"

                Option 	"SHMConfig" "on"
                Option	"LeftEdge"		"120"
                Option	"RightEdge"		"830"
                Option	"TopEdge"		"120"
                Option	"BottomEdge"		"650"
                Option	"FingerLow"		"14"
                Option	"FingerHigh"		"15"
                Option	"MaxTapTime"		"180"
                Option	"MaxTapMove"		"110"
                Option	"EmulateMidButtonTime"	"75"
                Option	"VertScrollDelta"	"20"
                Option	"HorizScrollDelta"	"20"
                Option	"MinSpeed"		"0.3"
                Option	"MaxSpeed"		"0.75"
                Option	"AccelFactor"		"0.015"
                Option	"EdgeMotionMinSpeed"	"200"
                Option	"EdgeMotionMaxSpeed"	"200"
                Option	"UpDownScrolling"	"1"
                Option	"CircularScrolling"	"1"
                Option	"CircScrollDelta"	"0.1"
                Option	"CircScrollTrigger"	"2"
EndSection

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915I"
                VideoRam    32768
                BusID       "PCI:0:2:0"
                Screen      0
EndSection

Section "Device"
                Driver      "i810"
                VendorName  "Intel Corp."
                BoardName   "Mobile Graphics Controller"
                Identifier  "i915E"
                BusID       "PCI:0:2:0"
                Screen      1
EndSection

Section "Monitor"
                Identifier	"LCD"
                HorizSync	31-90
                VertRefresh	59-75
                Option      "DPMS"
                Option      "MonitorLayout"	"CRT,LFP"
                Modeline    "1280x800" 71.00 1280 1312 1344 1456 800 801 804 820
EndSection

Section "Monitor"
                Identifier	"CRT"
                HorizSync	31-90
                VertRefresh	54-61
EndSection

Section "Screen"
                Identifier  "Screen0"
                Device      "i915I"
                Monitor     "LCD"
                DefaultDepth 24
                SubSection 	"Display"
                                Depth   16
                                Modes   "1280x800" "1024x768" "800x600" "640x480"
                EndSubSection
                SubSection 	"Display"
                                Depth   24
                                Modes   "1280x800" "1024x768" "800x600" "640x480"
                EndSubSection
EndSection

Section "Screen"
                Identifier  "Screen1"
                Device      "i915E"
                Monitor     "CRT"
                DefaultDepth 24
                SubSection 	"Display"
                                Depth   16
                                Modes   "800x600" "640x480"
                EndSubSection
                SubSection 	"Display"
                                Depth   24
                                Modes   "800x600" "640x480"
                EndSubSection
EndSection

Section "ServerLayout"
                Identifier     "single"
                Screen          0  "Screen0" 0 0
                InputDevice    "Touchpad" 	"CorePointer"
                InputDevice    "PS2 Mouse" 	"AlwaysCore"
                InputDevice    "PS2 Keyboard" "CoreKeyboard"
EndSection

Section "ServerLayout"
                Identifier     "xinerama-multi"
                Screen          0  "Screen0" 0 0
                Screen          1  "Screen1" LeftOf "Screen0"
                InputDevice    "Touchpad" 	"CorePointer"
                InputDevice    "PS2 Mouse" 	"AlwaysCore"
                InputDevice    "PS2 Keyboard" "CoreKeyboard"
                Option         "Xinerama" "Off"
EndSection

Section "ServerLayout"
                Identifier     "xinerama-one"
                Screen          0  "Screen0" 0 0
                Screen          1  "Screen1" LeftOf "Screen0"
                InputDevice    "Touchpad" 	"CorePointer"
                InputDevice    "PS2 Mouse" 	"AlwaysCore"
                InputDevice    "PS2 Keyboard" "CoreKeyboard"
                Option         "Xinerama" "On"
EndSection

Section "DRI"
                Mode         0666
EndSection

Section "Extensions"
                Option      "Composite" "False"
EndSection