Solaris 10 x86 w/ Matrox G450 dual head and xinerama
I have solaris 10 x86 with matrox g450 dual head and x.org x-server. The problem is to get xinerama work. When xinerama isn't enabled, two different desktops work well - or, they work, but they are pretty useless because I can't move windows between them. So, I have to enable xinerama, but it seems, that neither JDS/Gnome nor CDE haven't been built including support for xinerama.
When I enable xinerama, X.org-x-server starts fine and there's dtlogin. When I login and it passes execution to gnome, it fails and x-server restarts. Same with CDE. But if I put 'exec /opt/sfw/bin/xterm to my .dtprofile', it starts ok and I can do some testing..
% dtwm
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 149 (XINERAMA)
Minor opcode of failed request: 2 (XINERAMAGetScreenCount)
Resource id in failed request: 0x0
Serial number of failed request: 18
Current serial number in output stream: 18
% gtk-demo
The program 'gtk-demo' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 13 error_code 3 request_code 149 minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
% gtk-demo --sync
The program 'gtk-demo' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 13 error_code 3 request_code 149 minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
If I start /opt/sfw/bin/fvwm2, it works fine too, so the problem seems to be gtk/glib/gnome and CDE. One odd thing is that, normal CDE-programs, like dtterm, dtcm, dtcalc etc. works fine. But dtwm doesn't work in xinerama mode.
So, would anyone have any suggestion what could I do? Do I have to recompile my own GNOME, or could Sun do something to the next Solaris 10 update? (As far as I understood, current Solaris 10 release doesn't include zfs yet, so there will be update soon, I think)
- Tuomas M
[2799 byte] By [
tmak] at [2007-11-25 22:54:59]

# 1
Did you get a solution for xinerama? Seems useless without desktop covering both screens!
# 2
The code used by CDE & JDS in Solaris to handle Xinerama screen layouts is unfortunately incompatible with the Xorg server.This is being tracked by Sun as bug id 6216985 and a fix is under development now.
alanc at 2007-7-5 17:10:20 >

# 3
Alan, thanks for your quick response. What's the ETA for this? I really want to be able to use a dual head G400 x86 at home. It's dual head alright but can't bring up CDE or JDS. I really need to be able to show it working to recommend Solaris x86.
Otherwise, I'm forced to pursue a different *unix solution. I want to stick with Sun!
The ideal solution would be to offer a version of x86 Xsun that is fully xinerama...
Ken
# 4
Another engineer has posted a temporary workaround at <a href="http://blogs.sun.com/roller/page/sch/20050427" target="_blank"> http://blogs.sun.com/roller/page/sch/20050427</a>.I don't know how long it will take to get a patch out for this.
alanc at 2007-7-5 17:10:20 >

# 5
Alan, thanks for the head's up to Stephen's blog. I'll give this a try for my preferred window manager (CDE). I know, not the most recent WM but it's fast and does what i need. Sure hope you can release a full-blown tested patch in the near future (or working Xsun with xinerama for Solaris x86)!
# 6
Tried the patch. Successfully applied this ad-hoc patch and wreaked Xwindows install. Not happy. Sun need to fix this very quickly or i'm off to FreeBSD/Linux.
# 7
but this patch does not solve the problem, that you cannot login via XDMCP and use CDE.
ges at 2007-7-5 17:10:20 >

# 8
Don't know if this suggestion is much use, but have you tried XFree86? I've been using XFree86 on Solaris x86 for quite some time now... don't know if the Xinerama incompatibility also extends to XFree86...
# 9
Has this been fixed yet? We are having precisely this problem.Thx,Skip Montanaro
# 10
Apparently still not fixed. I continue to be disappointed by Sun. I can buy an Apple G5 workstation (with a dual-head card) and run two monitors as standard on a supported unix workstation. (I'm typing this response on an Apple PowerBook).
I use a quad-head Win XP at work and i want to use a dual-headed Solaris x86 machine at home. However, Sun seems to think i need to buy a $2400 wide monitor.
Maybe it's just time to accept they will not fix this bug and they'll use more customers. Put options on Suns stock look inviting as they continue to ignore paying customers.
# 11
you get a solution for G450 card. I'd love to see your xorg.conf if you did.
# 12
Well, i did get this working after discovering that my NEC 1810s are a little fussy about sync frequencies when used with xorg. H-Sync frequencies given in the user manual are too broad for the Matrox G450/Xorg combo.
Sun did a nice job of fixing the Xinerama specification and pushing out a patch (119060-04) so that Solaris 10 x86 CDE will play nice with Xorg.
HOWEVER, not all of the CDE applications are patched. File Manager, Application Manager and Text Editor will not run under Xinerama.
This is also true of any CDE target that depends on these applications:
1. File Manager
Personal Bookmarks
Home Folder
Customize Menu
Trash Can
2. Application Manager
Applications
Desktop Controls
Information
3. Text Editor
Text Note
Text Editor
Suggestion Box
Perhaps Alan has a cunning plan, but i think Sun really needs to patch these CDE applications to make them Xinerama friendly. And no I don't want to use JDS. CDE is much faster and perfect for terminal / emacs!
Ken
# 13
Patches have been released to fix bug 6216985 on Solaris 10:
SPARC: 119059-04 - <a href="http://sunsolve.sun.com/pub-cgi/getpatch.pl?documentId=119059" target="_blank"> http://sunsolve.sun.com/pub-cgi/getpatch.pl?documentId=11905 9</a>
x86/x64: 119060-04 - <a href="http://sunsolve.sun.com/pub-cgi/getpatch.pl?documentId=119060" target="_blank"> http://sunsolve.sun.com/pub-cgi/getpatch.pl?documentId=11906 0</a>
If you're still having problems with CDE apps after those patches are installed, then there's presumably another bug which I don't know about causing those issues - but I haven't seen any problems on my systems.
alanc at 2007-7-5 17:10:20 >

# 14
Hello,
I'm also using a g450.
Now I'm trying for 5 days to get it work with xinerama under Xorg and/or
Xsun.
Can anybody tell me how to get it work ?
I would like to see a working xorg.conf.
(I don't know how to configure 2 screens for Xsun. Mybe someone can give my his configuration file(s) ?)
Thanks to all who will help me !!!
p.s. here is my latest attempt of xorg.conf which does not provide xinerama for me:
###########################################################
Section "ServerLayout"
Identifier"Multihead layout"
Screen 0 "Screen 0" 0 0
Screen 1 "Screen 1" Rightof "Screen 0"
InputDevice"Mouse1" "CorePointer"
InputDevice"Keyboard1" "CoreKeyboard"
Option "Xinerama" "true"
#Option"Clone" "off"
EndSection
#
Section "Module"
Load"dbe"# Double buffer extension
SubSection "extmod"
Option"omit xfree86-dga"# don't initialise the DGA extension
EndSubSection
Load"bitstream"
Load"type1"
Load"Xst"
Load"IA"
EndSection
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/"
#FontPath"/usr/X11/lib/X11/fonts/local/"
#FontPath"/usr/X11/lib/X11/fonts/Speedo/"
#FontPath"/usr/X11/lib/X11/fonts/freefont/"
#ModulePath "/usr/X11/lib/modules"
EndSection
#************************************************************ **********
# Input devices
#************************************************************ **********
Section "InputDevice"
Identifier "Keyboard1"
Driver"Keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules""xorg"
Option "XkbModel""pc105"
Option "XkbLayout" "de"
EndSection
#************************************************************ **********
# Core Pointer's InputDevice section
#************************************************************ **********
Section "InputDevice"
# Identifier and driver
Identifier "Mouse1"
Driver"mouse"
Option "Protocol""IMPS/2"
Option "ZAxisMapping" "4 5"
Option "Device""/dev/kdmouse"
#Option "Emulate3Buttons"
#Option "Emulate3Timeout""50"
EndSection
#************************************************************ **********
# Monitor section
#************************************************************ **********
# Any number of monitor sections may be present
Section "Monitor"
Identifier "nec"
VendorName"NEC"
ModelName"NEC LCD"
HorizSync30.0 - 81.0
VertRefresh 50-90
EndSection
Section "Monitor"
Identifier "nec2"
VendorName"NEC"
ModelName"NEC LCD"
HorizSync30.0 - 81.0
VertRefresh 50-90
EndSection
#************************************************************ **********
# Graphics device section
#************************************************************ **********
Section "Device"
Identifier "Matrox"
Driver"mga"
VideoRam32768
BusID"PCI:01:00:0"
# Insert Clocks lines here if appropriate
EndSection
Section "Device"
Identifier "Matrox2"
Driver"mga"
VendorName "Matrox"
BoardName"Matrox Millennium G450"
BusID"PCI:01:04:0"
#Option "MGASDRAM"
EndSection
#************************************************************ **********
# Screen sections
#************************************************************ **********
Section "Screen"
Identifier "Screen 0"
Device"Matrox"
Monitor"nec"
DefaultDepth 16
Subsection "Display"
Depth8
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
Subsection "Display"
Depth16
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
Subsection "Display"
Depth24
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
EndSection
Section "Screen"
Identifier "Screen 1"
Device"Matrox2"
Monitor"nec2"
DefaultDepth 16
Subsection "Display"
Depth8
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
Subsection "Display"
Depth16
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
Subsection "Display"
Depth24
Modes"1280x1024" "1024x768" "800x600" "640x480"
ViewPort0 0
EndSubsection
EndSection
###########################################################
# 15
Here's a working xorg.conf for a Matrox G450. However, Sun still has to fix the Xinerama bugs with the specific apps I mentioned in my earlier posting. You wonder if they actually tested their fix on a CDE desktop!
Personally, I don't they can be bothered so I'll probably move over to Linux:
Section "ServerLayout"
Identifier"frz-03"
Screen 0 "Screen0"
Screen1 "Screen1" RightOf "Screen0"
InputDevice"Mouse0" "CorePointer"
InputDevice"Keyboard0" "CoreKeyboard"
EndSection
Section "ServerFlags"
Option"Xinerama" "true"
EndSection
Section "Files"
RgbPath"/usr/X11/lib/X11/rgb"
ModulePath"/usr/X11/lib/modules"
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
Section "Module"
Load "IA"
Load "Xst"
Load "dbe"
Load "extmod"
Load "record"
Load "xtrap"
Load "glx"
Load "bitstream"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver"keyboard"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver"mouse"
Option"Protocol" "auto"
Option"Device" "/dev/mouse"
Option"ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier"Monitor0"
HorizSync63.0 - 65.0
VertRefresh59 - 61
EndSection
Section "Device"
Identifier"Card0"
Driver"mga"
VendorName"Matrox Graphics, Inc."
BoardName"G400/G450"
BusID"PCI:1:0:0"
Screen0
EndSection
Section "Device"
Identifier"Card1"
Driver"mga"
VendorName"Matrox Graphics, Inc."
BoardName"G400/G450"
BusID"PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device"Card0"
Monitor"Monitor0"
DefaultDepth24
SubSection "Display"
Depth24
Modes"1280x1024"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device"Card1"
Monitor"Monitor0"
DefaultDepth24
SubSection "Display"
Depth24
Modes"1280x1024"
EndSubSection
EndSection
