Bug 133828

Summary: SaX2 is unable to configure Xinerama on an Intel 855 GM (card which supports Xinerama)
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Médéric Boquien <mboquien>
Component: SaX2Assignee: Marcus Schaefer <ms>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: unspecified   
Target Milestone: ---   
Hardware: x86   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: SaX.log

Description Médéric Boquien 2005-11-15 14:51:31 UTC
I try to make Xinerama work with a laptop which has an Intel 855 GM graphic card. When i want to set up the duplex mode in SaX2, i can check the checkbox to activate it. But when i click on configurate, i can only enter the information for the external screen but the option to chose between clone and xinerama modes is greyed as you can see on this screenshot: http://mboquien.free.fr/sax2_bug.png . I know the Xinerama mode can work with this card as i have used it for several months on this laptop using debian testing. I've tried to use the debian xorg.conf file and could make xinerama work, so i think it is a bug in SaX2 to not allow to choose Xinerama mode.

Here is the hwinfo for the graphic card, which has two entries as expected:
16: PCI 02.0: 0300 VGA compatible controller (VGA)
  [Created at pci.277]
  UDI: /org/freedesktop/Hal/devices/pci_8086_3582_0
  Unique ID: _Znp.Yzt2EaR9025
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Model: "ASUSTeK 855 GM"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x3582 "855 GM"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x1712
  Revision: 0x02
  Memory Range: 0xf0000000-0xf7ffffff (rw,prefetchable)
  Memory Range: 0xfeb80000-0xfebfffff (rw,non-prefetchable)
  I/O Ports: 0xdc00-0xdc07 (rw)
  IRQ: 5 (724640 events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v00008086d00003582sv00001043sd00001712bc03sc00i00"
  Driver Info #0:
    XFree86 v4 Server Module: i810
  Driver Info #1:
    XFree86 v4 Server Module: i810
    3D Support: yes
    Extensions: dri
  Config Status: cfg=yes, avail=yes, need=yes, active=unknown

17: PCI 02.1: 0380 Display controller
  [Created at pci.277]
  UDI: /org/freedesktop/Hal/devices/pci_8086_3582
  Unique ID: ruGf.Y+Ixerc6mGA
  SysFS ID: /devices/pci0000:00/0000:00:02.1
  SysFS BusID: 0000:00:02.1
  Hardware Class: graphics card
  Model: "ASUSTeK 855 GM"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x3582 "855 GM"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x1712
  Revision: 0x02
  Memory Range: 0xe8000000-0xefffffff (rw,prefetchable)
  Memory Range: 0xfea80000-0xfeafffff (rw,non-prefetchable)
  Module Alias: "pci:v00008086d00003582sv00001043sd00001712bc03sc80i00"
  Driver Info #0:
    XFree86 v4 Server Module: i810
  Driver Info #1:
    XFree86 v4 Server Module: i810
    3D Support: yes
    Extensions: dri
  Config Status: cfg=yes, avail=yes, need=yes, active=unknown

here is the sax2 -p output:
Chip: 0  is -> Intel 855 GM                    00:02:0 0x8086 0x3582 PCI i810

Is there anything more i should send? Is there a quick fix i could try for that, like adding my graphic card to the xinerama-able list? (where is this database located?)
Thank you very much for all those nice tools, regards,

Médéric

P.S: the clone mode works perfectly
Comment 1 Marcus Schaefer 2005-11-15 15:45:30 UTC
yes the Intel driver doesn't support that using MergedFB. This is the
reason why sax disables the part you cannot activate. If you want to
combine the screens you only have the choice of using the old Xinerama
extension but please note you will loose 3D capabilities on the second
head in that case.

It's a hack but you should be able to tweak that as follows:

  cd /usr/share/sax/profile
  cp Radeon_DualHead Intel_DualHead

  --> edit the Intel_DualHead file and replace 

      Device  -> [X]   ->  Driver = radeon 
      Device  -> [X+1] ->  Driver = radeon

      with

      Device  -> [X]   ->  Driver = i810 
      Device  -> [X+1] ->  Driver = i810

if you have done that you can call sax2 as follows:

   init 3
   sax2 -r -b /usr/share/sax/profile/Intel_DualHead

If this works I will add the Intel profile to the sax sources :-)

