Ubuntu multiseat, 3 seats

Configuratie: Systeem 1: - mb: Asus P5Q-E Intel P45 2x PCIe 2.0 x16 slots 1x PCIe universal PCIe x4 - 3x Asus 8400GS PCIe videokaarten Systeem 2: - mb: Asus A8N-SLI deluxe 2x PCIe - 2x Asus EN8500GT PCIe videokaarten - 1x PNY Geforce 6200 PCI videokaart

Installatie Ubuntu 8.04
Zorg dat de 3de videokaart als hoofdkaart is ingesteld in de bios. Dus bij systeem 1 de Universal PCIe kaart en bij systeem 2 de PCI kaart. Dan gewoon Ubuntu installeren, bij systeem 1 was wel een IDE cdrom drive nodig, via SATA lukt de installatie niet. Na installatie kan wel de SATA drive terug aangesloten worden. Bij de installatie gebruikte ik als naam: super met ook paswoord: super. Dit wordt de hoofdgebruiker om zaken te kunnen installeren of aanpassen.

Configuratie ubuntu
Eerst alle updates ophalen, zodat Nederlands ook volledig wordt ondersteund. Na updates opnieuw opstarten en dan via System->language support, daar dan Nederlands aanvinken. Dan de drivers voor de videokaarten installeren, in dit geval de nvidia drivers. Gaat zeer gemakkelijk met het volgende commando: sudo apt-get install envyng-gtk (sudo is nodig om commando’s als super user uit te voeren, anders heb je geen rechten om te installeren) Na installatie van EnvyNG, ga je naar Toepassingen->Systeemgereedschappen->EnvyNG Daar dan kiezen om de NVIDIA drivers te installeren. Na installatie opnieuw opstarten. Daarna zou het logo van NVIDIA moeten verschijnen vlak voor het login scherm, zo ben je zeker dat de NVIDIA drivers actief zijn. Daarna moeten we de drie schermen activeren. Via terminalvenster volgend commando intikken: sudo nvidia-setting Daar zie je bij ‘X Server Display Configuration’ dat er maar twee schermen te gebruiken zijn. Dit komt doordat Ubuntu maar 2 kaarten activeert tijdens het starten, om de 3de videokaart ook te kunnen gebruiken, moeten we iets aanpassen bij het opstarten. Dit doen we door het bestand menu.lst aan te passen: sudo gedit /boot/grub/menu.lst dan net onder “End Default Options” hebben we de verschillende opstart mogelijkheden. Bij het eerste item na onderdeel kernel moeten we na ‘quiet splash’ het volgende toevoegen: vmalloc=256MB pci=nommconf Dan het bestand opslaan en de pc opnieuw opstarten. Na het opstarten opnieuw naar de nvidia instellingen gaan: sudo nvidia-settings En nu kunnen we wel bij ‘X Server Display Configuration’ de drie schermen zien staan. Klik op een disabled scherm en klik op Configure…. Dan kiezen voor ‘Separate X screen’, op OK klikken en het zelfde doen voor het 3de scherm. Daarna op ‘Apply’ klikken en ook nog op ‘Save to X Configuration File’ en ‘Afsluiten’. Daarna de X-server opnieuw starten (snelst met ctrl-alt-backspace) en opnieuw inloggen.

Nu zouden de 3 schermen moeten actief zijn. Vooraleer we verder gaan, is het best van deze configuratie al eens op te slaan. sudo copy /etc/X11/xorg.conf /etc/X11/xorg.3schermen

