« Hardware-hard plus-pca2 » : différence entre les versions
m (→Extensions) |
(balises code) |
||
(2 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[ | [[Catégorie:Matériel divers]] | ||
= Deux utilisateurs simultanément sur un seul PC = | = Deux utilisateurs simultanément sur un seul PC = | ||
<div class="leatitre">Deux utilisateurs simultanément sur un seul PC</div><div class="leapar">[mailto:thierry.chabot@free.fr Thierry Chabot]</div><div class="leadesc">Avec Deux écrans, deux cartes graphiques deux souris, deux clavier MAIS '''un seul PC''', on peut travailler | <div class="leatitre">Deux utilisateurs simultanément sur un seul PC</div><div class="leapar">[mailto:thierry.chabot@free.fr Thierry Chabot]</div><div class="leadesc">Avec Deux écrans, deux cartes graphiques deux souris, deux clavier MAIS '''un seul PC''', on peut travailler à deux en même temps.</div> | ||
== Introduction == | == Introduction == | ||
Ligne 8 : | Ligne 9 : | ||
Après plusieurs essais infructueux, voici une configuration (sans doute pas la seule, mais celle que j'ai réussi) qui m'a permis de le faire. | Après plusieurs essais infructueux, voici une configuration (sans doute pas la seule, mais celle que j'ai réussi) qui m'a permis de le faire. | ||
J'ai travaillé | J'ai travaillé à partir d'une Mandrake 10.0 avec le kernel 2.6.3-7mdk | ||
Mon matériel | Mon matériel : | ||
* 1 carte graphique PCI S3 virge ''ET'' 1 carte graphique AGP NVIDIA Riva TNT2 | * 1 carte graphique PCI S3 virge ''ET'' 1 carte graphique AGP NVIDIA Riva TNT2 | ||
Ligne 18 : | Ligne 19 : | ||
=== Prérequis === | === Prérequis === | ||
* Configuration de XFree (DrakConf ou | * Configuration de XFree (DrakConf ou à la main) | ||
* Téléchargement et décompression de fichiers (en mode graphique ou pas) | * Téléchargement et décompression de fichiers (en mode graphique ou pas) | ||
* Démarrage de linux sans X, mode console, root... | * Démarrage de linux sans X, mode console, root... | ||
=== Résumé du travail | === Résumé du travail à faire === | ||
* Installer et tester le matériel (débrouillez-vous) | * Installer et tester le matériel (débrouillez-vous) | ||
Ligne 35 : | Ligne 36 : | ||
Pour éviter les fautes de frappe, faites des copier/coller des instructions avec la souris (tout ce qui est sur fond jaune très pale encadré) dans une console, et ça doit aller tout seul.<br /> Pour savoir ou vous en êtes, vous pouvez cocher les petites cases à chaque étape. Ca détend et ce n'est pas forcément inutile... | Pour éviter les fautes de frappe, faites des copier/coller des instructions avec la souris (tout ce qui est sur fond jaune très pale encadré) dans une console, et ça doit aller tout seul.<br /> Pour savoir ou vous en êtes, vous pouvez cocher les petites cases à chaque étape. Ca détend et ce n'est pas forcément inutile... | ||
# Télécharger et installer les sources du noyau 2.6.3-7 <br /><code>urpmi kernel-source</ | # Télécharger et installer les sources du noyau 2.6.3-7 <br /><div class="code">urpmi kernel-source</div> Si vous travaillez déjà avec ce noyau. | ||
# Télécharger le patch <br /><code> wget http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/linux-2.6.2-disable-usb-keyboard.patch</ | # Télécharger le patch <br /><div class="code"> wget http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/linux-2.6.2-disable-usb-keyboard.patch</div><br /> et le copier dans le répertoire /usr/src/linux-2.6.3-7mdk/ (en mode root)<br /><div class="code">cp linux-2.6.2-disable-usb-keyboard.patch /usr/src/linux-2.6.3-7mdk/</div> | ||
# Patcher le noyau (en mode root) <br /><code>cd /usr/src/linux-2.6.3-7mdk/</ | # Patcher le noyau (en mode root) <br /><div class="code">cd /usr/src/linux-2.6.3-7mdk/</div><br /><div class="code">patch -p0 < linux-2.6.2-disable-usb-keyboard.patch</div> | ||
# Compiler (je n'ai eu | # Compiler (je n'ai eu à changer aucune option) <br /><div class="code">make clean && make bzImage && make modules && make modules_install</div> *C'est très long (2h sur un 1,2 Ghz) | ||
# Copier le nouveau noyau dans le répertoire /boot <br /><code>cp arch/i386/boot/bzImage /boot/vmlinux-2.6.3-7-usb</ | # Copier le nouveau noyau dans le répertoire /boot <br /><div class="code">cp arch/i386/boot/bzImage /boot/vmlinux-2.6.3-7-usb</div> | ||
# Ajouter le nouveau noyau dans /etc/lilo.conf <div class="code">''image=/boot/vmlinux-2.6.3-7-usb<br /> label="263-7-usb"<br />'' root=/dev/hdxx (xx= a1, a2, b1 , etc.. voir les autres lignes du fichier)<br /> initrd=/boot/initrd-2.6.3-7mdk.img<br /> append="devfs=mount acpi=ht splash=silent"<br /> vga=788<br /> read-only</div><nowiki>*Je n'ai changé que les deux premières lignes par rapport aux autres images de lilo.</nowiki> | # Ajouter le nouveau noyau dans /etc/lilo.conf <div class="code">''image=/boot/vmlinux-2.6.3-7-usb<br /> label="263-7-usb"<br />'' root=/dev/hdxx (xx= a1, a2, b1 , etc.. voir les autres lignes du fichier)<br /> initrd=/boot/initrd-2.6.3-7mdk.img<br /> append="devfs=mount acpi=ht splash=silent"<br /> vga=788<br /> read-only</div><nowiki>*Je n'ai changé que les deux premières lignes par rapport aux autres images de lilo.</nowiki> | ||
# Exécuter lilo pour que les changements soient pris en compte. <br /><code>lilo</ | # Exécuter lilo pour que les changements soient pris en compte. <br /><div class="code">lilo</div> | ||
Vérifier si la modification a fonctionné | Vérifier si la modification a fonctionné : <br /><div class="code">cat /proc/bus/input/devices</div><br /> Avant de redémarrer sur le nouveau noyau,vous devez trouver pour les deux claviers une ligne du genre ''Handlers=kbd event1''<br /> En démarrant sur le noyau modifié,vous devez trouver la même chose pour le clavier PS/2, mais pour le clavier usb les lettres "kdb" présentes dans l'ancien noyau doivent avoir disparu avec le nouveau noyau. | ||
== XFree == | == XFree == | ||
Ligne 50 : | Ligne 51 : | ||
Les commandes sont à taper dans l'ordre indiqué en tant que simple utilisateur dans votre console et tout doit bien ce passer | Les commandes sont à taper dans l'ordre indiqué en tant que simple utilisateur dans votre console et tout doit bien ce passer | ||
# Télécharger les sources de XFree. Je ne sais plus pourquoi j'ai téléchargé des sources de XFree 4.4 (ça fonctionne avec XFree 4.3) <br /><code>mkdir sources-xfree</ | # Télécharger les sources de XFree. Je ne sais plus pourquoi j'ai téléchargé des sources de XFree 4.4 (ça fonctionne avec XFree 4.3) <br /><div class="code">mkdir sources-xfree</div><br /><div class="code">cd sources-xfree/</div><br /><div class="code">wget ftp://ftp.xfree86.org/pub/XFree86/4.4.0/source/XFree86-4.4.0-src*.tgz</div> | ||
# Décompresser les 7 fichiers sources téléchargés (je ne sais pas s'ils sont tous utiles) <br /><code>for i in *.tgz;do tar zxvf $i;done</ | # Décompresser les 7 fichiers sources téléchargés (je ne sais pas s'ils sont tous utiles) <br /><div class="code">for i in *.tgz;do tar zxvf $i;done</div> | ||
# Télécharger le patch <br /><code>wget http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/XFree86-4.3.0-unified.patch</ | # Télécharger le patch <br /><div class="code">wget http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/XFree86-4.3.0-unified.patch</div> *Le patch est fait pour XFree4.3, mais a fonctionné sans erreur avec XFree4.4. | ||
# Patcher les sources de XFree dans le répertoire créé en décompressant | # Patcher les sources de XFree dans le répertoire créé en décompressant : <br /><div class="code">patch -p1 < XFree86-4.3.0-unified.patch</div> | ||
# Entrer dans le répertoire créé lors de la décompression<br /><code>cd xc</ | # Entrer dans le répertoire créé lors de la décompression<br /><div class="code">cd xc</div> | ||
# compiler (c'est à peu près aussi long que pour le noyau) <br /><code>make World >& world.log </ | # compiler (c'est à peu près aussi long que pour le noyau) <br /><div class="code">make World >& world.log </div> (en faisant dans un autre terminal un <br /><div class="code">tail -f world.log</div> _à partir du même répertoire_ vous pouvez patienter en regardant ce que fait le compilateur). Si vous avez autant de chance que moi, la compilation réussira. (Il faut si besoin avoir installé "bison" et "flex" :urpmi...) | ||
# Installer le nouveau XFree. Passer en mode root et taper: <br /><code>make install </ | # Installer le nouveau XFree. Passer en mode root et taper: <br /><div class="code">make install </div>(il ne faut pas avoir changé de répertoire....) | ||
# Redémarrer X pour voir si ça marche encore.<br /> *En cas de problème, pour retrouver votre ancien X il faut réinstaller la version fournie avec la distribution: <br /><code>rpm -i --replacefiles /mnt/cdrom/Mandrake/RPMS/XFree86-server-4.3-30mdk.i586.rpm</ | # Redémarrer X pour voir si ça marche encore.<br /> *En cas de problème, pour retrouver votre ancien X il faut réinstaller la version fournie avec la distribution: <br /><div class="code">rpm -i --replacefiles /mnt/cdrom/Mandrake/RPMS/XFree86-server-4.3-30mdk.i586.rpm</div>(sans l'option ''replacefiles'' ça ne marche pas.). Il faut aussi réinstaller de la même manière XFree86-4.3-30mdk.i586.rpm XFree86-xfs-4.3-30mdk.i586.rpm et XFree86-75dpi-fonts-4.3-30mdk.i586.rpm<br /><div class="code">mv /etc/rc5.d/S30dm /etc/rc5.d/S99dm</div> | ||
== XFree (configuration) == | == XFree (configuration) == | ||
Ligne 71 : | Ligne 72 : | ||
<div class="code">Section "InputDevice"<br /> Identifier "Keyboard0"<br /> Driver "Keyboard"<br /> Option "device" "/dev/input/event1"<br /> Option "Protocol" "usbev"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "fr"<br /> Option "XkbOptions" ""<br /> Option "XkbRules" "xfree86"<br /> EndSection<br /><br /> Section "InputDevice"<br /> Identifier "Keyboard1"<br /> Driver "Keyboard"<br /> Option "Protocol" "usbev"<br /> Option "device" "/dev/input/event2"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "fr"<br /> Option "XkbOptions" ""<br /> EndSection</div> | <div class="code">Section "InputDevice"<br /> Identifier "Keyboard0"<br /> Driver "Keyboard"<br /> Option "device" "/dev/input/event1"<br /> Option "Protocol" "usbev"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "fr"<br /> Option "XkbOptions" ""<br /> Option "XkbRules" "xfree86"<br /> EndSection<br /><br /> Section "InputDevice"<br /> Identifier "Keyboard1"<br /> Driver "Keyboard"<br /> Option "Protocol" "usbev"<br /> Option "device" "/dev/input/event2"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "fr"<br /> Option "XkbOptions" ""<br /> EndSection</div> | ||
<nowiki>* Important | <nowiki>* Important : mon clavier PS/2 est le Keyboard0 et l'usb Keyboard1 mais il FAUT la ligne </nowiki>''Option "Protocol" "usbev"'' sur les DEUX.<br /> Pour savoir sur quel /dev/input/eventX (ou /dev/input/mouseX) sont vos périphériques, tapez : <br /><div class="code">cat /dev/input/eventX</div> et essayez les. Celui concerné envoie alors des caractères (n'importe quoi) sur la console. | ||
==== Les souris ==== | ==== Les souris ==== | ||
Ligne 87 : | Ligne 88 : | ||
<div class="code">Section "Device"<br /> Identifier "device1"<br /> BoardName "RIVA TNT2"<br /> Driver "nv"<br /> BusID "PCI:2:0:0"<br /> Option "DPMS"<br /> Option "IgnoreEDID" "1"<br /> EndSection<br /><br /> Section "Device"<br /> Identifier "device0"<br /> Driver "s3virge"<br /> BusID "PCI:1:10:0"<br /> Option "DPMS"<br /> Option "IgnoreEDID" "1"<br /> EndSection</div> | <div class="code">Section "Device"<br /> Identifier "device1"<br /> BoardName "RIVA TNT2"<br /> Driver "nv"<br /> BusID "PCI:2:0:0"<br /> Option "DPMS"<br /> Option "IgnoreEDID" "1"<br /> EndSection<br /><br /> Section "Device"<br /> Identifier "device0"<br /> Driver "s3virge"<br /> BusID "PCI:1:10:0"<br /> Option "DPMS"<br /> Option "IgnoreEDID" "1"<br /> EndSection</div> | ||
<nowiki>* J'ai fait un certain nombre d'essais. Ca marche avec ces paramètres mais ils ne sont peut-être pas tous utiles.</nowiki><br /> Pour trouver la valeur de BusID, taper | <nowiki>* J'ai fait un certain nombre d'essais. Ca marche avec ces paramètres mais ils ne sont peut-être pas tous utiles.</nowiki><br /> Pour trouver la valeur de BusID, taper : <br /><div class="code">lspci| grep VGA</div> Pour moi, ça a donné : <br />''01:0a.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01)<br /> 02:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15)'' | ||
Il faut transformer l'hexadécimal en décimal, et on a alors | Il faut transformer l'hexadécimal en décimal, et on a alors :<br /> pour la carte S3virge : ''01:0a.0 donne dans XF86Config "PCI:1:10:0"''<br /> et pour l'autre ''02:00.0 donne "PCI:2:0:0"'' | ||
Rappel | Rappel : aux valeurs hexadécimales ''a, b, c, d, e'' et ''f'' correspondent les valeurs décimales ''10, 11, 12, 13, 14'' et ''15''. | ||
==== la section screen ==== | ==== la section screen ==== | ||
Ligne 107 : | Ligne 108 : | ||
<div class="code">Section "ServerLayout"<br /> Identifier "X0"<br /> InputDevice "Mouse0" "CorePointer"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br /> Screen 0 "screen0" 0 0<br /> Option "IsolateDevice" "1:10:0"<br /> Option "SingleCard" "True"<br /> EndSection<br /><br /> Section "ServerLayout"<br /> Identifier "X1"<br /> InputDevice "Keyboard1" "CoreKeyboard"<br /> InputDevice "Mouse1" "CorePointer"<br /> Screen 0 "screen1" 0 0<br /> Option "IsolateDevice" "2:0:0"<br /> Option "SingleCard" "True"<br /> EndSection</div> | <div class="code">Section "ServerLayout"<br /> Identifier "X0"<br /> InputDevice "Mouse0" "CorePointer"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br /> Screen 0 "screen0" 0 0<br /> Option "IsolateDevice" "1:10:0"<br /> Option "SingleCard" "True"<br /> EndSection<br /><br /> Section "ServerLayout"<br /> Identifier "X1"<br /> InputDevice "Keyboard1" "CoreKeyboard"<br /> InputDevice "Mouse1" "CorePointer"<br /> Screen 0 "screen1" 0 0<br /> Option "IsolateDevice" "2:0:0"<br /> Option "SingleCard" "True"<br /> EndSection</div> | ||
<nowiki>* | <nowiki>* Là encore, je ne sais pas si tout est utile (surtout les options)...</nowiki><br />Attention : l'écran ''primaire'' du bios (celui qui s'allume le premier, soit AGP soit PCI -pour moi le PCI-) '''DOIT''' être relié au '''obligatoirement''' au clavier PS/2 (ici tous les "0") | ||
== Test et modification de xdm == | == Test et modification de xdm == | ||
C'est presque fini.... Petit test pour voir ce que ça donne | C'est presque fini.... Petit test pour voir ce que ça donne : <br /><div class="code">kde -- -layout X0</div> (ça doit marcher d'un coté) <br /><div class="code">kde -- -layout X1</div> (ça doit marcher de l'autre coté) <br /> | ||
* Configurer '''xdm''' pour avoir X sur les deux écrans au démarrage et y choisir son login. <div>dans le fichier ''/etc/X11/xdm/Xservers'' commenter les lignes qui commencent par 0 et 1 et ajouter ces deux lignes | * Configurer '''xdm''' pour avoir X sur les deux écrans au démarrage et y choisir son login. <div>dans le fichier ''/etc/X11/xdm/Xservers'' commenter les lignes qui commencent par 0 et 1 et ajouter ces deux lignes : <div class="code"> :0 local /usr/X11R6/bin/X :0 -nolisten tcp vt6 -layout X1 -nopciaccessdisable -novtswitches -delay 6<br /> :1 local /usr/X11R6/bin/X :1 -nolisten tcp vt6 -layout X0 -nopciaccessdisable</div></div> | ||
* Redémarrer ou taper <br /><code>/etc/init.d/dm start</ | * Redémarrer ou taper <br /><div class="code">/etc/init.d/dm start</div> | ||
Voilà , c'est déjà fini !! | |||
<div class="note">NOTE : Je viens de réinstaller le driver propriétaire NVIDIA sans problème après ces manipulations. Il faut faire attention | <div class="note">NOTE : Je viens de réinstaller le driver propriétaire NVIDIA sans problème après ces manipulations. Il faut faire attention à ne pas avoir la ligne ''Load "dri"'' dans la section Modules et changer ''nv'' par ''nvidia'', comme avant. Celui qui veut la 3D sur ses deux cartes (si les 2 ne sont pas des NVIDIA), se reportera au "XFree-Local-multi-user-HOWTO" (le lien est ci-dessous).</div> | ||
=== Problèmes connus === | === Problèmes connus === | ||
Ligne 131 : | Ligne 132 : | ||
* Ajouter une section "ServerLayout" du genre :<br /><div class="code">Section "ServerLayout"<br /> Identifier "X2"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br /> InputDevice "Mouse0" "CorePointer"<br /> Screen "screen1"<br /> Screen "screen2" LeftOf "screen1"<br /> Option "IsolateDevice" "0:12:0"<br /> Option "SingleCard" "True"<br /> Option "Xinerama"<br /> EndSection</div> | * Ajouter une section "ServerLayout" du genre :<br /><div class="code">Section "ServerLayout"<br /> Identifier "X2"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br /> InputDevice "Mouse0" "CorePointer"<br /> Screen "screen1"<br /> Screen "screen2" LeftOf "screen1"<br /> Option "IsolateDevice" "0:12:0"<br /> Option "SingleCard" "True"<br /> Option "Xinerama"<br /> EndSection</div> | ||
* Démarrer en mode interactif et ne pas démarrer X | * Démarrer en mode interactif et ne pas démarrer X | ||
* taper <code>kde -- -layout X2</ | * taper <div class="code">kde -- -layout X2</div> une fois connecté | ||
=== Sources de documentation === | === Sources de documentation === | ||
Ligne 147 : | Ligne 140 : | ||
* [http://www.stationlinux.org/articles/?id=16#screen http://www.stationlinux.org/articles/?id=16#screen] | * [http://www.stationlinux.org/articles/?id=16#screen http://www.stationlinux.org/articles/?id=16#screen] | ||
* http://disjunkt.com/dualhead/#ignusb | * http://disjunkt.com/dualhead/#ignusb | ||
<br/> | |||
<br/> | |||
'''<b>[[Hardware-index|@ Retour à la rubrique Matériel]]</b>''' | |||
<br/> | |||
<div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Thierry Chabot le 19/08/2004.</div> | <div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Thierry Chabot le 19/08/2004.</div> |
Dernière version du 3 mai 2012 à 19:07
Deux utilisateurs simultanément sur un seul PC
Introduction
Après plusieurs essais infructueux, voici une configuration (sans doute pas la seule, mais celle que j'ai réussi) qui m'a permis de le faire.
J'ai travaillé à partir d'une Mandrake 10.0 avec le kernel 2.6.3-7mdk
Mon matériel :
- 1 carte graphique PCI S3 virge ET 1 carte graphique AGP NVIDIA Riva TNT2
- 1 clavier PS2 ET 1 Clavier usb (logitech) (Il faut obligatoirement : une connexion PS/2 et une usb mais ça marche avec deux clavier PS/2 dont un branché avec un adaptateur PS2-USB)
- 1 souris PS2 (microsoft) ET 1 souris usb (logitech)
Prérequis
- Configuration de XFree (DrakConf ou à la main)
- Téléchargement et décompression de fichiers (en mode graphique ou pas)
- Démarrage de linux sans X, mode console, root...
Résumé du travail à faire
- Installer et tester le matériel (débrouillez-vous)
- Modifier le kernel
- Modifier et configurer XFree86
- Tester et modifier xdm
Le kernel
Pour éviter les conflits entre les deux claviers, il faut empêcher le noyau 2.6 de reconnaître le clavier usb. Voici la procédure.
Pour éviter les fautes de frappe, faites des copier/coller des instructions avec la souris (tout ce qui est sur fond jaune très pale encadré) dans une console, et ça doit aller tout seul.
Pour savoir ou vous en êtes, vous pouvez cocher les petites cases à chaque étape. Ca détend et ce n'est pas forcément inutile...
- Télécharger et installer les sources du noyau 2.6.3-7 urpmi kernel-sourceSi vous travaillez déjà avec ce noyau.
- Télécharger le patch
et le copier dans le répertoire /usr/src/linux-2.6.3-7mdk/ (en mode root)cp linux-2.6.2-disable-usb-keyboard.patch /usr/src/linux-2.6.3-7mdk/ - Patcher le noyau (en mode root) cd /usr/src/linux-2.6.3-7mdk/patch -p0 < linux-2.6.2-disable-usb-keyboard.patch
- Compiler (je n'ai eu à changer aucune option) make clean && make bzImage && make modules && make modules_install*C'est très long (2h sur un 1,2 Ghz)
- Copier le nouveau noyau dans le répertoire /boot cp arch/i386/boot/bzImage /boot/vmlinux-2.6.3-7-usb
- Ajouter le nouveau noyau dans /etc/lilo.conf image=/boot/vmlinux-2.6.3-7-usb*Je n'ai changé que les deux premières lignes par rapport aux autres images de lilo.
label="263-7-usb"
root=/dev/hdxx (xx= a1, a2, b1 , etc.. voir les autres lignes du fichier)
initrd=/boot/initrd-2.6.3-7mdk.img
append="devfs=mount acpi=ht splash=silent"
vga=788
read-only - Exécuter lilo pour que les changements soient pris en compte. lilo
Vérifier si la modification a fonctionné :
Avant de redémarrer sur le nouveau noyau,vous devez trouver pour les deux claviers une ligne du genre Handlers=kbd event1
En démarrant sur le noyau modifié,vous devez trouver la même chose pour le clavier PS/2, mais pour le clavier usb les lettres "kdb" présentes dans l'ancien noyau doivent avoir disparu avec le nouveau noyau.
XFree
Il faut maintenant patcher Xfree pour pouvoir démarrer deux sessions (+clavier+souris) différentes en même temps. La mandrake 10.0 utilise la version 4.3 de Xfree.
Les commandes sont à taper dans l'ordre indiqué en tant que simple utilisateur dans votre console et tout doit bien ce passer
- Télécharger les sources de XFree. Je ne sais plus pourquoi j'ai téléchargé des sources de XFree 4.4 (ça fonctionne avec XFree 4.3) mkdir sources-xfreecd sources-xfree/
- Décompresser les 7 fichiers sources téléchargés (je ne sais pas s'ils sont tous utiles) for i in *.tgz;do tar zxvf $i;done
- Télécharger le patch
*Le patch est fait pour XFree4.3, mais a fonctionné sans erreur avec XFree4.4. - Patcher les sources de XFree dans le répertoire créé en décompressant : patch -p1 < XFree86-4.3.0-unified.patch
- Entrer dans le répertoire créé lors de la décompressioncd xc
- compiler (c'est à peu près aussi long que pour le noyau) make World >& world.log(en faisant dans un autre terminal untail -f world.log_à partir du même répertoire_ vous pouvez patienter en regardant ce que fait le compilateur). Si vous avez autant de chance que moi, la compilation réussira. (Il faut si besoin avoir installé "bison" et "flex" :urpmi...)
- Installer le nouveau XFree. Passer en mode root et taper: make install(il ne faut pas avoir changé de répertoire....)
- Redémarrer X pour voir si ça marche encore.
*En cas de problème, pour retrouver votre ancien X il faut réinstaller la version fournie avec la distribution:rpm -i --replacefiles /mnt/cdrom/Mandrake/RPMS/XFree86-server-4.3-30mdk.i586.rpm(sans l'option replacefiles ça ne marche pas.). Il faut aussi réinstaller de la même manière XFree86-4.3-30mdk.i586.rpm XFree86-xfs-4.3-30mdk.i586.rpm et XFree86-75dpi-fonts-4.3-30mdk.i586.rpmmv /etc/rc5.d/S30dm /etc/rc5.d/S99dm
XFree (configuration)
Si tout s'est bien passé, il faut maintenant modifier le fichier /etc/X11/XF86Config-4 pour qu'il gère le tout.
Pour ne pas trop me casser la tête, j'ai utilisé DrakConf pour configurer ma carte AGP et son écran, copié XF86Config, puis recommencé avec ma carte PCI et son écran.
Il m'a suffi ensuite de tout mettre dans le même en ne modifiant que quelques détails.
Voici quelques lignes importantes de mon fichier de configuration.
Les claviers
Identifier "Keyboard0"
Driver "Keyboard"
Option "device" "/dev/input/event1"
Option "Protocol" "usbev"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbOptions" ""
Option "XkbRules" "xfree86"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "Protocol" "usbev"
Option "device" "/dev/input/event2"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbOptions" ""
EndSection
* Important : mon clavier PS/2 est le Keyboard0 et l'usb Keyboard1 mais il FAUT la ligne Option "Protocol" "usbev" sur les DEUX.
Pour savoir sur quel /dev/input/eventX (ou /dev/input/mouseX) sont vos périphériques, tapez :
et essayez les. Celui concerné envoie alors des caractères (n'importe quoi) sur la console.
Les souris
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mouse0"
Option "ZAxisMapping" "4 5"
Option "Buttons" "3"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mouse1"
Option "ZAxisMapping" "4 5"
Option "Buttons" "3"
EndSection
- la configuration m'a semblé ici plus souple. J'ai une souris PS/2 (Mouse0) et une usb (Mouse1).
Les écrans
Identifier "monitor0"
....vos paramètres
EndSection
Section "Monitor"
Identifier "monitor1"
....vos paramètres
EndSection
Les cartes graphiques
Identifier "device1"
BoardName "RIVA TNT2"
Driver "nv"
BusID "PCI:2:0:0"
Option "DPMS"
Option "IgnoreEDID" "1"
EndSection
Section "Device"
Identifier "device0"
Driver "s3virge"
BusID "PCI:1:10:0"
Option "DPMS"
Option "IgnoreEDID" "1"
EndSection
* J'ai fait un certain nombre d'essais. Ca marche avec ces paramètres mais ils ne sont peut-être pas tous utiles.
Pour trouver la valeur de BusID, taper :
Pour moi, ça a donné :
01:0a.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01)
02:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15)
Il faut transformer l'hexadécimal en décimal, et on a alors :
pour la carte S3virge : 01:0a.0 donne dans XF86Config "PCI:1:10:0"
et pour l'autre 02:00.0 donne "PCI:2:0:0"
Rappel : aux valeurs hexadécimales a, b, c, d, e et f correspondent les valeurs décimales 10, 11, 12, 13, 14 et 15.
la section screen
J'ai recopié tel que le contenu de la configuration des écrans, et ajouté pour l'un
Device "device0"
Monitor "monitor0"
et pour l'autre
Device "device1"
Monitor "monitor1"
Enfin la section ServerLayout
Identifier "X0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Screen 0 "screen0" 0 0
Option "IsolateDevice" "1:10:0"
Option "SingleCard" "True"
EndSection
Section "ServerLayout"
Identifier "X1"
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
Screen 0 "screen1" 0 0
Option "IsolateDevice" "2:0:0"
Option "SingleCard" "True"
EndSection
* Là encore, je ne sais pas si tout est utile (surtout les options)...
Attention : l'écran primaire du bios (celui qui s'allume le premier, soit AGP soit PCI -pour moi le PCI-) DOIT être relié au obligatoirement au clavier PS/2 (ici tous les "0")
Test et modification de xdm
C'est presque fini.... Petit test pour voir ce que ça donne :
(ça doit marcher d'un coté)
(ça doit marcher de l'autre coté)
- Configurer xdm pour avoir X sur les deux écrans au démarrage et y choisir son login. dans le fichier /etc/X11/xdm/Xservers commenter les lignes qui commencent par 0 et 1 et ajouter ces deux lignes ::0 local /usr/X11R6/bin/X :0 -nolisten tcp vt6 -layout X1 -nopciaccessdisable -novtswitches -delay 6
:1 local /usr/X11R6/bin/X :1 -nolisten tcp vt6 -layout X0 -nopciaccessdisable - Redémarrer ou taper /etc/init.d/dm start
Voilà , c'est déjà fini !!
Problèmes connus
- Une barre noire horizontale apparait parfois sur l'écran primaire s'il n'y a pas d'utilisateur connecté.
- Il ne faut pas déplacer les connexions USB, cela change l'ordre des périphériques d'entrée dans /dev/input/eventX et il faut alors modifier XF86Config-4
Extensions
Philippe LAFORGE propose une solution pour pouvoir en plus utiliser xinemara (le même utilisateur utilise les deux écrans en même temps) :
- Ajouter une section "ServerLayout" du genre :Section "ServerLayout"
Identifier "X2"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Screen "screen1"
Screen "screen2" LeftOf "screen1"
Option "IsolateDevice" "0:12:0"
Option "SingleCard" "True"
Option "Xinerama"
EndSection - Démarrer en mode interactif et ne pas démarrer X
- taper kde -- -layout X2une fois connecté
Sources de documentation
- http://cambuca.ldhs.cetuc.puc-rio.br/multiuser
- http://www.tldp.org/HOWTO/XFree-Local-multi-user-HOWTO/index.html
- http://www.stationlinux.org/articles/?id=16#screen
- http://disjunkt.com/dualhead/#ignusb
@ Retour à la rubrique Matériel
Copyright
Copyright © 19/08/2004, Thierry Chabot
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |