OpenSolaris

Printable Version Enter a New Search
Bug ID 6798452
Synopsis X Server will not start on x86 systems with multiple graphics cards
State 3-Accepted (Yes, that is a problem)
Category:Subcategory xserver:xorg-server
Keywords
Responsible Engineer Edward Shu
Reported Against snv_107 , osol_2008.11
Duplicate Of
Introduced In
Commit to Fix
Fixed In
Release Fixed
Related Bugs 6522157 , 6794063 , 6799812 , 6805716 , 6805963 , 6805964 , 6845882 , 6854210
Submit Date 28-January-2009
Last Update Date 1-September-2009
Description
When installing Nevada build 107 on one of my x86 systems with 2 graphics cards,
X Server will not start after the installation is complete and the system has
rebooted.  dtlogin will not come up.  I've attached the Xorg.log.0.  Here is
the output from /var/dt/Xerrors:

X.Org X Server 1.5.3
Release Date: 5 November 2008
X Protocol Version 11, Revision 0
Build Operating System: SunOS 5.11 snv_104 i86pc 
Current Operating System: SunOS jane 5.11 snv_107 i86pc
Build Date: 22 January 2009  05:23:58PM
 

Solaris ABI: 64-bit
SUNWxorg-server package version: 6.9.0.5.11.10700,REV=0.2009.01.22
SUNWxorg-graphics-ddx package version: 6.9.0.5.11.10700,REV=0.2009.01.17
SUNWxorg-mesa package version: 6.9.0.5.11.10700,REV=0.2009.01.17
        Before reporting problems, check http://sunsolve.sun.com/
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue Jan 27 14:28:01 2009
(EE) Unable to locate/open config file
Primary device is not PCI
(==) Using default built-in configuration (49 lines)
(EE) Failed to load module "nvda" (module does not exist, 0)
(EE) No devices detected.

Fatal server error:
no screens found

Tue Jan 27 14:28:01 2009
error (pid 2416): Server unexpectedly died

Tue Jan 27 14:28:06 2009
error (pid 2416): Server for display :0 can't be started.


From Alan Coopersmith:
"one of the bugs we inherited from the open source release is that systems 
with multiple graphics cards need manual configuration to start Xorg now."
The upstream bug report is: https://bugs.freedesktop.org/show_bug.cgi?id=18321
Bug 18321: xserver 1.5.2 fails to start with more than one display card
Work Around
1)Use Xorg -configure to generate one configure file named xorg.conf.new
2) You will have two cards in the device section of xorg.cong.new, delete one
3) cp xorg.cong.new to /etc/xorg/X11/xorg.conf
4) restart GDM and Xorg
5) Your Xorg should work on the Intel graphics regardless of the switch on Intel 
   or Nvidia graphics.

Here is the sample XOrg configure file.
Section "ServerLayout"                                                          
        Identifier     "X.org Configured"                                       
        Screen      0  "Screen0" 0 0                                            
        InputDevice    "Mouse0" "CorePointer"                                   
        InputDevice    "Keyboard0" "CoreKeyboard"                               
EndSection                                                                      
                                                                                
Section "Files"                                                                 
        ModulePath   "/usr/X11/lib/modules/amd64"                               
        FontPath     "catalogue:/etc/X11/fontpath.d"                            
EndSection                                                                      
                                                                                
Section "Module"                                                                
        Load  "ia"                                                              
        Load  "glx"                                                             
        Load  "dbe"                                                             
        Load  "dri"                                                             
        Load  "xtsol"                                                           
        Load  "extmod"                                                          
        Load  "dri2"                                                            
EndSection                                                                      
                                                                                
Section "InputDevice"                                                           
        Identifier  "Keyboard0"                                                 
        Driver      "kbd"                                                       
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"                                                 
        VendorName   "Monitor Vendor"                                           
        ModelName    "Monitor Model"                                            
EndSection                                                                      
                                                                                
                                                                                
Section "Device"                                                                
        ### Available Driver options are:-                                      
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",           
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"                        
        ### [arg]: arg optional                                                 
        #Option     "NoAccel"                   # [<bool>]                      
        #Option     "SWcursor"                  # [<bool>]                      
        #Option     "ColorKey"                  # <i>   
        #Option     "CacheLines"                # <i>                           
        #Option     "Dac6Bit"                   # [<bool>]                      
        #Option     "DRI"                       # [<bool>]                      
        #Option     "NoDDC"                     # [<bool>]                      
        #Option     "ShowCache"                 # [<bool>]                      
        #Option     "XvMCSurfaces"              # <i>                           
        #Option     "PageFlip"                  # [<bool>]                      
        Identifier  "Card0"                                                     
        Driver      "intel"                                                     
        VendorName  "Intel Corporation"                                         
        BoardName   "Mobile 4 Series Chipset Integrated Graphics Controller"    
        BusID       "PCI:0:2:0"                                                 
EndSection                                                                      
                                                                                
Section "Screen"                                                                
        Identifier "Screen0"                                                    
        Device     "Card0"                                                      
        Monitor    "Monitor0"                                                   
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     1                                                     
        EndSubSection                                                           
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     4                                                     
        EndSubSection                                                           
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     8                                                     
        EndSubSection                                                           
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     15                                                    
        EndSubSection                                                           
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     16                                                    
        EndSubSection                                                           
        SubSection "Display"                                                    
                Viewport   0 0                                                  
                Depth     24                                                    
        EndSubSection                                                           
EndSection
Comments
Reproducible on OpenSolaris_117 X64 notebook Sony Z29N (one Intel graphic card, one Nvidia graphic card).
if I switch the graphics under Windows XP,  Windows can properly use the right one and the other one is not visible to Windows after system reboot.  The BIOS must disable the invisible one in the device initilization.  However, if I switch the graphics under Solaris,  both of the two graphics devices are visable to Solaris after reboot and Xorg can't start confused by two primary card.  It is verly likely that Windows get some higher level driver to manage graphics chip switch that will affect the device initialization in BIOS.  We must have platform specification to implement such a driver.  With the driver, only the right graphics device will be visible to Solaris avoiding two visible primary cards.
Sony Z series user group get some ACPI hack for the cold switch. Here is the link,
https://launchpad.net/~sony-vaio-z-series
http://www.basyskom.org/~eva/log_installation_vaio_z21vnx.html  sony-laptop module
Please check here:
...
or laptops like the Sony Vaio Z series, there is currently Linux support for cold switch of the graphics card:

Load Eva's sony-laptop module with speed_stamina=3.
In the file called /etc/modprobe.d/sony-laptop.conf add the following line:

-------------------------------------------------------------------
options sony-laptop speed_stamina=3
-------------------------------------------------------------------

Then boot with this kernel parameter (use the quotes):

-------------------------------------------------------------------
acpi_osi="!Windows 2006"
-------------------------------------------------------------------

Just put it in the kernel command line of your boot manager.

...