" Blacklister " l'id matériel d'un port pci

Bonjour à tous,
( ou re-boujour )

Le bricolage qui m’intéresse est plutôt flou dans ma tête : je vais essayer de m’expliquer le plus clairement possible.
Il s’agit plus d’une demande d’avis.

Je vais être incessamment sous peu le possesseur d’une nvidia 9800GT en remplacement de ma catastrophique ATI 4670HD.
Me voila donc, dans un futur proche avec ces 2 cartes graphiques et deux slots pcie sur ma carte mère.

Nvidia c’est bien : Les pilotes proprio ne sont pas mauvais et me permettrons des utilisations graphiques lourdes qui m’étaient impossible avec la ATI.
ATI c’est bien aussi : Le développement des pilotes libres a fait un bond phénoménal.

Ceci dit voila ce que je me demande; Puis-je:

Sur un premier système ( disons Sid-1 ) utiliser la carte Nvidia ( et tout autre sortes de cochonneries kipuképalibre) sur le premier slot pci-e et interdire au système la reconnaissance du deuxième slot ( ou sera toujours présent la carte ATI ) par son identifiant matériel.

Sur un second système ( disons Sid-2 ) utiliser la carte ATI ( pour un système 100% libre ) sur le second slot pci-e et interdire au système la reconnaissance du premier slot ( ou sera toujours présent la carte Nvidia ) par son identifiant matériel

Voila, J’admets que c’est carrément tordu :stuck_out_tongue:
J’espère que mes explications ne sont pas trop nébuleuses.

Je cherche avant tout a savoir si c’est théoriquement possible avant de me lancer dans des recherches qui pourraient s’avérer inutiles.
Tout les avis sont les bienvenus :smiley:
:smt006

Ca peut tout à fait se faire en configurant correctement le “xorg.conf” qui a été conçu pour ce genre de choses. Il doit cependant exister d’autres solutions mais je ne les connais pas.

Merci de ta réponse Cluxter :smiley:

Ce qui m’ennui c’est que ma carte ATI fonctionne sans xorg.conf. Alors tu imagine le tableau au lancement du module Nvidia = patatra ( a moins de blacklister tout les pilotes libres radeon ati nv et vesa :open_mouth: ( aie ) )

A moins que le xorg.conf généré par le pilote Nvidia prenne le dessus sur les appels aux pilotes lors du chargement ???
Dans le cas du système libre : 2 cartes au démarrage; 2 pilotes différents qui tenteront de se charger ; pas de xorg.conf
J’imagine même pas le foutoir ( surement un beau : patatra ). A moins d’aller bidouiller du coté de udev et hal ( ça va être formateur cette histoire :unamused: )

Je vais essayer de me renseigner au maximum sur la façon dont le système ( le noyau aussi peut-être :question: ) gère le matériel avant de me lancer dans des manip’ qui pourrait me faire sauter mon système ( voir faire griller le pc et ses [size=85]précieuses[/size] données :laughing: )

Ca, ça va encore être un fil de longue haleine :smt005 :smt005

Hoho, tout le monde … Si vous avez un avis je suis preneur :wink:

Encore merci

Pourquoi ne pas blacklister les modules nvidia ou fglrx suivant les cas et de même supprimer les pilotes nvidia_drv.so, nv_drv.so ou ati_drv.so, radeon*_drv.so suivant les cas?

Merci fran.b :slightly_smiling:

Dans le cas ou ce serait le pilote nvidia qui assurerait l’affichage je supprimerais radeon*_drv.so et ma Sid( disons numéro1 ) ignorerait superbement la carte ATI du slot ( disons numéro 2 ) ???
Noté :smiley:
( C’est tellement au-dela de mes capacités que je prend des notes au fur et à mesure avant de commettre l’irrémédiable :confused: )

Mais dans le cas du système libre ( Sid numéro2 ) tournant avec xserver-xorg-vidéo-radeon comment faire ignorer xserver-xorg-video-nv au système qui se chargera avec le slot numero1 de la carte nvidia ? :question: ?

Il suffit de virer nv_drv.so dans /usr/lib/xorg/modules/drivers. Je pense qu’il faut virer vesa également qui est générique. Il faut essayer, sinon, une méthode peut être plus simple est de préciser la carte dans le xorg.conf à l’aide de l’option BusID:

[quote] BusID "bus-id"
This specifies the bus location of the graphics card. For
PCI/AGP cards, the bus-id string has the form
PCI:bus:device:function (e.g., “PCI:1:0:0” might be appropriate
for an AGP card). This field is usually optional in single-head
configurations
when using the primary graphics card. In multi-
head configurations, or when using a secondary graphics card in
a single-head configuration, this entry is mandatory
. Its main
purpose is to make an unambiguous connection between the device
section and the hardware it is representing. This information
can usually be found by running the pciaccess tool scanpci.
[/quote]tu es pile dans le second cas. Lis le man xorg.conf, ça n’a pas l’air de poser de pbm ta configuration

Nickel, :smiley:

[quote=“fran.b”]Il suffit de virer nv_drv.so dans /usr/lib/xorg/modules/drivers. Je pense qu’il faut virer vesa également qui est générique.
[/quote]
J’enverrai les tests après avoir potassé du “keskessé” .so :smt024
Si je m’exprime sans accent, c’est que j’ai flingué X :smt005 :smt005

[quote=“fran.b”]Il faut essayer, sinon, une méthode peut être plus simple est de préciser la carte dans le xorg.conf à l’aide de l’option BusID:

[quote] BusID "bus-id"
This specifies the bus location of the graphics card. For
PCI/AGP cards, the bus-id string has the form
PCI:bus:device:function (e.g., “PCI:1:0:0” might be appropriate
for an AGP card). This field is usually optional in single-head
configurations
when using the primary graphics card. In multi-
head configurations, or when using a secondary graphics card in
a single-head configuration, this entry is mandatory
. Its main
purpose is to make an unambiguous connection between the device
section and the hardware it is representing. This information
can usually be found by running the pciaccess tool scanpci.

[/quote][/quote]
Génial: Ca répond a ma question d’origine : Est-ce possible ? :smiley: Et ça l’est ( Linux n’arretera pas de me surprendre :open_mouth: ) Je m’en vais potasser tout ça

Ho! Un RTFM :wink: Je vais explorer tout ça puis passer à la pratique … et après … bhen …

Un trééés grand merci fran.b :smiley:

Et hop !!
Les deux cartes sont dans le boitier. C’est au niveau du bios que le choix de la carte se fait. Jusqu’ici tout va bien !!
A premiere vue sur le système propriétaire kipuképalibre il ne devrait pas y avoir trop de problèmes ( comme par hasard :unamused: ). 'Juste le xorg.conf à éditer
Là j’ai installé nv parce que mon Nunux charge automatiquement sur le premier port pci ( nvidia ), à ce stade il me suffirai d’installer les pilotes proprios, mais ce n’est pas le but :smt003 :smt003
Il faut que je trouve un moyen de lui faire comprendre que ç’est sur le deuxième port pci qu’il doit envoyer l’affichage mais on parle pas du tout le même languageeee :smt089

Le gros problème de mon système 100% libre c’est qu’il n’y a pas de xorg.conf sur lequel pourrait s’appuyer radeon … heu alors je fais quoi ?? Je le crée de A à Z avec mes petites mimines???

D’ailleurs les pilotes libres de Sid ont-ils étés conçus pour pouvoir fonctionner avec ce fichier ???
Z’avez une p’tite idée ???
Please :smt100
:smt006

Ha oui: Des petits renseignements

lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 9800 GT] (rev a2) 02:00.0 VGA compatible controller: ATI Technologies Inc RV730XT [Radeon HD 4670]

Lors du boot sur la ATI nv n’est pas installé ( ou pugé ) et je supprime nv_drv.so.
L’écran affiche bien les sorties tty depuis la prise VGA de l’ATI ( normal c’est le bios qui le lui à dit ) mais X refuse de se montrer.

Fais

en root et récupère le fichier xorg.conf.new créé. Tu l’édites, fais les mofis, et hop.

