Bonjour

Je souhaite utiliser le dual screen pour avoir le bureau sur mon écran 19" branché sur VGA et XBMC sur ma télé en HDMI.

Avec le driver proprio installé via akmod, je n'arrive pas à obtenir un double affichage séparé (separate X screens) convenable.
En affichage unique sur la télé, j'ai un problème de "lag" dans les films

Je n'arrive pas à revenir au driver nouveau pour faire des essais avec celui-ci.

J'ai vu ICI ( forum Ubuntu ) qu'il serait possible de lancer 2 serveurs X sur écrans séparés. Une telle manipulation est-elle possible sous Fedora ?
Pour ceux que ça pourrait intéresser, j'ai réussi à lancer deux sessions X simultanées sur 2 écrans.

Seule la première session démarre automatiquement, je dois lancer la seconde avec la commande :
startx -- :1 -nolisten tcp -layout X1
L' option -novtswitch ne change rien et -sharevts me bug l'affichage

Je n'arrive pas à avoir les 2 affichages actifs en même temps : il faut basculer avec <Ctrl><Alt><Fxx>

De plus, le fichier custom.conf ne semble avoir aucun effet sur GDM ( impossible de se logguer en root par ex )

Mon /etc/X11/xorg.conf :
Section "InputDevice"

    # generated from data in "/etc/sysconfig/keyboard"
    Identifier     "Keyboard0"
    Driver         "keyboard"
    Option         "XkbLayout" "fr"
    Option         "XkbModel" "pc105"
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

##################################################
##                                              ##
##        Server    Layout   X0                 ##
##                                              ##
##################################################

Section "Monitor"
    Identifier     "IISonic 19"
    Option         "DPMS" 
    HorizSync       24.0 - 80.0
    VertRefresh     50.0 - 75.0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    BusID          "PCI:1:0:0"
    Option         "ConnectedMonitor" "CRT-1"
EndSection

Section "Screen"
    Identifier     "IISonic"
    Device         "Device0"
    Monitor        "IISonic 19"
    DefaultDepth    24
    Option         "ConnectedMonitor" "CRT-1"
    SubSection     "Display"
        Depth       24
    Modes       "1280x1024"
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier     "X0"
    Screen         "IISonic" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

##################################################
##                                              ##
##        Server    Layout   X1                 ##
##                                              ##
##################################################

Section "Monitor"
    Identifier     "Samsung TV"
    HorizSync      26.0 - 81.0
    VertRefresh    24.0 - 75.0
EndSection

Section "Device"
    Identifier    "Device1"
    Driver        "nvidia"
    BusID         "PCI:1:0:0"
    Option        "ConnectedMonitor" "DFP-1"
EndSection

Section "Screen"
    Identifier     "Samsung"
    Device         "Device1"
    Monitor        "Samsung TV"
    DefaultDepth    24
    Option         "ConnectedMonitor" "DFP-1"
    SubSection     "Display"
        Depth       24
    Modes       "1920x1080"
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier     "X1"
    Screen         "Samsung" 0 0
EndSection

Mon /etc/gdm/custom.conf :
# GDM configuration storage

[daemon]

AutomaticLoginEnable=False
AutomaticLogin=DooM

[security]
AllowRoot=1

[xdmcp]

[greeter]

[chooser]

[debug]

[servers]
0=Standard0
1=Standard1

[server-Standard0]
name=Standard server
command=/usr/bin/X -audit 0  -nolisten tcp -novtswitch -layout X0  :0  vt7 -sharevts
flexible=true
chooser=true
handled=true

[server-Standard1]
name=Standard server
command=/usr/bin/X -audit 0 -nolisten tcp -novtswitch  -layout X1  :1 vt8 -sharevts
flexible=true
chooser=true
handled=true
Alors normal pour le blocage gdm de base interdit de se connecter en root.

Sinon tu veux ouvrir deux sessions ou avoir deux écrans différents (sans xinerama) sur une seule session ?
Refuznik wrote:Sinon tu veux ouvrir deux sessions ou avoir deux écrans différents (sans xinerama) sur une seule session ?
Merci pour ta réponse.

