Ceci est une ancienne révision du document !
Problèmes fréquents avec Xorg sous Ubuntu 8.10
Introduction
Sous ubuntu 8.10, la détection du matériel graphique est "automatisée". Cela ne veut pas dire que les précédentes versions d'ubuntu étaient incapables de paramétrer le serveur X (serveur graphique par défaut de Ubuntu). Cependant, vous constaterez la différence si vous ouvrez le fichier /etc/X11/xorg.conf :
# xorg.conf (X.Org X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the xorg.conf manual page. # (Type "man xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # sudo dpkg-reconfigure -phigh xserver-xorg Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" EndSection Section "Device" Identifier "Configured Video Device" EndSection
Peut-être aurez-vous la chance d'avoir quelques "InputDevice" qui ne servent en définitive pas à grand chose car ils ne seront pas appelés au final par le ServerLayout.
Cependant, pour certains d'entre vous, cette dite "auto-détection" va vite tourner au vinaigre : Absence de 3D, interface lente, le serveur X qui ne se lance pas (une ligne de commande dès le démarrage à la place du GDM). Bref, une galère !
Et bien réjouissez-vous, pour que ubuntu 8.10 prenne vos paramètres en considération, il va falloir les enregistrer… …manuellement dans le fichier de configuration XORG (un comble).
Les raisons du problème
Les raisons des problèmes que vous rencontrez peuvent être multiples :
- Double carte graphique (vous avez deux cartes graphique, ubuntu est dans ce cas incapable de localiser votre écran)
- Écran non ou mal détecté par Ubuntu
- Pilotes graphiques défaillant
- … (ajoutez ici vos autres problèmes)
Dans de nombreux cas, résulte une erreur de ce type :
Fatal server error no screen found giving up Xinit: connection refused (errno 111): unable to connect to xserver Xinit: no such process (errno 3): server error
Et au final, vous n'avez même pas d'interface graphique. Bref, on est mal parti !
Cependant, il y a une solution à tous ces maux (croyez moi, mon ordinateur à cumulé les tares pour ubuntu 8.10 : une double carte graphique, un écran dell non détecté automatiquement).
Lorsque l'installation se passe mal
Vous avez téléchargé ubuntu 8.10, gravé, booté, et là, au lieu d'avoir le bureau qui se lance, vous vous trouvez au final face à un terminal :
ubuntu@ubuntu:~$
Vous vous dites alors que ça commence très mal et vous auriez raison si il n'y avait pas cette page de documentation . Il y a donc de forte chance que votre configuration graphique ne soit pas correctement détectée par Ubuntu 8.10 (zut ). Pour en avoir le coeur net, tentez de lancer le serveur X par la commande suivante :
startx
Si vous vous trouvez, après une minute d'attente (ou même plus) face à un message de ce type, c'est bien le serveur X qui n'est pas configuré :
Fatal server error no screen found giving up Xinit: connection refused (errno 111): unable to connect to xserver Xinit: no such process (errno 3): server error
Le message peut varier. La constante réside cependant dans la présence récurrente du mot Xserveur ou Xorg dans les messages d'erreurs.
Préparer sa configuration
Bien, il va donc falloir préparer sa configuration manuellement. Dans un premier temps, il vous faut connaitre :
- Votre/vos modèle(s) de carte(s) graphique(s) présente(s) dans votre ordinateur
- Votre/vos modèle(s) d'écran connecté(s) à votre/vos carte(s) graphique(s)
Démarrez donc un système qui fonctionne (live CD ubuntu 8.04 par exemple) et lancez un éditeur de texte. Nous allons créer notre fichier de configuration xorg.
Les cartes graphiques
Paramétrons notre/nos cartes graphiques. Nous allons d'abord aller à la pèche aux informations de ce matériel. Je pars du principe que vous utilisez un système linux sur l'ordinateur sur lequel vous souhaitez installer ubuntu 8.10 (le live cd ubuntu 8.04 fonctionne très bien). Repérez les ports sur lesquels votre/vos carte(s) graphique(s) est/sont connectée(s) :
lspci | grep "VGA"
Cette commande doit vous retourner une ou plusieurs valeur(s) de ce type (en fonction du nombre de vos cartes graphiques) :
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8800 GT (rev a2) 06:00.0 VGA compatible controller: nVidia Corporation GeForce 8800 GT (rev a2)
J'ai donc deux cartes graphiques Nvidia GeForce 8800 GT. La première est connectée au port PCI 1:0:0 et la seconde sur le port 6:0:0.
Je vais donc pouvoir commencer à rédiger mon fichier (plutôt qu'une longue explication, un exemple). Essayez de renseigner un maximum d'information pour que le système puisse connaitre au mieux votre configuration.
Section "Device" Identifier "0 Carte graphique" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 8800 GT" BusID "PCI:6:0:0" EndSection Section "Device" Identifier "1 Carte graphique" VendorName "NVIDIA Corporation" BoardName "GeForce 8800 GT" BusID "PCI:1:0:0" EndSection
Les écrans
Peut être que paramétrer les cartes graphiques sera suffisant pour démarrer le système (notamment en spécifiant le 'BusID'). Cependant, je vous conseille d'enregistrer aussi les informations propres à votre écran pour mettre le maximum de chance de votre coté.
Dans mon cas, l'écran est un DELL E228WFP 22 pouces. Il pose problème car il n'est pas correctement détecté sous les distributions Linux. Il faut bien souvent le paramétrer soi-même (sauf dans Ubuntu 8.04).
Les valeurs que vous devez connaitre sur votre écran sont le taux de balayage horizontal et vertical. Si ce n'est pas le cas, rendez vous sur le site du constructeur. Ces valeurs sont spécifiées en kHz et Hz.
Dans mon cas, il a suffi de faire une recherche sur le site de DELL pour trouver les spécificités techniques de mon écran : http://support.euro.dell.com/support/edocs/monitors/E228WFP/Fr/ug/about.htm#Specifications.
Voici donc les valeurs pour un écran DELL E228WFP :
- Limites de balayage horizontal : 30 kHz à 83 kHz (automatique)
- Limites de balayage vertical : 56 Hz à 75 Hz (automatique)
A partir de là, je peux ajouter la section "monitor" à mon fichier :
Section "Monitor" Identifier "Moniteur" Option "DPMS" HorizSync 30-83 VertRefresh 56-75 EndSection
Relier les cartes graphiques et les écrans
Maintenant que les écrans et les cartes graphiques sont paramétrés, il faut les connecter. C'est à dire, indiquer au serveur X que tel écran est relié à telle carte graphique (notez que si vous avez un seul écran et une seule carte graphique, cela sera assez simple ). Pour cela, on utilise les sections "screen".
Si vous avez plusieurs cartes graphiques ou/et plusieurs écrans, vous devez parvenir à connaître sur quelle carte est relié tel écran ( si quelqu'un connait une commande qui le permet, faites le savoir ici). Une fois que l'on a ces informations, il suffit de connecter les écrans et les cartes ainsi :
Section "Screen" Identifier "Ecran" Monitor "Moniteur" #Quel écran (l'identifier de l'écran) Device "1 Carte graphique" #Quelle carte graphique (l'identifier de la carte graphique sur laquelle l'écran est connecté) EndSection
Mais attention, ça n'est pas tout Il faut maintenant paramétrer les différentes résolutions de chaque écran. Pour cela, je vous propose d'utiliser la ressources type suivante et de remplacer juste les résolutions de mon écran par celles de votre écran (ne changez pas les valeurs Depth). Ces informations se trouve bien entendu sur le site du constructeur de votre écran ou dans la documentation fournie avec. Ainsi, dans mon cas, la section "Screen" se transforme en :
Section "Screen" Identifier "Ecran" Monitor "Moniteur" #Quel écran (l'identifier de l'écran) Device "1 Carte graphique" #Quelle carte graphique (l'identifier de la carte graphique sur laquelle l'écran est connecté) DefaultDepth 24 SubSection "Display" Depth 1 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1680X1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection EndSection
Tout connecter
Maintenant que nous avons tout paramétré, il ne nous reste plus qu'à indiquer au serveur X de charger ce qu'on veut. Pour cela on va utiliser la section "ServerLayout" :
Section "ServerLayout" Identifier "Default Layout" Screen "Ecran" EndSection
En fait, on appelle juste l'écran qui lui appelle le moniteur et la carte graphique.
Quelques modules
Pour vous assurer du bon fonctionnement de X, ajoutez quelques modules à votre fichier :
Section "Module" Load "i2c" Load "bitmap" Load "ddc" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "vbe" EndSection
Le fichier xorg.conf final
Au final, notre fichier xorg.conf doit ressembler à ça :
Section "Device" Identifier "0 Carte graphique" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 8800 GT" BusID "PCI:6:0:0" EndSection Section "Device" Identifier "1 Carte graphique" VendorName "NVIDIA Corporation" BoardName "GeForce 8800 GT" BusID "PCI:1:0:0" EndSection Section "Monitor" Identifier "Moniteur" Option "DPMS" HorizSync 30-83 VertRefresh 56-75 EndSection Section "Screen" Identifier "Ecran" Monitor "Moniteur" #Quel écran (l'identifier de l'écran) Device "1 Carte graphique" #Quelle carte graphique (l'identifier de la carte graphique sur laquelle l'écran est connecté) DefaultDepth 24 SubSection "Display" Depth 1 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1680X1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1680x1050" "1024x768" "800x600" "640x480" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Ecran" EndSection Section "Module" Load "i2c" Load "bitmap" Load "ddc" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "vbe" EndSection
Enregistrez le fichier sur une clef usb sous le non de xorg.conf.
Booter le live Cd Ubuntu 8.10
Le fichier xorg.conf étant prêt, nous allons pouvoir faire booter le live cd de Ubuntu 8.10 . Une fois que vous arrivez face à l'invite de commande (l'interface ne démarrant pas), vous allez commencer par configurer votre connexion internet. Vous pouvez consulter ces pages pour plus d'informations :
Une fois votre connexion configurée, il va falloir paramétrer le serveur X avec notre tout nouveau fichier xorg.conf . Dans un premier temps, montez votre clé usb :
ls /dev/ | grep sd
Pour pouvoir lister les différents périphériques connectés. Cela renvoie quelque chose dans le genre :
ptysd sda sda1 sda2 sda5 sda6 sdb sdb1 sdc sdc1 sdd sde sdf sdg ttysd
Les disques et périphériques de stockages commencent tous par 'sd' (sous ubuntu). Seul les périphériques ayant un numéro sont montables (sda1, sda2, sda5, sda6, sdb1, sdc1). Ce sont en fait les numéraux de partition (la lettre représente le disque, le chiffre la partition). En règle générale, les supports USB arrivent en dernier. Si vous n'avez que votre clé montée sur usb (en tant que support de stockage), vous devriez la repérer facilement (dans mon cas, c'est sdc1).
sudo mkdir /media/disk
Pour créer un point de montage.
sudo mount /dev/sdc1 /media/disk
Pour monter la clé sur votre point de montage.
Si vous voulez vous assurer que c'est bien votre clé qui est montée (et non un autre support), consultez les fichiers présents à la racine de votre clé.
ls /media/disk
Si vous reconnaissez les fichiers/dossiers de votre clé, c'est bon. Dans le cas contraire, démontez la clef et tentez un autre support /dev/ :
sudo umount /media/disk sudo mount /dev/sdb1 /media/disk
Par exemple.
Copier le fichier xorg.conf
Nous allons maintenant copier le fichier xorg.conf précédemment créé sur notre système de fichier en liveCD. Pour cela, supprimez l'ancien fichier et copiez le nouveau à la place :
sudo rm /etc/X11/xorg.conf sudo cp /media/disk/[chemin]/xorg.conf /etc/X11/xorg.conf
A partir de là, vous pouvez éventuellement tenter de démarrer le serveur X ('startx'). Cependant, cela risque de vous renvoyer une erreur de ce type :
(EE) Failed to load module "nvidia" (module does not exist, 0) (EE) No drivers available Fatal server error no screen found giving up Xinit: connection refused (errno 111): unable to connect to xserver Xinit: no such process (errno 3): server error
Bref, Ubuntu ne trouve pas les pilotes demandés. La raison est simple : j'ai choisi d'utiliser les pilotes propriétaires Nvidia non installés par défaut sur Ubuntu. Il va falloir les installer manuellement.
Installer les pilotes graphiques
Le pilote à installer sur votre ordinateur dépend de votre carte graphique. Consulter cette page pour le connaître : http://doc.ubuntu-fr.org/carte_graphique
Dans mon cas (Nvidia Geforce 8800 GT), il me faut installer le pilote nvidia-glx-177 .
sudo apt-get install nvidia-glx-177
L'installation du pilote peut prendre quelques minutes.
Après cela, tentez à nouveau de lancer le serveur X
startx
Hey, l'interface ne démarre pas malgré tout
Plusieurs choses sont à vérifier dans le fichier xorg.conf :
- Le(s) BusID dans la/les section(s) 'device'. En effet, si vous n'avez pas indiqué le bon port PCI, le serveur X ne trouvera pas votre carte graphique.
- Si vous avez relié votre/vos écran(s) à la/les bonne(s) carte(s) graphique(s). Sinon, l'écran restera noir ou vous retournera une erreur. Cela est à vérifier en section 'screen'
- Les taux de balayages horizontaux et verticaux de votre/vos écran(s)
- Les résolutions indiquées dans les 'display'
- Le nom des identificateurs (identifier) (pas deux identiques, pas de fautes de frappe lorsqu'ils sont appelés)
Installer le système
A partir de là, vous pouvez faire une installation normale de votre système. Cependant, il peut arriver que vous ayez un message d'erreur vous parlant d'autorisation lorsque vous souhaitez lancer l'installation :
Dans ce genre de situation, nous allons juste modifier les droit du fichier en question (il s'agit en fait du fichier /home/ubuntu/.Xauthority)
sudo chmod 1777 /home/ubuntu/.Xauthority
Vous pouvez cette fois renouveler votre opération d'installation.
Méthode pas à pas pour configurer l' écran
SPECIAL DEBUTANT: Si votre résolution n' est pas reconnue, ou trop faible :http://forum.ubuntu-fr.org/viewtopic.php?pid=2259389#p2259389