[quote=“fran.b”]Xorg -configure

en root et recupere le fichier xorg.conf.new cree. Tu l’edites, fais les mofis, et hop.[/quote]

Je teste :smt087
Merci :smiley:

Yop :slightly_smiling:
J ai un xorg.conf mais il y a qqch qui cloche, Toujours pas de X [ je boute sur un live Debian en qwerty ]

Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "fr" Option "XkbVariant" "latin9"
La je crois que c est bon

[code]Section “Device”
### Available Driver options are:-
[ … etc etc …]
Identifier "Card0"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "RV730XT [Radeon HD 4670]"
BusID "PCI:2:0:0

[/code]
La ca a l air honnete :neutral_face:

Mais alors ces trucs la m ont l air bizzares :

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

Section “Monitor”
#DisplaySize 410 260 # mm
Identifier "Monitor0"
VendorName "ACI"
ModelName "VW195"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option “DPMS”
[/code]

Une idee ?
J ai l4i;pression qu il y a de nombreux morceaux a effacer non ?

La première section concerne la souris, (avec les boutons, molette, compatible touchpad), la deuxième concerne ton écran et me parait correcte.

Bonjour,
Bon en toute logique ça devrait marcher sauf que ça ne marche pas :frowning:
La seule erreur qui m’est renvoyé c’est que le “keyword” identifier n’est pas valide dans la section device

Section "Device" Identifier "Card0" Driver "radeon"
:open_mouth: :open_mouth:
Ca doit être surement lié aux problèmes que j’ai eu précedemment avec le pilote radeon
Donc plutot que de flinguer ma " station de travail" je la passe sous nv ( puis nvidia ) et je bricolerai pour la Sid radeon/libre sur une réinstallation toute fraiche et surtout propre.
D’autant qu’il me semble que radeon ne gère pas ce genre de bidouille; par contre radeonhd lui le peut.
Ajourné donc Mais pas clos … à suivre :wink:
Merci pour votre aide
:smt023

Donne le xorg.conf que tu as mis finalement…

Bonjour,
Bhen finalement je l’ai viré ( pas besoin avec nv ) mais je le garde de coté (au cas ou)
Le voila:

[code] cat /etc/X11/xorg.conf.test
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 “Screen0” 0 0
InputDevice “Mouse0” "CorePointer"
InputDevice “Keyboard0” "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection

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

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option “XkbModel” "pc105"
Option “XkbLayout” "fr"
Option “XkbVariant” "latin9"
EndSection

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

Section “Monitor”
#DisplaySize 410 260 # mm
Identifier "Monitor0"
VendorName "ACI"
ModelName "VW195"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection

Section “Device”
### Available Driver options are:-
### Values: : integer, : float, : “True”/“False”,
### : “String”, : " Hz/kHz/MHz"
### [arg]: arg optional
#Option “NoAccel” # []
#Option “SWcursor” # []
#Option “Dac6Bit” # []
#Option “Dac8Bit” # []
#Option “BusType” # []
#Option “CPPIOMode” # []
#Option “CPusecTimeout” #
#Option “AGPMode” #
#Option “AGPFastWrite” # []
#Option “AGPSize” #
#Option “GARTSize” #
#Option “RingSize” #
#Option “BufferSize” #
#Option “EnableDepthMoves” # []
#Option “EnablePageFlip” # []
#Option “NoBackBuffer” # []
#Option “DMAForXv” # []
#Option “FBTexPercent” #
#Option “DepthBits” #
#Option “PCIAPERSize” #
#Option “AccelDFS” # []
#Option “IgnoreEDID” # []
#Option “CustomEDID” # []
#Option “DisplayPriority” # []
#Option “PanelSize” # []
#Option “ForceMinDotClock” #
#Option “ColorTiling” # []
#Option “VideoKey” #
#Option “RageTheatreCrystal” #
#Option “RageTheatreTunerPort” #
#Option “RageTheatreCompositePort” #
#Option “RageTheatreSVideoPort” #
#Option “TunerType” #
#Option “RageTheatreMicrocPath” #
#Option “RageTheatreMicrocType” #
#Option “ScalerWidth” #
#Option “RenderAccel” # []
#Option “SubPixelOrder” # []
#Option “ShowCache” # []
#Option “ClockGating” # []
#Option “VGAAccess” # []
#Option “ReverseDDC” # []
#Option “LVDSProbePLL” # []
#Option “AccelMethod” #
#Option “DRI” # []
#Option “ConnectorTable” #
#Option “DefaultConnectorTable” # []
#Option “DefaultTMDSPLL” # []
#Option “TVDACLoadDetect” # []
#Option “ForceTVOut” # []
#Option “TVStandard” #
#Option “IgnoreLidStatus” # []
#Option “DefaultTVDACAdj” # []
#Option “Int10” # []
#Option “EXAVSync” # []
#Option “ATOMTVOut” # []
#Option “R4xxATOM” # []
#Option “ForceLowPowerMode” # []
#Option “DynamicPM” # []
#Option “NewPLL” # []
#Option “ZaphodHeads” #
Identifier "Card0"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "RV730XT [Radeon HD 4670]"
BusID "PCI:2:0:0"
EndSection

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
Modes "1400x900"
EndSubSection[/code]

Il te manque

Section "Screen" ... EndSection

Ça doit être

[code][…]
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "RV730XT [Radeon HD 4670]"
BusID "PCI:2:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection “Display”
[…]
EndSection
[/code]

[quote=“fran.b”]Il te manque

Code:
Section “Screen”

EndSection[/quote]

Ho pu** – Le boulet !!
Je réinstalle une Sid propre
et je reviens … :blush: :blush:

—_ !!
:smiley: Ca marche !!! :smt023
Je viens de bouter sur une Sid minimale avec le xorg.conf “révisé” et c’est nickel.
En plus vu le bond des performances du pilote radeon je n’ai même plus besoin des firmwares-linux-nonfree :slightly_smiling:
Pour un usage bureautique et surf c’est ce qu’on peut faire de mieux.

Alors un résumé:

Sur sda2 j’ai le / d’une Sid “proprio” boutant sur la nvidia et ses drivers qui ignore la carte ATI via les réglages de son fichier de configuration ( qui n’est plus xorg.conf = j’éditerai ça plus tard )…

Sur sda8 j’ai le / d’une Sid libre ( ni contrib ni non-free ) boutant sur ATI via le xorg.conf ( que je re- placarde quand même si un visiteur venait a chercher des renseignements dans le coin ).

Les deux sur un /home commun en sdb1.

[code]Section “ServerLayout”
Identifier “Default Layout”
Screen 0 “Screen0” 0 0
InputDevice “Mouse0” “CorePointer”
InputDevice “Keyboard0” “CoreKeyboard”
EndSection

Section “Files”
ModulePath “/usr/lib/xorg/modules”
FontPath “/usr/share/fonts/X11/misc”
FontPath “/usr/share/fonts/X11/cyrillic”
FontPath “/usr/share/fonts/X11/100dpi/:unscaled”
FontPath “/usr/share/fonts/X11/75dpi/:unscaled”
FontPath “/usr/share/fonts/X11/Type1”
FontPath “/usr/share/fonts/X11/100dpi”
FontPath “/usr/share/fonts/X11/75dpi”
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
FontPath “built-ins”
EndSection

Section “Module”
Load “record”
Load “extmod”
Load “glx”
Load “dbe”
Load “dri”
Load “dri2”
EndSection

Section “InputDevice”
Identifier “Keyboard0”
Driver “kbd”
Option “XkbModel” “pc105”
Option “XkbLayout” “fr”
Option “XkbVariant” “latin9”
EndSection

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

Section “Monitor”
#DisplaySize 410 260 # mm
Identifier “Monitor0”
VendorName “ACI”
ModelName “VW195”
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option “DPMS”
EndSection