L'exemple posté au-dessus est celui d'une configuration pour 2 sessions sur 2 écrans (multiseat). Mais je n'arrive pas à obtenir un affichage des 2 sessions en simultané. Elles sont bien lancées en parallèle, mais seulement une sortie vidéo à la fois peut être active.

Je me suis orienté vers cette solution car je n'arrive pas à configurer 2 écrans différents sur une seule session (separate X screens): Gnome3 me retourne une erreur.

En TwinView, j'ai des problèmes d'affichage sur la télé connectée en HDMI : la synchro verticale ne semble pas fonctionner, j'ai des saccades sur la lecture de vidéos et XBMC en fullscreen s'étale sur les 2 écrans.

J'ai parcouru pas mal de docs et de forums. Le multiseat avec une seule carte graphique est presque impossible, certaines personnes ont néanmoins réussi à le faire fonctionner comme ICI

Du coup je suis en train de me re-prencher sur une config TwinView selon la très bonne doc NVIDIA ArchWiki dont j'ai retenu les points suivants :
      Option         "ConnectedMonitor" "CRT-1,DFP-1"

      MetaModes  "1280x1024,1920x1080"

      Screen         "IISonic" leftOf "Samsung"
Les problèmes de saccades pendant la lecture de vidéos sur la Télé peuvent être résolus selon les indications du Wiki MyhtTV, section VDPAU :

Dans xorg.conf:
Section "Extensions"
       Option "Composite" "Disable"
EndSection
Dans /etc/gdm/Init/Default (pour forcer le mode Maximum Performance):
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'
CPU Frequency Scaling :
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Je redémarre et vous tient au courant :-D
Bon, pas plus avancé....

Et toujours le problème de de saccade vidéo 🙁
Le sujet ne semble pas passionner les foules mais j'ai persisté :-P

J'ai donc passé ces derniers jours à écumer le web à la recherche d'information concernant :

1) Les différentes configs NVIDIA multi écrans

2) Les différentes configs de serveurs X

3) Les problèmes rencontrés avec la haute définition vidéo

4) XBMC en standalone

Dans l'état actuel des choses, j'ai réussi à obtenir une configuration stable et performante sans aucun problème d'affichage vidéo HD. Il reste néanmoins quelques points à développer.

Le but est la double utilisation de Fedora 15 en Bureau (écran d'ordi) & MediaCenter (TV HDMI) avec les pilotes PROPRIO NVIDIA.

Voici, point par point, les résultats de mes recherches :

1) Les différentes configs NVIDIA multi écrans

a) Affichage mono écran : Aucun problème à noter - Double utilisation impossible
b) Affichage TwinView : Aucun problème à condition d'avoir la même résolution et le même taux de rafraîchissement sur l'écran et la TV - Double utilisation impossible
c) Separate X Screens : Incompatible avec Gnome3. Fonctionne sous LXDE mais problèmes de synchro verticale ( malgré activation dans nvidia-settings ) et lags vidéo. TEST AVEC ECRAN VGA 1280x1024@60 Hz ET TV HDMI 1920x1080@60 Hz

2) Les différentes configs de serveurs X

Aux vues de ces problèmes, je me suis orienté vers un lancement simultané de 2 serveurs X, chacuns affichés sur un écran séparé. C'est la méthode du Multiseat

Pour se faire, il faut ajouter 2 "ServerLayout" dans /etc/X11/xorg.conf ayant leurs propres sections "Device" "Monitor" et "Screen"
Certains y ajoutent des section "InputDevice" pour définir plusieurs claviers et souris. Dans mon cas c'est inutile car XBMC est télécommandé

Il faut également éditer /etc/gdm/custom.conf et y ajouter :
[servers]
0=Standard0
1=Standard1

[server-Standard0]
name=Standard server
command=/usr/bin/X -audit 0  -nolisten tcp -novtswitch -layout X0  :0  vt7 -sharevts
flexible=true
chooser=true
handled=true

