Contenu | Rechercher | Menus
Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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 8-O 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

Si vous avez plus d'une carte graphique, les valeurs de "Identifier" doivent être différentes pour chaque carte (dans mon cas, je les ai numérotées de 0 à 1)

J'ai volontairement utilisé le pilote propriétaire Nvidia pour minimiser au maximum les risques d'incompatibilité. Vous trouverez plus d'informations sur cette page : http://doc.ubuntu-fr.org/carte_graphique .

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)

Dans ce genre de situation, vous apprécierez surement d'avoir un écran d'une marque qui assure un minimum de service. Les sous-marques sont peut être un peu moins chères mais en plus de baisser sur la qualité et la durabilité, elles n'assurent bien souvent aucun service. Dans mon cas, il m'a fallu deux minutes pour trouver les deux informations précédentes.

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

Dans le cas ou vous avez plusieurs écrans, ajoutez autant de section "Monitor" que vous avez d'écran. Pour chacun d'eux, entrez une valeur différente pour "Identifier"

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 ( FIXME 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

Si vous n'avez qu'un écran et qu'une carte graphique, la question ne se pose pas : il est forcément relié à la carte. Pour les informations "Monitor" et "Device", vous devez spécifier l'identifiant (Identifier) du moniteur et de la carte

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

N'oubliez pas que vous êtes en live CD. Toutes les actions que vous faites seront détruites si vous redémarrez. Il n'y a aucun risque d'endommager les système fonctionnels de votre machine.

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

Lancez cette commande en mode normal. Si vous utilisez sudo, vous lancerez l'interface avec une session super utilisateur (root). Vous ne pourrez pas installer correctement votre système.

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 :

erreur du fichier Xauthority

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

Ce document est en cour d'élaboration.



Le contenu de ce wiki est sous licence : CC BY-SA v3.0