Regards
Marcus
Comment 2 Médéric Boquien 2005-11-15 16:01:05 UTC
Thank you for the q
uick answer Marcus.
Unfortunately it doesn't work. I'll attach the SaX.log.  The error message makes me think it should be possible to fix it quite easily:
(EE) I810(0): You must have a MonitorLayout defined for use in a DualHead or Clone setup.
(EE) I810(1): Failed to setup second head due to primary head failure.
I'll play a bit with SaX2 this evening if you haven't come up with an idea before.
As it worked with debian, it'll work with SuSe. Xinerama and SuSe are too nice to live without. :)
Regards,
Médéric
Comment 3 Médéric Boquien 2005-11-15 16:04:45 UTC
Created attachment 57388 [details]
SaX.log

Sorry for polluting the bug report 130918, i uploaded the file in the wrong window. :-(
Comment 4 Médéric Boquien 2005-11-15 22:56:50 UTC
Hello Marcus.

I could finally make Xinerama work, but it is not completely straightforward. I followed those steps:
*in /usr/share/sax/profile copy Radeon_DualHead to Intel_DualHead and change the radeon strings to i810
*change Intel_DualHead_DriverOptions:
--- Intel_DualHead_DriverOptions.bak    2005-11-15 20:13:44.000000000 +0100
+++ Intel_DualHead_DriverOptions        2005-11-15 20:14:20.000000000 +0100
@@ -3,7 +3,7 @@
 # intel based dual head card
 # ---------------------------
 Device  -> [X] ->  Raw -> 20 -> Option = "MonitorLayout" "[MONITORLAYOUT]"
-Device  -> [X] ->  Raw -> 21 -> Option = "Clone" "yes"
+Device  -> [X] ->  Raw -> 21 -> Option = "Xinerama" "yes"
 Device  -> [X] ->  Raw -> 22 -> Option = "CloneRefresh" "{Monitor->[X]->VertRefresh}"
 Device  -> [X] ->  Raw -> 23 -> Option = "Modes" "{Screen->[X]->Depth->16->Modes:0}"

@@ -11,10 +11,10 @@
 # setup SaX meta options
 #--------------------------------
 Device  -> [X] -> Option = SaXDualHead
-Device  -> [X] -> Raw -> 24 -> Option = "SaXDualOrientation" "off"
+Device  -> [X] -> Raw -> 24 -> Option = "SaXDualOrientation" "RightOf"
 Device  -> [X] -> Raw -> 25 -> Option = "SaXDualHSync" "off"
 Device  -> [X] -> Raw -> 26 -> Option = "SaXDualVSync" "{Monitor->[X]->VertRefresh}"
 Device  -> [X] -> Raw -> 27 -> Option = "SaXDualResolution" "{Screen->[X]->Depth->16->Modes:0}"
-Device  -> [X] -> Raw -> 28 -> Option = "SaXDualMode" "off"
+Device  -> [X] -> Raw -> 28 -> Option = "SaXDualMode" "Xinerama"
 Device  -> [X] -> Raw -> 29 -> Option = "SaXDualMonitorVendor" "{Monitor->[X]->VendorName}"
 Device  -> [X] -> Raw -> 30 -> Option = "SaXDualMonitorModel" "{Monitor->[X]->ModelName}"
m
*launch sax2 -r -b Intel_DualHead when X is running
*i then got a screen with 3 tabs, 1 for each display and one where i could choose clone/xinerama/independant
*i gave the correct informations for each screen but it still didn't work since MonitorLayout was missing
*i added Option       "MonitorLayout" "CRT,LFP" in the section Device[0]
*it worked

I don't know how it is supposed to be configured. I noticed that for each display if you tick the checkbox to activate the duplex mode, it doesn't work (even if you activate the second display or not)
I guess my changes to the config files are perhaps not always needed or even appropriate and make the tool not work as it is supposed to. I'm ready to test with some new files.

Thank you very much, regards,

Médéric
Comment 5 Marcus Schaefer 2005-11-16 15:14:05 UTC
I provided a new version of sax to you. Please find new packages here:

   ftp://ftp.berlios.de/pub/sax/head-build/suse-10.0

update all of them using "rpm -Uhv" If you did that you should be
able to call sax with the following command:

   sax2 -b Xinerama
Comment 6 Médéric Boquien 2005-11-16 21:16:56 UTC
Hi Marcus,

Thank you very much for the RPMs. I've tested them. SaX seems to work well except that there is still a missing Option "MonitorLayout" "CRT,LFP" in the device section which makes that it is impossible to test from SaX before saving the changes as the X server crashes because of the missing option. And it is also necessary to add this option to the generated
xorg.conf file.

Thanks, regards,

Médéric