[server-Standard1]
name=Standard server
command=/usr/bin/X -audit 0 -nolisten tcp -novtswitch  -layout X1  :1 vt8 -sharevts
flexible=true
chooser=true
handled=true
Néanmoins certains problèmes persistent:
1) Le multiseat est censé fonctionner avec plusieurs cartes graphiques, pas avec une carte et plusieurs sorties
2) X ayant évolué, les options -sharevts et -novtswitch n'ont aucun effet. Il faut donc basculer manuellement les affichages avec <Ctrl><Alt><Fxx>.
Les 2 serveurs X sont bien lancés simultanément, mais seulement un affichage à la fois peut être actif.
3) Malgré la modif custom.conf, le second serveur X ne se lance pas automatiquement. Ce qui nécessite de le faire manuellement avec une commande du genre :
$ startx -- :1 -nolisten tcp -layout X1
3) Les problèmes rencontrés avec la haute définition vidéo

A) VDPAU : Inclu avec les driver PROPRIOS NVIDIA, VDPAU gère le décodage des vidéos mais nécessite pas mal de ressources.
Pour remédier aux lags itempestifs:

a) CPUSFREQ: Editer /etc/sysconfig/cpuspeed et définir une valeur minimale plus haute pour MIN_SPEED= ainsi qu'un maximum de 50 pour UP_THRESHOLD=. La liste des fréquences disponibles est contenue dans le fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

b) TRIPLE BUFFER : Ajouter dans les section "Device" de xorg.conf:
Option    "TripleBuffer" "True"
c) PowerMizer : à configurer en MAXIMUM PERFORMANCE. nvidia-settings a un bug qui annule ce régale à chaque démarrage. Pour y remédier, ajouter la ligne suivante dans /etc/gdm/Init/Default:
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'
B) Réglages TV : Nombreux sont les téléviseurs qui intègrent une fonction UPSCALING qui réajustent les fréquences de rafraîchissement reçues à celles par défaut ( en général 60Hz ). Tentez de désactiver cette option dans les réglages de la TV. Certaines proposent un mode "Jeu" qui cale la TV sur les fréquences reçues.

4) XBMC en standalone

Une fois les précédentes étapes réalisées, XBMC peut être lancé comme session X indépendante sur la TV HD.

Si certains lags sont toujours présents, allez faire un tour dans SYSTEME > SYSTEME > SORTIE VIDEO et ajustez la résolution à celle supportée par le téléviseur, Synchro Verticale sur "Toujours activer" et essayez différents Taux de Rafraîchissement.

Dans le cas où la carte graphique serait un peu limite, allez dans SYSTEME > VIDEO > LECTURE > Méthode de Rendu et sélectionnez "Shaders Basic (ARB)". Cette option diminue légèrement la qualité mais est bien moins gourmande en ressources.

- CONCLUSION -

Le double affichage par double serveur X semble de loin la meilleure solution car il permet de faire fonctionner chaque écran indépendamment et avec leur propres réglages. Ceci permet, et c'est mon cas, d'avoir deux écrans bien différents ( un VGA 1280x1024 & un HDMI 1920x1080 ) sans problème de synchronisation, ni de configurations hardues.

Présentement, la TV est configurée comme écran par défaut. GDM est en auto login sur XBMC Standalone et je lance Gnome3 par un autre terminal avec la commande :
$ startx -- :1 -nolisten tcp -screen IISonic
Je cherche toujours le moyen de lancer les deux serveurs au démarrage de Fedora 15 et de les afficher en même temps. J'espère qu'un Fedoriste chevronné entendra cet appel :hammer:

Voici mon fichier xorg.conf :
Section "InputDevice"

    # generated from data in "/etc/sysconfig/keyboard"
    Identifier     "Keyboard0"
    Driver         "keyboard"
    Option         "XkbLayout" "fr"
    Option         "XkbModel" "pc105"
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

##################################################
##                                              ##
##        Server    Layout   X0                 ##
##                                              ##
##################################################

Section "Monitor"
    Identifier     "Samsung TV"
    Option         "DPMS"
    HorizSync      26.0 - 81.0
    VertRefresh    24.0 - 75.0
EndSection

Section "Device"
    Identifier    "Device1"
    Driver        "nvidia"
    BusID         "PCI:1:0:0"
    Option        "TripleBuffer" "True"
    Option        "ConnectedMonitor" "DFP-1"
EndSection

Section "Screen"
    Identifier     "Samsung"
    Device         "Device1"
    Monitor        "Samsung TV"
    DefaultDepth    24
    Option         "ConnectedMonitor" "DFP-1"
    SubSection     "Display"
        Depth       24
    Modes       "1920x1080"
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier     "X0"
    Screen         "Samsung" 0 0
    Screen         "Samsung" RightOf "IISonic"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

##################################################
##                                              ##
##        Server    Layout   X1                 ##
##                                              ##
##################################################

Section "Monitor"
    Identifier     "IISonic 19"
    Option         "DPMS" 
    HorizSync       24.0 - 80.0
    VertRefresh     50.0 - 75.0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    BusID          "PCI:1:0:0"
    Option         "TripleBuffer" "True"
    Option         "Coolbits" "4"
    Option         "ConnectedMonitor" "CRT-1,DFP-1"
EndSection

Section "Screen"
    Identifier     "IISonic"
    Device         "Device0"
    Monitor        "IISonic 19"
    Option         "TwinView" "0"
    Option         "metamodes" "1280x1024,1920x1080"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24     
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier     "X1"
    Screen         "IISonic" 0 0
EndSection
- SOURCES -

UBUNTU: [Dualscreen] Lancer une 2eme session X pour un soft, sur 2eme écran

UBUNTU: Problème de clavier en multiseat

FEDORA: Features/Multiseat

FreeDesktop: BUGS novtswitch

DEBIAN: Multiseat : plusieurs utilisateurs sur 1 pc

MythTV: VDPAU Wiki

NVIDIA: VDPAU SUPPORT

ARCHLINUX: NVIDIA - ArchWiki

XBMC: [Guide] aide pour problème de saccade, tearing, ralentissement etc..
Eh bien, dis donc ! Quel boulot tu as fait !!! Chapeau !
Le Multiseat reviendra peut etre avec la Fedora 16 c'est dans la liste des fonctionnalités attendues en tout cas (6e sur http://fedoraproject.org/wiki/Releases/16/FeatureList).

Pour lancer le 2e startx, je suppose que tu as tenté via /etc/rc.local?

Sinon pour ma part, XBMC sur un Atom avec une geforce 9200 ça lit la HD sans problème sans rien modifié gràce a VDPAU. J'ai juste pas encore tenter le double affichage, là je m'attend au pire...
Fifi wrote:Eh bien, dis donc ! Quel boulot tu as fait !!! Chapeau !
MERCI :-D
madko wrote:Pour lancer le 2e startx, je suppose que tu as tenté via /etc/rc.local?
Ah non ! Mes connaissances et mes recherches n'allaient pas jusque là ! Merci pour l'info, je vais tester ça ! 😉
madko wrote:Sinon pour ma part, XBMC sur un Atom avec une geforce 9200 ça lit la HD sans problème sans rien modifié gràce a VDPAU. J'ai juste pas encore tenter le double affichage, là je m'attend au pire...
Je n'avais aucun problème en lecture avec une GeForce GT330 780Mo sur mon 19" seul. Les lags sont apparus avec la TV 1080p !! Mais je pense que le premier soucis venait du réglage UPSCALING, résolu en la passant en mode jeu.
Concernant le double affichage, les solutions sont au-dessus mais encore incomplètes. Je crois que la seule VRAIE bonne solution serait d'ajouter une seconde carte graphique ... Mais je vais continuer à creuser !! :lol:
L'ajout de startx dans /etc/rc.local ne fonctionne pas. Je pense qu'il faut d'abord se connecter sous un nom d'utilisateur.

Existe-t-il une commande pour le faire ?
Le rc.local est executé à la fin du boot, pas besoin de se loguer. Mais il est lancé en root, peut etre ça qui bloque?
Je metterais un truc dans le genre:
su -c "startx -- :1 -nolisten tcp -screen IISonic" mon_utilisateur 2>&1 > /tmp/log_rclocal_startx.txt
Après je me demande si ya pas un problème de path tout simple, ou pire si faut pas ouvrir un tty pour que startx puisse se lancer...
madko wrote:Après je me demande si ya pas un problème de path tout simple, ou pire si faut pas ouvrir un tty pour que startx puisse se lancer...
En lisant ta réponse je me suis dis déjà avec les lancements dans les rc.X il vaut mieux mettre le $PATH complet plutôt que d'assumer les variables d'environnement déjà chargé. Donc startx => /usr/bin/startx