Carte graphique "2 en 1" pour du multiseat ? - Hardware - Linux et OS Alternatifs
Marsh Posté le 24-08-2010 à 20:22:41
Bjour,
tu as réussi à faire ce que je cherche, dis comment.
Je connais le site qui t'aidera à faire ce que tu veux :
disjunkt.com/jd/2010/en/multiseat-linux/multiseat-linux-system-wide-pulseaudio-for-routing-sounds-109/
Marsh Posté le 24-08-2010 à 20:33:55
bonjour,
pour le coup des cartes distinctes, j'ai vu un post d'un gars qui a réussi avec une seule CG d'avoir 2 X en mettant device0 pour la première sortie et device1 pour la seconde avec une petite subtilité
Screen 0 "screen0" 0 0
Screen 0 "screen1" 1025 0 : le pixel de débordement interdit à la souris
supposant que le 1er ecran fait 1024. A tester mais je préfère 2 cartes pour bénéficier de toutes l'accel surtout que les drivers nvidia remplace une libraire glx et suprime la dri je crois. J'ai aussi monté un dual seat avec 2 8600gt et 2 cartes dvb-s et donc 4 ecrans : 2 "bureautique" et 2 LCD pour la TV avec chaines indépendantes. Mais moi je "force" le son à la connexion du user et je prie pour que les users (mes enfants) ne changent pas de place LOL
et en regardant le lien u verra que c'est possible avec une seule carte son.
En passant, je crois que seule les ati ont un device supplémentaires à adresser, pour les monos coeur graphique.
ATI : 1:0:0 + 1:0:1; 0:11:0 + 0:11:1 (chez moi)
NVIDIA 2:0:0 et 4:0:0 (chez moi aussi pour le multi tv/seat)
Marsh Posté le 24-08-2010 à 21:39:40
backtolinux2 a écrit : bonjour, |
Salut,
Pour la partie graphique, je n'ai pas avancé: impossible de démarrer un 2nd serveur X sur une unique carte graphique avec le driver nvidia: le 2nd serveur X se vautre dès le démarrage avec une exception envoyée par le driver.
Du coup, je suis obligé de conserver 2 cartes graphiques, alors que je n'utilise qu'une seule sortie par carte ...
Pour la partie son, sur ma Mandriva le démarrage de Pulseaudio en tant que demon système n'est pas prévu (alors que sous Ubuntu ça l'est), et je n'ai pas envie de bricoler ma conf. Je garde donc une instance de Pulseaudio pour chaque utilisateur. (NB: ceci dit Pulseaudio déconseille fortement l'utilisation en tant que demon système, cf le site officiel)
J'arrive à attribuer une carte son/sortie son à une instance de pulseaudio de mon choix (en créant un fichier ~/.pulse/default.pa). Donc ça revient au même au final. Il faut juste ajouter un paramètre au module pulseaudio "alsa-sink" pour préciser le device de sortie Alsa.
Par exemple pour un utilisateur j'ai mis (sortie numérique sur une Audigy 1):
load-module module-alsa-sink device=iec958:CARD=Audigy,DEV=0 |
Et pour l'autre (sortie analogique 4.0 sur une Audigy 2):
load-module module-alsa-sink device=surround40:CARD=Audigy2,DEV=0 |
J'arrive aussi (mais ça ne m'intéresse pas) à attribuer différentes sorties analogiques d'une seule carte son à un seat particuliers (ex: ma carte gère le 7.1 donc j'ai 3 sorties analogique, donc je peux très bien mettre 3 paires d'enceintes stéreo indépendantes),
Par exemple, pour partager l'audigy 2 entre les 2 utilisateurs:
Le premier utilise la sortie "front":
load-module module-alsa-sink device=front:CARD=Audigy2,DEV=0 |
L'autre utilise la sortie "rear":
load-module module-alsa-sink device=rear:CARD=Audigy2,DEV=0 |
Par contre, impossible d'activer simultanément la sortie analogique et la sortie numérique sur une seule carte, or c'est justement ce dont j'ai besoin ! Si j'active le numérique, ça désactive automatiquement l'analogique, et vice-versa, soit c'est le le hardware qui est limité, soit c'est le driver Alsa, je sais pas trop mais je suis bloqué par ça.
Je conserve donc 2 cartes sons qui ont tout plein de sorties chacune, alors que j'ai presque rien de branché dessus !
Par ailleurs, tous les tuto sur le multiseat que l'on trouve sur le net indiquent que, dans la conf Xorg, il faut désactiver le hotplugging via HAL pour éviter que tous les claviers/souris pilotent tous les serveurs X.
C'est bien gentil leur méthode, mais du coup, plus moyen de brancher/débrancher une souris USB, plus moyen d'utiliser une souris bluetooth, etc ... bref, retour 5 ans en arrière, quand il fallait redémarrer X dès qu'on débranchait/rébranchait la souris !!!
Comme il n'y a pas de bonne solution à ce pb (si on active HAL dans Xorg, effectivement tous les périph USB sont associés à tous les serveurs X, y a aucun moyen de faire des associations 1 périph => 1 serveur X...), j'ai décidé qu'un des deux seat n'utiliserait pas le hotplug (celui relié à ma TV), pendant que l'autre conserverait le hotplug (celui relié au bureau). Je peux continuer d'utiliser le hotplug (notamment bluetooth) sur mon seat "principal".
J'ai donc "blacklisté" de HAL les périphériques qui doivent être associés statiquement à un seat:
$ cat /etc/hal/fdi/preprobe/10-multiseat-fixed-input.fdi |
Et voici mon xorg.conf. On retrouve, déclarés statiquement, les mêmes inputdevices que j'ai blacklisté dans HAL.
Les autres inputdevices restent gérés par HAL / hotplug, donc n'apparaissent pas. Pour nommer ces périphériques, j'utilise les chemins UDEV "by-id".
|
Au final, ça marche très bien le multiseat sous Mandriva 2010 Spring, par contre, mon matos et ma conf sont pas optimaux.
Pour terminer, j'ai aussi tenté de remplacer ma Geforce 8500 HDMI + 1 SB Audigy par une carte graphique "Geforce G210", une carte toute simple avec sortie HDMI MAIS qui a l'audio intégré (elle embarque une carte son en plus de la carte graphique), c'est tout à fait le genre de carte qu'il faut pour une usage sur une TV.
Et ben, pas moyen de faire marcher la partie audio sous Mandriva 2010, ni sous Ubuntu 10.04 ! j'ai installé les toutes dernières version de noyau et de Alsa, suivi tous les tutos trouvés, rien à faire, j'ai jamais réussi à lui faire cracher le moindre son ! Apparemment ces geforce sont mal gérés par Alsa, donc méfiance, ça semble la loterie (certains utilisateurs semblent avoir réussi; d'autres non) ...
Marsh Posté le 25-08-2010 à 12:07:28
salut,
merci de ton post.
avec une seule carte graphique, il faut nommer les devices différement (dvice0 et device1 par ex.), mais avec le même isolateDevice. Ce qui donnerais pour ta 9600 :
Section "Device"
Identifier "Device0"
Driver "nvidia"
BusID "PCI:05:0:0"
Option "DPMS"
Option "AddARGBGLXVisuals"
Option "CoolBits" "1"
Option "TwinView" "0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
BusID "PCI:05:0:0"
Option "DPMS"
Option "AddARGBGLXVisuals"
Option "CoolBits" "1"
Option "TwinView" "0"
Screen 0
EndSection
pas de clone ni de twinview
Tu précise une option par screen :
Option "ConnectedMonitor" "DFP-1, DFP-0"
Option "UseDisplayDevice" "DFP-1, CRT"
par exemple à adapter.
chaque screen va dans un layout uunique et le reste est identique
Mais comme tu as 2 cartes avec 2 sorties chacune, pourquoi ne pas faire comme le htpc que j'ai décrit : 2 postes + 2 tv, chaque indépendant des 3 autres.
Comme ça tu rentabilise les cartes et tu bénéficie de l'accel 3D et de la HD avec une telle puissance. et toujours un poste de libre sans switcher avec la tv. J'utililse vdr pour mes dvb-s, mais il y a aussi mythtv freevo, etc
Et je viens de trouver ça :
airlied.livejournal.com/72187.html
Marsh Posté le 25-08-2010 à 18:00:23
backtolinux2 a écrit : salut, |
C'est ce que j'ai fait. Et je te le re-re-dis, ça ne fonctionne pas. Quand le second serveur X démarre alors que le premier est déjà démarré, le driver nvidia sort une erreur fatale et le serveur X s'arrête.
Ca marche peut-être avec des distribs patchées de partout ou un driver différent, mais de base, non.
backtolinux2 a écrit : Mais comme tu as 2 cartes avec 2 sorties chacune, pourquoi ne pas faire comme le htpc que j'ai décrit : 2 postes + 2 tv, chaque indépendant des 3 autres. |
J'ai pas besoin d'avoir 4 seats, 2 suffisent C'est bien pour ça que j'aimerai bien utiliser les 2 sorties d'une seule carte pour avoir 2 seats.
Chez moi j'ai:
- 1 seat "PC" avec clavier, écran 22", souris, des ports USB en pagaille et un bureau KDE;
- 1 seat "mediacenter" avec télécommande et clavier sans fil, et XBMC en plein écran sur la TV.
backtolinux2 a écrit : Et je viens de trouver ça : |
Je ne suis pas certain que ça concerne le driver proprio nvidia....
Marsh Posté le 25-08-2010 à 20:35:31
Le forum suivant indique exactement mon cas de figure: une seule carte graphique pour 2 serveurs X, et le message d'erreur que j'obtiens :
http://www.nvnews.net/vbulletin/sh [...] p?t=143886
Réponse du modérateur nvidia: cela n'a jamais été supporté officiellement. D'après les forumeurs, ça marchait en version 185.xx mais pas dans les versions suivantes ...
Marsh Posté le 25-08-2010 à 22:29:23
moi j'ai eu un problème en passant de mandriva 2010.0 à 2010.1 (spring). Probleme de régrétion : à une époque le noyau nécessitait un "vga arbitrary" et xorg devait être patché, avant le noyau 2.6.12 je crois. Mais des modifs ont été apporté et cela été possible sans patché (d'où xephyr sans patché). Mais maintenant avec les noyau 2.6.33 et 34, le retour du probleme (appelé "régression" par Liunus) et normalement le noyau 2.6.35 devrait être corrigé. je ne sais pas quel noyau tu as ?
Et excuse-moi je me rends compte à peine maintenant que tu as déjà écumé le net ;-)
Marsh Posté le 26-08-2010 à 18:38:33
Une question bête qui me vient à l'esprit : dans le bios, as-tu essayé de démarer sur PCI au lieu de PCI-e ? Je pose laquestion, parce que j'ai eu le coup sur du nvidia et de l'ati. Le dual-seat surquel je suis actuellement est démaré sur la carte PCI (celle là une vrai), et l'autre dual-seat avec 2 PCI-express nvidia idem : j'ai dû démarer sur PCI pour faire accepter le double X. C'est tellement bête et on n'y croit pas qu'on essaie même pas ;-)
Marsh Posté le 26-08-2010 à 18:44:37
et j'oubliais, l'erreur mentioné (NVIDIA(0): EVO Push buffer channel allocation failed), je l'ai déjà eu et la soluce est dans l'indication de la quantité de mémoire (Option "VideoMem" "xx{K|M|G}" ) de la carte et un NoInt10 sur le premier ecran que tu démarre.
Un petit test est de démarrer en init 3 et de lancer les interfaces à la main avec chaque user connecter sur un terminal et de démarrer le premier serveur sur l'écran non-principal. Ca permet de débuguer à quel moment ça lâche
Marsh Posté le 26-08-2010 à 21:58:03
Salut, j'ai essayé tout ce que tu cites mais ça ne change rien ...
Marsh Posté le 26-08-2010 à 22:35:01
je voulais vraiment t'aider.
dernier truc que je vois, tu as regardé du coté de xnest ?
Marsh Posté le 26-08-2010 à 22:37:57
Non, je ne veux absolument pas utiliser Xnest ou Xephyr. Je veux un serveur X qui tourne nativement sur ma carte graphique.
Marsh Posté le 26-08-2010 à 22:51:10
un dernier pour la route :
http://research.edm.uhasselt.be/~j [...] .DualSeatX
j'ai une config semblable à la tienne avec une fx5500 donc je donnerais des nouvelles la semaine prochaine, week-end oblige -))
Marsh Posté le 27-08-2010 à 12:53:01
j'ai fait un test en démarrant en init 3 et chaque user se connecte en terminal puis lance startx -- isplay.
Quelques bugs dans le primary display, mais je trouve que j'avance. j'ai ajouter dans chaque device :
device0 -> Option "ConnectedMonitor" "DFP-0" et Option "Mem" "256M"
device1 -> Option "ConnectedMonitor" "CRT-0" et Option "Mem" "256M"
un petit bug de "overflow" mais je crois qu'on peut contourner.
Je laisse passer le week-end, et je reprends mardi.
Marsh Posté le 27-08-2010 à 17:25:44
avec une fx5500 tu utilises forcément un "vieux" driver nvidia (173.xx ?), or j'ai indiqué plus haut que ça marchait jusqu'à la version 185.xx, donc c'est cohérent.
Avec une carte plus récente et une carte plus récente, tu aurais sans doute le même pb que moi.
Marsh Posté le 31-08-2010 à 19:59:40
affirmatif, j'ai essayé d'installer le 1.80 de mandriva, mais le système ne l'utilise pas.
Navré pour toi.
Marsh Posté le 04-08-2010 à 13:50:06
Salut,
je me suis monté un PC en configuration multiseat (2 pupitres sur 1 PC), ça fonctionne très bien
Pour ce faire, j'ai doublé tout le matos dans un PC: 2 cartes graphiques, 2 écrans, 2 cartes sons, 2 claviers, 2 souris.
Video:
Pour éviter les bidouilles genre xephyr / rendu indirect & co, je suis obligé d'utiliser 2 cartes graphiques distinctes (donc 2 slots pci express utilisés).
En effet, il semble que le driver proprio nvidia (dont j'ai besoin, je veux un rendu avec opengl, vdpau et tout le bazar) ne permette pas de lancer 2 serveurs X sur chacune des 2 sorties videos d'une unique carte.
Actuellement, la seule configuration supportée par nvidia c'est 1 serveur X avec plusieurs screens, ce qui ne me convient pas ...
Je me demande donc s'il existe des cartes graphiques (geforce ou quadro de préférence ...) qui sont vues par le PC comme étant 2 cartes graphiques distinctes ? (donc, que je vois 2 lignes quand je fais "lspci" ...)
Cela me permettrait de n'avoir qu'une seule carte graphique (gain de place, énergie ...) dans le PC tout en conservant l'indépendance entre mes 2 pupitres.
Audio:
J'utilise pulseaudio, chaque pupitre est configuré pour utiliser une carte son particulière et ignorer l'autre.
Toutefois, je me demande s'il n'est pas possible d'utiliser 1 seule carte son pour arriver au même résultat ? Sachant qu'un pupitre utilise une sortie SPDIF et l'autre une sortie analogique ... (donc possibilité de relier les 2 pupitres sur une seule carte), et je pense que 2 pulseaudio peuvent utiliser la meme carte son vu qu'elle supporte le hardware mixing (sb audigy inside).
Dans pavucontrol, pour une carte donnée, je ne peux activer que l'une ou l'autre des sorties audio (analog ou digital), mais pas les 2 en même temps: peut-on contourner cette limitation ?
Et si c'est possible, est-ce que les 2 sorties seraient indépendantes ? (je ne veux pas que les sons des 2 pupitres se mélangent et soient joués des 2 cotés à la fois)
Si vous avez de l'expérience dans ce genre de conf, ça m'intéresse