Configuratie Multiseat
Nu moeten we er voor zorgen dat de drie schermen, toetsenborden en muizen apart kunnen werken. Daarvoor moeten we deze toevoegen aan de xorg.conf. De drie schermen en videokaarten zouden daar al moeten instaan door het nvidia programma. We kunnen de videokaarten eens controleren door het volgende commando uit te voeren: lspci | grep VGA De eerste nummers zijn de busid van de videokaart. Deze vind je terug via: sudo gedit /etc/X11/xorg.conf Daar zie je dan bij Section “Device” de verschillende videokaarten: Videocard0, Videocard1 en Videocard2 met de overeen komende busID. Nu moeten we nog de extra toetsenborden en muizen toevoegen. Om de verschillende muizen te kennen, voeren we het volgende commando uit: ls /dev/input/mouse* Normaal zal het resultaat het volgende zijn: /dev/input/mouse0 /dev/input/mouse1 /dev/input/mouse2 /dev/input/mouse3 De mouse0 telt hier niet mee, dus de rest zijn de 3 verschillende muizen. We kunnen de muizen al eens testen door de xorg.conf aan te passen: sudo gedit /etc/X11/xorg.conf Bij Section “InputDevice” hebben we al 1 toetsenbord en 1 muis staan. We hernoemen de Identifier “Generic Keyboard” naar “Keyboard0 en “Configured Mouse” naar “Mouse0”. En bij Section “ServerLayout” voegen we het volgende toe: InputDevice “Keyboard0” CoreKeyboard InputDevice “Mouse0” CorePointer De volledige sectie ziet er dan als volgt uit: Section “ServerLayout” Identifier “Default Layout” Screen 0 “Screen0” 0 0 Screen 1 “Screen1” RightOf “Screen0” Screen 2 “Screen2” RightOf “Screen1” InputDevice “Keyboard0” “CoreKeyboard” InputDevice “Mouse0” “CorePointer” EndSection De volgorde van de Sreens kan anders zijn, maar dat speelt uiteindelijk voor de multiseat geen rol. Nu gaan we de Mouse0 instellen: Section “InputDevice” Identifier “Mouse0” Driver “mouse” Option “Protocol” “auto” Option “Device” “/dev/input/mouse1” Option “Emulate3Buttons” “no” Option “ZAxisMapping” “4 5” EndSection

Na het opnieuw aanmelden zou er nu maar 1 muis mogen werken. We kunnen dan bij Option “Device” eens aanpassen naar /dev/input/mouse2 en mouse3, zo weten we welke muis welke nummer krijgt. Nu kunnen we extra Sections bijmaken om de andere muizen aan te spreken: Section “InputDevice” Identifier “Mouse1” Driver “mouse” Option “Protocol” “auto” Option “Device” “/dev/input/mouse2” Option “Emulate3Buttons” “no” Option “ZAxisMapping” “4 5” EndSection Section “InputDevice” Identifier “Mouse2” Driver “mouse” Option “Protocol” “auto” Option “Device” “/dev/input/mouse3” Option “Emulate3Buttons” “no” Option “ZAxisMapping” “4 5” EndSection Aanspreken van de muis kan ook anders: Option “Device” “/dev/input/by-path/pci-0000:00:1d.0-usb-0:1:1.0-mouse ls uitvoeren in de map /dev/input/by-path om de verschillende muizen te zien Je kan zelf bij Option “Device” de juiste muis kiezen volgens de seat waar je die wil gebruiken. Nu doen we het zelfde voor de verschillende toetsenborden. We moeten eerst controleren hoe we de verschillende toetsenborden kunnen aanspreken, dit doen we met het volgende commando: more /proc/bus/input/devices Bij de H zien we oa. Handlers=kbd event1 Via die event1 kunnen we de toetsenborden aanspreken, bij mij zijn dat event1, event3 en event5. Deze nummering kan verschillen. Let wel dat bij “Power Button” er ook een Handler met kbd en eventnummer bij staat. Dus hier goed opletten dat je de juiste events van de toetsenborden noteert. Daarna gaan we opnieuw de xorg.conf aanpassen en voegen we de verschillende toetsenborden toe: Section “InputDevice” Identifier “Keyboard0” Driver “evdev” Option “Device” “/dev/input/event1” Option “XkbRules” “xorg” #Option “XkbModel” “pc105” Option “XkbModel” “evdev” Option “XkbLayout” “be” EndSection Section “InputDevice”

Identifier Driver Option Option #Option Option Option EndSection

“Keyboard1” “evdev” “Device” “/dev/input/event3” “XkbRules” “xorg” “XkbModel” “pc105” “XkbModel” “evdev” “XkbLayout” “be”

