| jens.hatlak.de | Über mich | ||||||
| Atari | PHP | ||||||
| Dreamweaver Manual | Linux | R40 / Debian | |||||
| Akronyme | Mozilla | Notebook | Dualhead/DRI | ||||
| SciTE | Samba | MergedFB | |||||
| FASTA-Parser | Archos | ||||||
| Ich spreche... | Genius EM700 | ||||||
Unter SuSE 8.1 und XFree 4.2
ist Dual-Head-Betrieb mit einem SiS 630 mittels Xinerama möglich.
SaX2 hat mir dabei nicht sonderlich weitergeholfen: Obwohl 8.1 die
erste SuSE-Version ist, die den SiS 630 nicht nur per Framebuffer
ansteuern kann, klappte DRI etc. mit der Standardkonfig. nicht.
Ich habe dann viel herum probiert und war manchmal auch schon sicher,
dass es nicht ginge. Jetzt läuft es aber: Xinerama
1280x1024/1024x768 (VGA/LCD) auf vt7 und Clone (VGA und LCD 1024x768)
auf vt8, so dass ich einfach mit Alt+Ctrl+F8 zu einer Konfiguration
schalten kann, in der der Laptop standalone (LCD) oder mit einem externen
Monitor laufen kann, der >XGA nicht verträgt.
Noch eine kurze Anmerkung: in XFree 4.3 ist der SiS DRI-Treiber wieder deaktiviert worden, weil er noch nicht an interne Umstellungen des restlichen XFree-Pakets angepasst worden ist. Wer auf XFree 4.3 benutzen, DRI behalten und dabei gleich noch weitere Vorteile genießen will, sollte sich mal MergedFB-Seite ansehen. Alternativ kann man sich auch die aktuelle XFree86-Version holen: Mit XFree86 4.3.99.14 aufwärts und insbesondere XFree 4.4 gibt es wieder DRI-Treiber für SiS' 300er-Linie.
Beim Booten (-> /boot/grub/menu.lst) darf natürlich kein VGA-Framebuffer (vga=xxx) aktiviert werden, weil dann der sis-Framebuffer nicht mehr will.
In der /etc/init.d/boot.local habe ich noch folgende Zeile, die die Systemkonsole (vt1-6) auf einen kleinen Font stellt (so wie vga=791, was man ja nicht benutzen darf, wenn man DRI/Xinerama haben will):
/sbin/modprobe sisfb sis
Passend dazu folgende Zeile in der /etc/modules.conf:
options sisfb mem=12288 mode=1024x768x16
Die relevanten Zeilen für die Koexistenz Xinerama/DRI aus der Xservers (/etc/opt/kde3/share/config/kdm/):
:0 local /usr/X11R6/bin/X :0 vt7 :1 local /usr/X11R6/bin/X -layout Clone :1 vt8
passend zu meiner /etc/X11/XF86Conf, die die beiden Profile zusammen mit deutscher Tastatur, Logitech USB-Scrollmaus (MausMan+) und PS/2-Maus (Touchpad) definiert:
Section "ServerFlags"
Option "AllowMouseOpenFail"
Option "noPM"
Option "BlankTime" "99999"
Option "StandbyTime" "99999"
Option "SuspendTime" "99999"
Option "OffTime" "99999"
EndSection
Section "Module"
Load "ddc"
Load "GLcore"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "record"
Load "bitmap"
Load "freetype"
Load "speedo"
Load "type1"
Load "vbe"
Load "int10"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "USB Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Generic VGA"
VendorName "NCD"
ModelName "Monitor Model"
# VertRefresh & HorizSync:
# These values are used for CRT1 only. They are ignored for CRT2.
VertRefresh 60-75
HorizSync 30-90
EndSection
# For dual head mode:
# Supply another Monitor for second head
Section "Monitor"
Identifier "Generic LCD"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
VertRefresh 60-75
HorizSync 30-90
EndSection
Section "Device"
Driver "sis"
Identifier "SiS 630-1"
VendorName "SiS"
BoardName "630"
Option "SWcursor"
Option "HWcursor"
# Option "NoAccel"
# Setting this option will disable 2D/3D accellerators (and Xv).
#Option "NoAccel"
# Option "ForceCRT2Type":
# This option selects the CRT2 output device type and is only useful
# on systems containing a video bridge (such as most laptops).
# Available options are:
# "TV" (if TV connector present),
# "LCD" (if LCD panel present),
# "VGA" (don't use this; it is unlikely that you need it because this
# would require a SECOND VGA connector on your computer; the
# connector on laptops is CRT1!) or
# "NONE" (this will switch off CRT2). You might want to use "NONE" for
# using higher resolutions than your LCD panel supports when
# connected to an external VGA. If using "NONE", adjust the settings
# in the monitor section above.
Option "ForceCRT2Type" "LCD"
# Option "ForceCRT1"
# This option can be used to force CRT1 to be switched on (TRUE) or
# off (FALSE). It is only used if a video bridge is detected.
# If you don't set this option, the driver will automatically detect
# if CRT1 is connected or not and use it accordingly. Automatic
# detection, however, requires CRT1 to be connected to the computer
# at boot time. Older monitors might not be detected at all, so you
# will have to set this option to "TRUE" if you want to use such a
# monitor on a machine with a video bridge.
# Normally, you don't need to set this option.
Option "ForceCRT1" "TRUE"
# Option "MaxXFBMem":
# The option is ignored in dual head mode. DRI is not supported in dual
# head mode.
Option "MaxXFBMem" "12288"
# For dual head mode, BusID has to be specified! Check this using lspci!
BusID "PCI:1:00:0"
# "Screen" selects the screen number for this device in dual head mode
# Screen 0 is master (always CRT2)
Screen 0
EndSection
# Dual Head mode:
# Slave head is always CRT1
Section "Device"
Driver "sis"
Identifier "SiS 630-2"
Option "ForceCRT1" "TRUE"
# For dual head mode, BusID must be specified!
BusID "PCI:1:00:0"
# "Screen" selects the screen number for this device in dual head mode
# Screen 1 is slave (always CRT1 = external VGA)
Screen 1
EndSection
Section "Screen"
Identifier "Screen1"
Device "SiS 630-1"
Monitor "Generic LCD"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
# For dual head mode:
# DefaultDepth must be identical to master screen if using Xinerama.
# Otherwise, depths can be different.
# A depth of 8 is not supported in dual head mode.
# Resolutions can be different.
Section "Screen"
Identifier "Screen2"
Device "SiS 630-2"
Monitor "Generic VGA"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Multi"
Screen "Screen1"
Screen "Screen2" LeftOf "Screen1"
Option "Xinerama" "on"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "USB Mouse"
EndSection
Section "ServerLayout"
Identifier "Clone"
Screen "Screen1"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "USB Mouse"
EndSection
Section "DRI"
Mode 0666
EndSection
# enD of XF86Config
Die InputDevices heißen natürlich bei jedem anders. Bei Xinerama habe ich den externen Monitor links vom LCD platziert, weil das hier auch IRL so ist. Auf den ersten Blick merkwürdig mag erscheinen, dass im "Clone"-Layout nur ein Bildschirm angegeben ist. Tatsache ist aber, dass es bei mir nur so funktioniert, d.h. es wird tatsächlich dasselbe Bild intern und extern ausgegeben!
12. Oktober 2003 |