Le Webcafé Ubuntu, un peu de technique. via Webcafé Ubuntu
Lobjectif du Webcafé que nous mettons en place au festival des vieilles charrues est de fournir de nombreux postes au public. Ainsi, les festivaliers peuvent avoir un accès à Internet tout en découvrant Ubuntu.
En plein festival, je profite dun moment de calme pour écrire quelques lignes qui présentent (brièvement) la solution technique que nous utilisons pour faire tourner le Webcafé. Je vais mattarder sur deux aspects : le matériel utilisé et la configuration logiciel.
Durant la lecture de ce billet, gardez à lesprit que la solution que nous utilisons nest pas parfaite. Cependant, elle a le mérite de fonctionner et davoir évolué régulièrement, dune part du fait des mises à jour régulières dUbuntu, mais aussi parce que le matériel que nous avions à disposition changeait.
Matériel à disposition
Nous avons à notre disposition deux ordinateurs que nous appelons « serveurs ». Ces derniers ont chacun 8 curs, 8 Gio de mémoire vive, mais surtout plusieurs cartes graphiques avec plusieurs sorties (VGA / DVI / HDMI / DisplayPort / Mini-DisplayPort) par carte graphique. En plus de ses serveurs, on dispose dautant de clavier, souris et écrans que de postes que nous mettons à disposition.
Voici quelques exemples de cartes graphiques que nous avons :
Quelques cartes « classiques » :
- Trois cartes NVIDIA avec deux sorties DVI
- Une carte avec deux sorties, une VGA et une DVI
Des cartes utilisant la technologie Eyefinity :
- Une carte avec une cinq sorties mini DisplayPort
- Une carte avec deux sorties DVI et quatre sorties DisplayPort
Une carte en PCI et non pas PCI-express, cette carte dispose dailleurs de trois sorties (VGA, DVI et HDMI) mais, à lexception des cartes Eyefinity, uniquement deux sorties sont utilisable par carte.
Asus HD7970
La difficulté est de réaliser une configuration qui permet davoir un maximum de sorties vidéos. Nos serveurs disposent de deux connecteurs PCI-Express et dun connecteur PCI. On peut ainsi brancher trois cartes graphiques (dont une PCI, très difficile à trouver de nos jours).
Une fois que le matériel est là, il faut sattaquer à la partie essentielle : la configuration des logiciels.
Configuration logiciel
Sur le serveur où est installé la dernière version dUbuntu (actuellement la 12.04), on y lance plusieurs serveurs X : un par carte graphique. Il nous est déjà arrivé de lancer un seul serveur X, mais pour simplifier la configuration (notamment à cause de cartes graphiques différentes qui nécessitent des pilotes différents), on lance plusieurs serveurs X. Cette dernière méthode apporte un avantage considérable : en cas de plantage du serveur X, moins de postes sont impactés.
LAYOUT=L0 # Le layout qui correspond à la carte graphique dans la configuration de xorg X_DISPLAY=1 # Les serveurs X sont numérotés 1, 2, 3, … X -br -audit 0 -dpms -s 0 -logverbose 20 -layout $LAYOUT :$X_DISPLAY -novtswitch -sharevts -keeptty
NB : Cette partie est probablement la plus difficile puisque quil faut configurer X et trouver les bons pilotes pour les cartes graphiques. Cest encore plus difficile quand il faut faire cohabiter des pilotes ATI et NVDIDIA, libres et propriétaires
Une fois quun serveur X est lancé, il a un espace égal à la totalité des écrans. Il nous faut ensuite lancer des serveurs Xephyr (quon peut considérer comme des mini serveurs X). Ces derniers sont lancés à lintérieur dun serveur X, doivent avoir la taille dun écran et sont positionnés pour que lespace dun serveur Xephyr corresponde bien à un écran en entier. En effet, il est possible de décaler le serveur Xephyr et lespace de celui-ci sera en partie sur un écran et en partie sur un autre.
À chaque lancement dun serveur Xephyr, on y associe un clavier et une souris. Si cette opération nest pas réalisée correctement, on se retrouve avec un curseur qui bouge sur lécran du voisin et idem pour le clavier.
X_DISPLAY=1 # Les serveurs X sont numérotés 1, 2, 3, … XEP_SCRSIZE=1366x768 XEP_MOUSEID=/dev/input/… XEP_KEYBDID=/dev/input/… XEP_DISPLAY=101 # Les serveurs Xephyr sont numérotés 101, 102, 103, 104, 105, … DISPLAY=:$X_DISPLAY /usr/bin/Xephyr \ -ac \ -screen $XEP_SCRSIZE \ -mouse evdev,device=$XEP_MOUSEID \ -keybd evdev,device=$XEP_KEYBDID,xkbrules=evdev,xkbmodel=pc105,xkblayout=fr,xkboption=grp:alts_toogle \ -wr \ :$XEP_DISPLAY
Une fois que tout ça fonctionne, il suffit de lancer gnome en spécifiant le bon DISPLAY (variable qui va identifier chaque serveur X et serveur Xephyr).
XEP_DISPLAY=… # Numéro du Xephyr DISPLAY=:$XEP_DISPLAY gnome-session --session ubuntu
Pour aller plus loin et permettre aux festivaliers de tester pleinement Ubuntu (notamment en installant des logiciels), nous avons fait le choix dutiliser des LXC. Ainsi, rien ne change à lexception du fait que les GNOME ne sont pas lancés dans la machine hôte, mais dans les LXC.
IP_HOST=10.0.3.1 XEP_DISPLAY=… # Numéro du Xephyr DISPLAY=$IP_HOST:$XEP_DISPLAY gnome-session --session ubuntu
Cette configuration matérielle et logicielle forme ce que nous appelons un multi-seat. Pour faire le Webcafé, il en faut un peu plus.
Le Webcafé dans son ensemble
Actuellement, nous mettons à disposition 12 postes. Ce qui fait 12 écrans, 12 claviers, 12 souris et 2 serveurs. Il faut donc faire attention à bien organiser lespace pour éviter de se perdre dans les câbles.
À cela sajoute les branchements électriques mais aussi le réseau.
Arrière du serveur multiseat avec une carte grahique à cinq sorties.
Source planet.ubuntu-fr.org