Section “InputDevice” Identifier “Keyboard2” Driver “evdev” Option “Device” “/dev/input/event5” Option “XkbRules” “xorg” #Option “XkbModel” “pc105” Option “XkbModel” “evdev” Option “XkbLayout” “be” EndSection Met XkbModel evdev werken te pijltjestoetsen en de AltGr toets wel, met pc105 niet. Zie opmerking onderaan, ipv events te gebruiken. Na opnieuw inloggen, zal er nu ook maar 1 toetsenbord werken, hier moet je ook zien welke event bij welk toetsenbord hoort, om zo het juiste toetsenbord bij de juiste muis te kunnen plaatsen. Nu hebben we 3 apart werkende muizen en toetsenborden maar nog altijd 1 seat. Dit gaan we opnieuw aanpassen in de xorg.conf en nog 2 extra seats bijmaken. Dit gebeurt bij Section “Serverlayout”: Section “ServerLayout” Identifier “Seat0” (-> dus hier Default Layout aanpassen) Screen 0 “Screen0” 0 0 InputDevice “Keyboard0” “CoreKeyboard” InputDevice “Mouse0” “CorePointer” EndSection Dus hier mogen de andere 2 screens dan weg. We maken hier duidelijk dat bij Seat0, de Screen0, Keyboard0 en Mouse0 horen. Dit doen we ook voor de andere 2 seats. Section “ServerLayout” Identifier “Seat1” Screen 0 “Screen1” 0 0 InputDevice “Keyboard1” “CoreKeyboard” InputDevice “Mouse1” “CorePointer” EndSection Section “ServerLayout” Identifier “Seat2” Screen 0 “Screen2” 0 0 InputDevice “Keyboard2” “CoreKeyboard” InputDevice “Mouse2” “CorePointer” EndSection

En we passen ook nog de Section “ServerFlags” aan: Section “ServerFlags” Option “AllowMouseOpenFail” “yes” Option “DontVTSwitch” “yes” Option “DontZap” “yes” Option “Xinerama” “0” EndSection Om dan de verschillende seats te activeren, moeten we gdm.conf aanpassen: sudo gedit /etc/gdm/gdm.conf Daar gaan we naar het onderdeel [servers], bijna onderaan het bestand. Daar staat er: 0=Standard device=/dev/console Dit passen we aan naar: 0=Standard0 1=Standard1 2=Standard2 Dit zijn de 3 verschillende seats. En daar net onder gaan we ook [server-standard] aanpassen en er 2 bijplaatsen, dit wordt dan: [server-Standard0] name=Standard0 command=/user/X11R6/bin/X –nolisten tcp –novtswitch –sharevts –layout Seat0 :0 flexible=true [server-Standard1] name=Standard1 command=/usr/X11R6/bin/X –nolisten tcp –novtswitch –sharevts –layout Seat1 :1 flexible=true [server-Standard2] name=Standard2 command=/usr/X11R6/bin/X –nolisten tcp –novtswitch –sharevts –layout Seat2 :2 flexible=true Daarna het bestand opslaan en de pc opnieuw opstarten. Als alles goed is, zou je nu per seat een apart login scherm moeten hebben. Je moet inloggen met verschillende gebruikers, dus best deze ook nog aanmaken vb. user01, user02 en user03 Extra: Om er voor te zorgen dat de numlock in het login scherm aan ligt, moet je het volgende nog uitvoeren: sudo apt-get install numlockx en het volgende bestand aanpassen: sudo gedit /etc/gdm/Init/Default Daar helemaal onderaan net voor ‘exit 0’ het volgende toevoegen: if [ -x /usr/bin/numlockx ]; then /usr/bin/numlockx on fi

Nu zal de numlock ook aanliggen in het login scherm.

Opmerking:
Het aanspreken van het toetsenbord kan blijkbaar ook via de hardware-naam. Deze kan je het best terugvinden via: ls –l /dev/input/by-path en daar zie je welk toetsenbord bij welke event past. Dan aanpassen in de xorg.conf, bvb: Ipv: Option “Device” “/dev/input/event2” Wordt dit: Option “Device” “/dev/input/by-path/pci-0000:00:02.0-usb-0:2:1.0-event-kbd”