Bonjour,

j'ai un portable sous fedora 12 avec deux cartes graphiques différentes (switch hybride intel G45 / Nvidia 9300 M).
Je peux sans trop de problèmes passer de l'une à l'autre, mais depuis peu, j'essaie d'utiliser le potentiel réel des deux cartes, et je galère.
La carte nvidia a le dessus sur la carte intel, certes, mais j'aimerais aussi pouvoir utiliser l'accélération matérielle de l'intel, car j'aimerais pouvoir utiliser gnome-shell (qui est merveilleux, soit dit en passant).

Mon problème actuel est que la carte nvidia (dont j'ai installé le driver via le kmod-nvidia-PAE) semble être prioritaire.
Je veux utiliser l'extension glx, mais lorsque Xorg cherche le module .so correspondant à l'extension glx, il tombe d'abord sur /usr/lib/xorg/modules/extensions/nvidia/glx.so alors que le bon module est celui du lien symbolique /usr/lib/xorg/modules/extensions/glx.so (qui pointe sur la version intel ou celle nvidia selon le switch hybride).

Ce qui me donne donc :
(II) LoadModule: "glx"
(II) Loading /usr/lib/xorg/modules/extensions/nvidia/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
        compiled for 4.0.2, module version = 1.0.0
        Module class: X.Org Server Extension
(II) NVIDIA GLX Module  190.42  Tue Oct 20 20:55:08 PDT 2009
(II) Loading extension GLX

...

(II) LoadModule: "intel"
(II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
(II) Module intel: vendor="X.Org Foundation"
        compiled for 1.7.0, module version = 2.9.1
        Module class: X.Org Video Driver
        ABI class: X.Org Video Driver, version 6.0

...

(EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
record: RECORD extension enabled at configure time.
record: This extension is known to be broken, disabling extension now..
record: http://bugs.freedesktop.org/show_bug.cgi?id=20500
...
Comment forcer le bon module à être utilisé ?

Edit : bon, j'ai bêtement déplacé le libglx.so de nvidia en libglx.so.nvidia, puis je fais pointer le lien symbolique sur la bonne version (faudra juste que je refasse ça à chaque fois que le driver est mis à jour...)

Par contre, ça n'améliore pas mon cas avec gnome-shell. Lorsque j'essaie de le démarrer, soit l'écran devient vide (sauf le wallpaper qui est en fond, mais rien d'autre... par contre la souris peut bouger et j'ai des raies noires qui traversent l'écran de temps en temps), soit ça bloque et revient au mode standard, avec une erreur que j'ai reporté :
https://bugzilla.redhat.com/show_bug.cgi?id=556029
il faut utiliser l'option accelmethod UXA
cf une recherche sur le fofo, la méthode UXA c'est l'avenir et ça rox
Ca doit roxer. :-D

Mais ça ne résoud pas mon problème.
Lorsque je démarre gnome-shell avec
gnome-shell --replace &
j'ai alors l'erreur suivante, le gnome standard est réutilisé (heureusement) :
gnome-shell --replace
      JS LOG: conforming method: IntrospectRemote for
org.freedesktop.DBus.Introspectable
      JS LOG: Loading tweener.js
      JS LOG: Loading tweenlist.js
      JS LOG: Done loading tweenlist.js
      JS LOG: Done loading tweener.js
      JS LOG: Loading equations.js
      JS LOG: Done loading equations.js
Anomalie dans le gestionnaire de fenêtres : Unexpected X error: BadRequest
(invalid request code or no such operation) serial 559 error_code 1
request_code 151 minor_code 179)
Shell killed with signal 6
Ajout :
tant qu'on y est, voici mes deux xorg, mais je doute que j'ai grand chose à y ajouter :
Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    # InputDevice    "Synaptics" "SendCoreEvents"
    InputDevice    "Keyboard0" "CoreKeyboard"
    # InputDevice    "Cursor" "SendCoreEvents"
    InputDevice    "Stylus" "SendCoreEvents"
    InputDevice    "Eraser" "SendCoreEvents"
    InputDevice    "Pad"
    InputDevice    "Touch" "SendCoreEvents"
EndSection

### Wacom start
#  see http://linuxwacom.sourceforge.net/index.php/howto/inputdev for details
#  or 'man wacom'
#
Section "InputDevice"
    Identifier    "stylus"
    Driver        "wacom"
    Option        "Device"      "/dev/input/wacom"
    Option        "Type"        "stylus"
    Option        "USB"         "on"
    Option         "Mode"        "Absolute"# ...in relation to screen (default is abs)
    Option         "KeepShape"   "on"    # ...conform to screen size
    Option        "Button1"     "1"
    #Option        "Button2"     "3"    # ...seems my buttons are mixed?
    #Option        "Button3"     "2"
    #Option        "TPCButton"    "on"
    Option        "Threshold"   "1"    # ...presure required for event button1
    Option        "Num_buttons" "2"    # ...seems to be 32 by default!
    Option        "ButtonsOnly" "off"    # ...TEMPORARY: "on" for trouble shooting
    Option        "DebugLevel"  "7" 
    # Option     "commonDBG"   "3"    # ...driver debug
EndSection

Section "InputDevice"
    Identifier    "eraser"
    Driver        "wacom"
    Option        "Device" "/dev/input/wacom" # .../dev/input/event<n> instead maybe?
    Option        "Type"   "eraser"
    Option        "USB"     "on"
EndSection

Section "InputDevice"
    Identifier    "Touch"
    Driver        "wacom"
    Option        "Device" "/dev/input/touch"
    Option        "Type"    "touch"
    Option        "USB"    "on"
EndSection

Section "InputDevice"
    Identifier    "Pad"
    Driver        "wacom"
    Option        "Device" "/dev/input/wacom"
    Option        "Type" "pad"
    Option        "USB" "on"
EndSection

### Wacom end


Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "catalogue:/etc/X11/fontpath.d"
    FontPath     "built-ins"
EndSection

Section "Module"
    Load  "glx"
    Load  "dbe"
    Load  "record"
    Load  "dri"
    Load  "dri2"
    Load  "extmod"
    Load  "wacom"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/input/mice"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Device"
        # Option    "Tiling"            "False"
    ### 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" "True"                    # [<bool>]
        #Option     "NoDDC"                  # [<bool>]
        #Option     "ShowCache"              # [<bool>]
        #Option     "XvMCSurfaces"           # <i>
        #Option     "PageFlip"               # [<bool>]
    Option        "AccelMethod"    "UXA"
    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
et le nvidia (marche) :
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 1.0  (buildmeister@builder63)  Fri Aug 14 17:54:58 PDT 2009

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    # InputDevice    "Synaptics" "SendCoreEvents"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
    FontPath        "/usr/share/fonts/default/Type1"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from data in "/etc/sysconfig/keyboard"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbLayout" "fr_CH"
    Option         "XkbModel" "pc105"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option        "RegistryDwords"    "PerfLevelSrc=0x3333"   
# Resolution

    Option    "UseEDIDDpi" "False"
    Option    "AddARGBGLXVisuals" "True"
    Option    "DPI"    "96 x 96"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Je me suis inscrit à la mailing list de gnome-shell où une personne a eu le même problème (avec cartes graphiques hybride, une intel gma45 et une ati radeon).
Il a réussi à corriger le problème en ajouter des éléments d'options à Xorg.

Voici mon xorg actuel, modifié en tenant compte des ajouts de cette personne :
Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    # InputDevice    "Synaptics" "SendCoreEvents"
    InputDevice    "Keyboard0" "CoreKeyboard"
    # InputDevice    "Cursor" "SendCoreEvents"
    InputDevice    "Stylus" "SendCoreEvents"
    InputDevice    "Eraser" "SendCoreEvents"
    InputDevice    "Pad"
    InputDevice    "Touch" "SendCoreEvents"
EndSection

### Wacom start
#  see http://linuxwacom.sourceforge.net/index.php/howto/inputdev for details
#  or 'man wacom'
#
Section "InputDevice"
    Identifier    "stylus"
    Driver        "wacom"
    Option        "Device"      "/dev/input/wacom"
    Option        "Type"        "stylus"
    Option        "USB"         "on"
    Option         "Mode"        "Absolute"# ...in relation to screen (default is abs)
    Option         "KeepShape"   "on"    # ...conform to screen size
    Option        "Button1"     "1"
    #Option        "Button2"     "3"    # ...seems my buttons are mixed?
    #Option        "Button3"     "2"
    #Option        "TPCButton"    "on"
    Option        "Threshold"   "1"    # ...presure required for event button1
    Option        "Num_buttons" "2"    # ...seems to be 32 by default!
    Option        "ButtonsOnly" "off"    # ...TEMPORARY: "on" for trouble shooting
    Option        "DebugLevel"  "7" 
    # Option     "commonDBG"   "3"    # ...driver debug
EndSection

Section "InputDevice"
    Identifier    "eraser"
    Driver        "wacom"
    Option        "Device" "/dev/input/wacom" # .../dev/input/event<n> instead maybe?
    Option        "Type"   "eraser"
    Option        "USB"     "on"
EndSection

Section "InputDevice"
    Identifier    "Touch"
    Driver        "wacom"
    Option        "Device" "/dev/input/touch"
    Option        "Type"    "touch"
    Option        "USB"    "on"
EndSection

Section "InputDevice"
    Identifier    "Pad"
    Driver        "wacom"
    Option        "Device" "/dev/input/wacom"
    Option        "Type" "pad"
    Option        "USB" "on"
EndSection

### Wacom end


Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "catalogue:/etc/X11/fontpath.d"
    FontPath     "built-ins"
EndSection

Section "Module"
    Load  "glx"
    Load  "dbe"
    Load  "record"
    Load  "dri"
    Load  "dri2"
    Load  "extmod"
    Load  "wacom"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/input/mice"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Device"
        # Option    "Tiling"            "False"
    ### 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" "True"                    # [<bool>]
        #Option     "NoDDC"                  # [<bool>]
        #Option     "ShowCache"              # [<bool>]
        #Option     "XvMCSurfaces"           # <i>
        #Option     "PageFlip"               # [<bool>]
    
    # For Intel and Gnome-shell
    Option      "XAANoOffscreenPixmaps"     "true"
        Option      "ForceEnablePipeA"          "true"
        Option      "DRI"                       "true"
        Option      "NoDDC"                     "true"
        Option      "EnablePageFlip"            "true"
        Option      "RenderAccel"               "true"
        Option      "AccelMethod"               "XAA"
        Option      "MigrationHeuristic"        "greedy"
    #Option        "AccelMethod"    "UXA"
    Identifier  "Card0"
    Driver      "intel"
    VendorName  "Intel Corporation"
    BoardName   "Mobile 4 Series Chipset Integrated Graphics Controller"
    BusID       "PCI:0:2:0"
EndSection

# Graphical issues

Section "Extensions"
    Option "Composite" "Enable"
EndSection

Section "DRI"
    Mode 0666
EndSection

# Screen and resolution

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
Malheureusement, ça ne fonctionne pas...

Par contre, j'ai eu un bug reporté de abrt, qui contenait un stack trace douteux... en ce qu'il pointait vers /usr/lib/nvidia/libGL.so.1 ... peut-être que ma carte nvidia pose problème à ce moment ?
Y a-t-il un moyen pour s'assurer que le libGL.so utilisé est le bon ?
J'ai mis le doigt sur le problème !!!

J'ai vite essayé de désinstaller les drivers nvidia (kmod & co), et hop, la carte intel fonctionne impécablement !
Mais... ça me pose problème en ce que je serais bien heureux de pouvoir utiliser les deux cartes graphiques, et les conflits entre versions posent problème.
Comment faire ?

Avant, je fonctionnais sur le repointage des liens symboliques à la volée... c'est-à-dire que j'ai un script qui fait repointer mes liens /usr/lib/libGL.so.1 et /usr/lib/xorg/modules/extensions/libglx.so vers les versions intel / nvidia selon la carte activée.
La réalité est que lorsque xorg démarre, il fait des recherches plus grandes. Dans mon cas, il voit que j'ai le kmod-nvidia-PAE ou en tout cas en arriver à ne pas tenir compte de /usr/lib/libGL.so, mais de prendre /usr/lib/nvidia/libGL.so en considération avant tout !

... ce qui n'est pas sympathique, évidemment... :/

Est-ce que je dois me rabattre sur l'option de double-partitionnement du root selon la carte graphique choisie ?
Ca pose problème vu que j'ai pas mal de logiciels que j'aimerais utiliser avec les deux cartes graphiques, et ça serait stupide d'installer deux os complets pour ça (au pire, en gardant un seul /home, mais tout de même !).

Avez-vous des informations sur comment xorg gère le chargement des librairies ? comment faire pour qu'il tienne compte des bonnes versions ?
Arf, c'est tout sauf simple à l'heure actuelle...

:$
faut que tu blacklist nvidia quand tu veux utiliser la cg intel
cf recherche fofo (ou doc je sais pkus) blacklist radeon