Section “Device”
### Available Driver options are:-
### Values: : integer, : float, : “True”/“False”,
### : “String”, : " Hz/kHz/MHz"
### [arg]: arg optional
#Option “NoAccel” # []
#Option “SWcursor” # []
#Option “Dac6Bit” # []
#Option “Dac8Bit” # []
#Option “BusType” # []
#Option “CPPIOMode” # []
#Option “CPusecTimeout” #
#Option “AGPMode” #
#Option “AGPFastWrite” # []
#Option “AGPSize” #
#Option “GARTSize” #
#Option “RingSize” #
#Option “BufferSize” #
#Option “EnableDepthMoves” # []
#Option “EnablePageFlip” # []
#Option “NoBackBuffer” # []
#Option “DMAForXv” # []
#Option “FBTexPercent” #
#Option “DepthBits” #
#Option “PCIAPERSize” #
#Option “AccelDFS” # []
#Option “IgnoreEDID” # []
#Option “CustomEDID” # []
#Option “DisplayPriority” # []
#Option “PanelSize” # []
#Option “ForceMinDotClock” #
#Option “ColorTiling” # []
#Option “VideoKey” #
#Option “RageTheatreCrystal” #
#Option “RageTheatreTunerPort” #
#Option “RageTheatreCompositePort” #
#Option “RageTheatreSVideoPort” #
#Option “TunerType” #
#Option “RageTheatreMicrocPath” #
#Option “RageTheatreMicrocType” #
#Option “ScalerWidth” #
#Option “RenderAccel” # []
#Option “SubPixelOrder” # []
#Option “ShowCache” # []
#Option “ClockGating” # []
#Option “VGAAccess” # []
#Option “ReverseDDC” # []
#Option “LVDSProbePLL” # []
#Option “AccelMethod” #
#Option “DRI” # []
#Option “ConnectorTable” #
#Option “DefaultConnectorTable” # []
#Option “DefaultTMDSPLL” # []
#Option “TVDACLoadDetect” # []
#Option “ForceTVOut” # []
#Option “TVStandard” #
#Option “IgnoreLidStatus” # []
#Option “DefaultTVDACAdj” # []
#Option “Int10” # []
#Option “EXAVSync” # []
#Option “ATOMTVOut” # []
#Option “R4xxATOM” # []
#Option “ForceLowPowerMode” # []
#Option “DynamicPM” # []
#Option “NewPLL” # []
#Option “ZaphodHeads” #
Identifier “Card0”
Driver “radeon”
VendorName “ATI Technologies Inc”
BoardName “RV730XT [Radeon HD 4670]”
BusID “PCI:2:0: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
Modes “1400x900”
EndSubSection
EndSection[/code]

@Cluxter : Par contre chez moi le choix de la carte se fait depuis le bios; Je vais du coup me pencher aussi sur la question de pouvoir “switcher” entre les deux à chaud.

Un trés grand merci fran.b :smt023 ( surtout pour ta patience :stuck_out_tongue: )

Victorieusement résolu :smiley:

Ca peut marcher chez toi, sur mon u3S je pouvais selectionner la carte graphique par defaut par switch physique (un bouton quoi :astonished:)… du coup j’ai résolu le pb avec un script :

/etc/rc2.d/S25switchvideo

#!/bin/bash
#xorg.conf switch carte vidéo

VIDEO=`/usr/bin/lspci |grep -c nVidia`

if [ "$VIDEO" = 1 ]; then
echo "Carte graphique activée : nVidia ($VIDEO)"
cp -f /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
else
echo "Carte graphique activée : Integrée ($VIDEO)"
cp -f /etc/X11/xorg.conf.psaving /etc/X11/xorg.conf
fi

[quote=“vohu”]if [ “$VIDEO” = 1 ]; then
echo "Carte graphique activée : nVidia ($VIDEO)"
cp -f /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
else
echo "Carte graphique activée : Integrée ($VIDEO)"
cp -f /etc/X11/xorg.conf.psaving /etc/X11/xorg.conf[/quote]

:open_mouth: :open_mouth: Je n’avais même pas pensé au(x) xorg.conf. Il suffirai de s’en mettre un sous le coude pour chaque CG et de “cp” celui qui marche selon la carte… ( Bhon je n’ai pas de touches de switch alors ce sera à la mano chez moi ) Cool :smiley: