Ptit prob avec xorg et le double affichage


#1

Bonjour a tous et merci de l’interet que vous porterez a mon petit probleme.
Voilaj’ai depuis peu installé un double affichage sur dans mon fichier xorg.conf, un 19 pouce et un 14.

voici mon fichier de config :

Section "ServerLayout"
Identifier “dual head configuration”

Option “Xinerama” “on”

Screen “HP” LeftOf "SMILE"
Screen “SMILE” 0 0
InputDevice "Generic Keyboard"
InputDevice "MX700"
EndSection

#MONITOR
Section "Monitor"
Identifier "M900"
VendorName "HP"
ModelName "M900"
HorizSync 30.0 - 100.0
VertRefresh 50.0 - 160.0
Option "dpms"
EndSection

Section "Monitor"
Identifier "Smile14"
VendorName "Smile"
ModelName "Smile14"
HorizSync 40.0 - 80.0
VertRefresh 50.0 - 60.0
Option "dpms"
EndSection
#/MONITOR

#DEVICES
Section "Device"
Identifier "NVIDIA Corporation NV28-0"
Driver "nvidia"
BoardName "GeForce4 Ti 4200 AGP 8x"
BusID "PCI:3:0:0"
VideoRam 131072
Option “RenderAccel” “true” #pour l’extention composite
Option “NoLogo” “1” #“0” pas de logo au lancement de X
Option “AllowGLXWithComposite” “True” #permet d’avoir l’extention composite + GLX
Option “backingstore” "true"
Option “ConnectedMonitor” "CRT-1
Screen 0
EndSection

Section "Device"
Identifier "NVIDIA Corporation NV28-1"
Driver "nvidia"
BoardName "GeForce4 Ti 4200 AGP 8x"
BusID "PCI:3:0:0"
VideoRam 131072
Option “RenderAccel” “true” #pour l’extention composite
Option “NoLogo” “1” #“0” pas de logo au lancement de X
Option “AllowGLXWithComposite” “True” #permet d’avoir l’extention composite + GLX
Option “backingstore” "true"
Option “ConnectedMonitor” "CRT-0
Screen 1
EndSection
#/DEVICES

#SCREENS
Section "Screen"
Identifier "HP"
Device "NVIDIA Corporation NV28-0"
Monitor "M900"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1600x1200"
EndSubSection
EndSection

Section "Screen"
Identifier "SMILE"
Device "NVIDIA Corporation NV28-1"
Monitor "Smile14"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x960"
EndSubSection
EndSection
#/SCREENS

Section “Files”

local font server

if the local font server has problems, we can fall back on these

FontPath "unix/:7100"
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "evdev"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "type1"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option “XkbRules” "xorg"
Option “XkbModel” "pc105"
Option “XkbLayout” "fr"
Option “XkbVariant” "latin9"
EndSection

Section "InputDevice"
Identifier "MX700"
Driver "mouse"
Option “Device” "/dev/input/mice"
Option “Protocol” "ExplorerPS/2"
Option “Buttons” "7"
Option “ZAxisMapping” "6 7"
Option “Resolution” "800"
Option “Emulate3Button” "no"
EndSection

Section "Extensions"
Option “Composite” "Enable"
Option “RENDER” "Enable"
EndSection

Mais voila le probleme, mon ecran principale afiche un simili d’ecran secondaire en superposition, cad : mon papier peint est imprimé deux fois, une fois dans la resolution du deuxieme ecran soit 1280x960 et une fois a la bonne taille, qui est 1600x1200. Il m’est aussi impossible de changer de fond d’ecran… Le smile quand a lui marche au poil, papier peint interchangeable et tableau de bord operationnel … en anglais par contre lol
Cela viendrait peut etre aussi de KDE, j’ai cru lire un post qui parlait d’une mauvaise gestion du double affichage… a suivre

probleme insolvable avec mes competences, tres reduites soit dit en passant.

Un grand merci a tous ceux qui voudrons bien me filer ce petit coup de pouce


#2

Hello. Je suis étonné que personne ne t’ai aiguillé vers le bon fil, car le sujet a été traité au moins 200 fois.
Bon, en fait, ta config est théoriquement bonne pour le multihead… sauf pour les cartes nVidia qui fonctionnent en nView.
En fait, ta config serait bonne, si tu disposais de deux BusID différents pour deux cartes ou deux gpu, tu pourrais séparer tes têtes. Pour une nVidia, au sens d’Xwindows, il n’y a jamais qu’un ecran, et c’est la carte qui considère (ou non) qu’elle doit utiliser la deuxiême sortie ou pas pour y faire rentrer le format.
Ce que tu ne pourra pas faire facilement par exemple, ca sera d’avoir un ecran clavier souris different (ou un serveur X différent, si tu préfères) tournant sur chaque tête.
Bon, mais ça n’empêche pas de mirrorer les deux ecrans, ou d’etendre le bureau sur les deux tout de même.
En fait, il faut rajouter les caractèristiques de la deuxiême tête dans le Device de la premiêre. tu supprimes toute réfèrence à ton Device “NVIDIA Corporation NV28-1”, ton screen “SMILE”, et ton Monitor “Smile 14”, il ne vont plus servir, et tu corriges en conséquence ton layout, pour te mettre en ecran unique. tu peux garder si tu préfères un layout “tête smile”, un layout tête HP, et un layout “nview”, et passer de l’un à l’autre avec startx --layout “nom du layout”. Tu peux même automatiser ça en fonction de ce qui est branché au moment du lancement de X. Par défaut, il prend le premier layout.
Bon, ensuites tu rajoutes les options que tu veux, que je ne vais pas te décrire, mais un exemple valant mieux qu’une longue description, voici comment est configuré mon device chez moi:

[code]Section "Device"
Identifier "nVidia Corporation NVIDIA 0171 [GeForce4 MX 440]"
Driver "nvidia"
BusID “PCI:1:0:0”

Option “Xinerama” “on”

    Option  "NvAGP"                         "3"     #0 desactive, 1 - NVIDIA , 2 - AGPART, 3 - 2 si possible sinon 1
    Option  "NoLogo"                        "1"

Option “RenderAccel” “true” # experimental, default: “false”

Option “NoRenderExtension” “true” # pour le 8 bits, default “false”

Option “UBB” “false” # gpu quadro, default “true”

Option “WindowFlip” “true” # si UBB, ameliore la 3D, default “false”

Option “PageFlip” “false” # default “true”

Option “DigitalVibrance” “0” # defaut 0

Option “Dac8Bit” “true” # pour quadro, default “false”

Option “Overlay” “true” # pour quadro, restreint, default “false”

Option “CIOverlay” “true” # pour quadro, restreint, default “false”

Option “TransparentIndex” “0” # depend de Overlay, default “0”

Option “OverlayDefaultVisual” “true” # idem default “false”

Option “SWCursor” “true” # default “false”

Option “HWCursor” “false” # default “true”

Option “CursorShadow” “true” # gf2 et plus, default “false”

Option “CursorShadowAlpha” “64” # default “64”

Option “CursorShadowXOffset” “4” # default “4”

Option “CursorShadowYOffset” “2” # default “2”

Option “NoBandWidthTest” “true” # default “false”

Option “IgnoreDisplayDevices” “” # TV|CRT|DFP, si X est lent au demarrage

Option “MultisampleCompatibility” “false”

Option “UseEdidFreqs” “true” # pour demander les plages de sync au moniteur

Option “IgnoreEDID” “true” # default “false”

Option “NoDDC” “true” # Synonyme de “IgnoreEDID”

Option “FlatPanelProperties” “Scaling = centered, Dithering = enabled” # Scaling =[default,native,scaled,center,aspect-scaled], dither=

[default,enabled,disabled]

Option “UseInt10Module” “true” # pour utiliser XFree pour initialiser les ecrans, default “false”

Option “UseClipIDs” “true” # necessite quadro+UBB

    Option  "TwinView"                      "true"  # activation du twinview, default false
    Option  "TwinViewOrientation"           "RightOf" # ["RightOf"|"LeftOf"|"Above"|"Below"|"Clone"] default NULL
    Option  "ConnectedMonitor"              "CRT,TV" # CRT: cathodique, DFP: Plat sur DVI, TV: tv
    Option  "SecondMonitorHorizSync"        "30-50"
    Option  "SecondMonitorVertRefresh"      "60"
    Option  "MetaModes"                     "1280x1024,720x576;1280x1024;1024x768,720x576;1024x768,NULL;640x480,720x576;640x480,NULL;320x240,720x576;3

20x200,NULL"

Option “MetaModes” “1280x1024,NULL;1280x1024,800x600;1280x1024;320x200,NULL”

Option “NoTwinViewXineramaInfo” “true” # par default: false

    Option  "TVStandard"                    "PAL-N"

Option “TVOutFormat” “PAL-N”

    Option  "TVOverScan"                    "0.8"   # Valeur decimale comprise entre 0.0 et 1.0, default 0

Option “Stereo” “0” # stereovision pour\ quadro

EndSection
[/code]


#3

Merci de ta reponse tres precise, voire peut etre trop pour mes maigres connaissances en la matiere lol

Mais a ce que j’ai compris, tu ne me donne comme solution uniquement nview etant donné que nvidia ne gere que ca et xinerama. c bien ca ?

Mais sur ma config actuelle, tout marche a l’exception de l’afficahge du papier peint de mon ecran HP, hors le smile fonctionne quand a lui tres bien, nouveau menu kde, autonomie parfaite avec le lien d’ecran a ecran en rightof. C comme une deuxieme session en layout, mais sans le splashscreen supplementaire necessaire a l’ouverture d’une deuxieme session.

Et c la que c devient dur, car le HP fonctionne quand a lui tres bien aussi a ceci pres que je ne peux pas changer de fond d’ecran, de par la superposition de celui ci en deux resolution differente : petit schema
pp = papier peint


menuKDE___________________________________________|
|…|…|
|…|…|
|…|…|
|…pp en 1280x960…|…|
|…superposé…|…|
|…|…|
|…|…|
||…|
|…|
|…|
|…pp en 1600x1200 (resolution du HP )…|
|
___________________|

c ce que je vois sur le fond de mon ecran HP :wink:
le smile etant parfait

Voila, pour la precision, au cas ou je n’aurais pas été aussi clair que je pensais. A moins que je n’ai pas du tout compris, dans ce cas pourrait tu etre plus clair quand a la config a adoptée pour obtenir ce que je veux.


#4

voiici un screenshot de l’ecran HP

lien vers la capture
(édité par MattOTop)


#5

Dsl pour la taille, pas fais gaffe …


#6

Ceci dit, (petit rajout)
le xinerama et le nview fonctionnent parfaitement

dois je abandonner l’idée snifff !


#7

Alors là ! Je ne savais pas que ça pouvait marcher comme ça.
Tu as essayé d’inverser l’ordre des deux screen, quelquechose comme:[code]Section "ServerLayout"
Identifier “dual head configuration”

Option “Xinerama” “on”

Screen 1 “HP” LeftOf "SMILE"
Screen 0 “SMILE” 0 0
InputDevice "Generic Keyboard"
InputDevice "MX700"
EndSection[/code]
ou peut être:

[code]Section "ServerLayout"
Identifier “dual head configuration”

Option “Xinerama” “on”

Screen 1 “SMILE” RightOf "HP"
Screen 0 "HP"
InputDevice "Generic Keyboard"
InputDevice "MX700"
EndSection[/code]

Sinon, pour tester différents layout, j’ai vu en relisant ‘man xorg.conf’, que dans la section SERVERFLAGS, il y avait une ‘Option “DefaultServerLayout” “layout-id”’, ce qui permet de conserver plusieurs layouts dans le xorg.conf et de passer de l’un à l’autre rapidement, et quequote
DEVICE SECTION
(…)
Screen
This option is mandatory for cards where a single PCI entity can drive more than one display (i.e., multiple CRTCs sharing a single
graphics accelerator and video memory). One Device section is required for each head, and this parameter determines which head each of
the Device sections applies to. The legal values of number range from 0 to one less than the total number of heads per entity. Most
drivers require that the primary screen (0) be present.
[/quote] Ce qui confirme qu’Xorg est capable de gèrer deux têtes sur un seul BusID, et semble être une piste si mon premier hack ne passe pas.


#8

Oui j’ai essayé plusieurs facon, maison lol

mais toujours le meme prob, meme en resolution plus basse sur le hp pour “coller” a la resolution du smile, mais sans succes

Et c vrai que cette config, est un melange de plusieur facon de faire, j’ai piqué a droite a gauche et j’ai testé, c la config la plus “confortable” que j’ai trouvé, mais avec ce prob d’ecran

L’option des deux carte est la seule je pense, car de la a “detacher” le 1280x960 du 1600x1200.
Ou alors d’avoir comme tu dis MattOTop, deux layouts distincts et de les lancer separement sur un ecran ou ensembles sur deux ecrans distincts ( pas tres pratique a l’utilisation), par contre le “collage” des ecrans cote a cote pour le “passage souris” ne semblerait plus marcher etant donné que deux tetes distinctes serait lancées, donc ce qui implique le partage des inputdevice (encore moins commode lol)…

