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..