Par contre j’ai essayé de faire marcher le viewport (sans succes), car a mon sens la porte de sortie se trouverai peut etre ici, pouvoir definir un ecran virtuel de largeure egale a la somme des deux ecrans reels, et ainsi eviter la superpositions des papier peints…

style

#SCREENS
Section "Screen"
Identifier "HP"
Device "NVIDIA Corporation NV28-0"
Monitor "M900"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1600x1200"
EndSubSection
EndSection

Section "Screen"
Identifier "SMILE"
Device "NVIDIA Corporation NV28-1"
Monitor "Smile14"
DefaultDepth 24
SubSection "Display"
Viewport 1600 0
Depth 24
Modes "1280x960"
EndSubSection
EndSection
#/SCREENS

mais rien de transparent la dedans, ca doit pas marcher comme ca lol

A voir …
ca pourrait en interresser plus d’un je pense.


#9

Petie precision

le log session ne se fait que sur le HP le smile se met en attente (ecran gris et souris en forme de croix) c cela que je veux garder, car de lancer deux layouts ca implique forcement deux logs, non ?


#10

non non, en fait, le “defaultserverlayout”, ou l’option --layout de startx choisissent un layout parmis ceux que tu auras ecris dans ta config. Les layouts peuvent utiliser des device en commun, mais un serveur X donné n’utilise jamais qu’un layout, quoi qu’il arrive. C’est juste une facilité pour avoir plusieurs config differentes que tu actives soit par le startx (mais j’imagine que tu utilises un ?dm), soit en changeant le “default” dans l’xorg.
Ca permet de conserver des configs experimentales.
Mais avec plusieurs config valides (HP seul, SMILE seul, dual head), tu peux faire en sorte par script que suivant ce qui est branché, tu choisis au demarrage du serveur X un layout ou un autre…
Vois tu ?


#11

une application marrante qui me vient aussi à l’esprit avec les layouts, c’est une machine avec un démarrage normal sur l’ecran principal, et une session utilisateur pour lancer un deuxiême layout sur un mur d’image, avec un .xsession lancant une demo.


#12

Tout a fait. Et c vrai que ca me servirai bien etant donnéque j’ai deja deux xorg.cong que je change par script independant a chaque config mais bon. Le fait est que je me demande si ca vient plutot du serveur xorg, qui envoie les deux screens sur le HP et un seul sur le smile…
Car je viens de reprendre en long en large et en travers les liens du xorg.conf vers le layout et que rien ne transparait, alors maybe… mmaybe c le xorg qui couille !!!, pas encore d’info a ce sujet par contre.

Encore a voir que j’ai cru lire dans un post que kde n’offrais pas toutes les possibilités du dual screen comme le fait enlightment je crois, et donc peut etre BUG !!!

merci de tes recherches en tous les cas.


#13

Je m’en vais de ce pas acheté de la peinture blanche et un projo video, pour me faire une salle de ciné dans l’appart lol

remarque au prix des projo videos ca pourrait se faire sans trop de prob
faut quand meme compter 10000 balles (francs pardon !)


#14

Les divx depasse rarement les 640x480, c les resolutions des premier prix, bon faut pas trop compter sur la qualité dvd a ce prix la lol


#15

Autre question :

comment fais tu pour lancer un script qui detecte la presence des moniteurs et indique au serveur X de demarrer telle ou telle config, ainsi qu’uin script ou une options qui lanceraient les deux layouts en meme temps(histoire de tout lancer en une fois)
Et avec un seul log, Hassan sehef si possibe ?


#16

en recherchant le script qui pemet de “prober” la carte pour savoir si quelquechose est branché, et ou, que j’ai vu il n’y a pas trés longtemps et qui m’a beaucoup interressé :mrgreen:, je suis tombé là dessus:
infres.enst.fr/~campmob/doc/ … ation.html
heureusement que c’est à l’usage des universitaires !
J’éspères juste pour les étudiants que ce n’est pas un outil destiné aux profs de droit !

Bon, mais je m’égare.
Je ne retrouve pas le script que j’avais vu, mais je recherche comment on détecte la presence d’un moniteur sur une prise d’une carte nVidia. Ca devrait suffire pour ajouter quelques petits tests dans un des fichiers de conf d’xinit :smiley: