Ceci est une traduction française de la page de Flavio Stanchina concernant les paquets Debian pour les drivers ATI (Linux). Veuillez consulter la page originale pour avoir des informations sur la dernière version des drivers.

Paquets Debian pour les drivers ATI pour Linux

Cette page explique comment générer des paquets Debian à partir du driver ATI pour Linux pour les cartes suivantes :

  • RADEON® 8500, 9000, 9100, 9200, 9500, 9550, 9600, 9700, 9800,
  • RADEON® X300, X600, X700, X800 (AGP et PCI Express),
  • MobilityTM RADEON® 9000, 9200, 9600, 9800, X700,
  • MobilityTM RADEON® 9000/9100 série IGP,
  • FireGLTM 8700, 8800, E1, E2, X1, X2, X3, Z1, T2,
  • MobilityTM FireGLTM 9100, T2.

Aucune garantie concernant la correction et/ou l'exhaustivité de cette liste n'est donnée. Veuillez consulter les releases notes du driver pour la liste officielle des cartes supportées.

Important : Flavio Stanchina ne travaille pas pour ATI. Flavio rend simplement service à la communauté en empaquetant le driver ; il n'a pas accès au code source complet du driver, il se contente de dépaqueter le RPM disponible sur le site web d'ATI et de le reconstruire en paquet Debian. En conséquence, il ne peut pas résoudre les bugs du driver et ne prétend pas aider les gens qui rencontrent des problèmes non liés à l'installation de ces paquets pour Debian.
Également important : Flavio n'est pas un DD officiel, il est donc inutile de lui demander si ou quand ces paquets entreront dans une archive Debian officielle. Si vous êtes DD et que vous voulez aider, votre aide est la bienvenue, mais veuillez s'il vous plaît d'abord en parler à l'équipe Debian legal pour s'assurer qu'ils autoriseront les paquets à entrer dans l'archive.
 
Index
0. News
1. Vue d'ensemble
1.1. Le driver
1.2. Cartes supportées
2. Pré-requis
3a. Source
3b. Binaires
4. Installer/compiler
5. Configurer le serveur X
6. Bugs et Rustines
Forcer le ChipID
Notes sur l'AMD64
7. Comparaisons
8. Mailing list

Divers

0. News

8 Mai 2005
Publication de la première traduction française. La version courante du driver officiel ATI pour linux est 8.12.10.

1. Vue d'ensemble

Commençons par le commencement : veuillez lire attentivement les instructions suivantes avant de faire quoi que ce soit d'autre !

Cette page n'est pas destinée aux néophytes complets. Si vous n'avez jamais essayé de construire un paquet Debian depuis la source, apprenez à le faire avant de revenir ici lire la suite. Si à n'importe quel moment vous n'avez pas confiance dans ce que vous êtes en train de faire, surtout ne prenez pas le risque de casser votre système et restez avec ce que vous avez.

Note : Vous aurez besoin de devenir root pour faire fonctionner apt-get et dpkg. Par mesure de sécurité, ne restez pas identifié comme root plus longtemps que nécessaire ; à la place, je vous suggère d'installer le paquet sudo et de l'utiliser.

1.1 Le driver

L'ensemble du driver est découpé en trois composants : le driver XFree86 (ou X.org) proprement dit, un remplaçant pour libGL et un module pour le noyau. Le driver et la libGL sont dans le paquet fglrx-driver, le code source du module pour le noyau est dans le paquet fglrx-kernel-src.

Notez que le driver fonctionnera sans la présence du module pour le noyau, mais sans accélération 3D. Si vous n'êtes pas intéressé par l'accélération 3D, vous pouvez vous passer du module pour le noyau Linux.

1.2 Cartes supportées

La liste des cartes supportées au début de cette page s'inspire des releases notes du driver, mais elle est connue pour être incomplète. Voici la liste des cartes supportées - c'est celle qui est rapportée par le driver lui-même dans le fichier de log de XFree86.

2. Pré-requis

2.0 Retirer les éléments NVidia

Ce point ne s'applique que si vous avez utilisé précédemment du matériel NVidia. Assurez-vous de retirer les drivers NVidia avant de continuer. Il parait que la commande suivante faisait l'affaire :

/usr/bin/nvidia-installer --uninstall

2.1 Sources du noyau

Vous avez besoin de disposer du code source correspondant au noyau que vous faites fonctionner et de faire sa configuration avec make-kpkg. Ceci est évidement simple si vous compilez déjà vos propres noyaux, mais cela nécessitera un peu de travail si vous utilisez un noyau pré-construit par Debian. N'importe quelle version de noyau fournie par Debian devrait faire l'affaire.

Note : Vous devez compiler votre noyau et le module ATI avec la même version de compilateur, sinon le module ne fonctionnera pas. Si vous utilisez un noyau préconstruit, vous devez trouver quelle version de gcc a été utilisée pour le produire (regardez dans /proc/version) et assurez-vous que vous utilisez la même. Ceci est en dehors de la portée de ce document et est laissé à titre d'exercice ; si vous n'y arrivez pas, c'est un indice indiquant que tout ce désordre dépasse vos compétences. (Note du traducteur : gcc --version est un bon endroit pour commencer à chercher.)

Vous n'avez pas besoin de réellement compiler le noyau, mais vous avez vraiment besoin de le configurer de manière adéquate. Si vous ne voulez pas compiler et installer votre propre noyau, installez simplement les sources correspondant à la version du noyau courant et utilisez la configuration qui est fournie avec le paquet du noyau :

apt-get install kernel-source-2.x.y
cd /usr/src
tar jxvf kernel-source-2.x.y.tar.bz2
cd kernel-source-2.x.y
cp /boot/config-2.x.y-flavour .config
make-kpkg --append-to-version "-flavour" --revision 2.x.y.z --config old configure

Bien sûr, vous êtes sensé remplacer "-flavour" par la valeur correcte adaptée à votre noyau, qui est typiquement quelque chose comme "-1-686" pour les noyaux Debian préconstruits. Il s'agit du texte qui suit la version du noyau dans le résultat de la commande uname -r ainsi que dans le nom des fichiers dans le répertoire /boot.

"2.x.y-z" correspond à la version du paquet kernel-image que vous avez installé. Cela devrait également être la même version que celle du paquet kernel-source.

Si vous possédez déjà une arborescence des sources du noyau avec une configuration, vous pouvez l'utiliser, mais soyez sûr que vous utilisez cette même configuration.

2.1.1 Options recommandées pour le noyau

Les options suivantes du noyau affectent le fonctionnement du module fglrx. Cette liste montre les options qui ont été utilisées avec succès durant les deux années écoulées ; ces options sont bonnes pour le noyau 2.6.10, mais elle devrait exister à l'identique pour n'importe quel noyau 2.6.x, et probablement pour les noyaux 2.4.x également.

Option(s) du noyau Notes
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y
Assurez-vous que la valeur de CONFIG_MODVERSIONS est correcte !
CONFIG_MTRR=y Le driver fglrx nécessite le support de MTRR (Memory Type Range Register).
CONFIG_AGP=m
CONFIG_AGP_chipset=m

Activez toutes les options de chipsets dont vous avez besoin, par exemple CONFIG_AGP_INTEL, CONFIG_AGP_NVIDIA, etc... Attention, CONFIG_AGP_ATI n'est requis que si vous possédez effectivement un chipset ATI AGP sur votre carte mère, cela est complètement indépendant du fait que votre carte vidéo AGP soit une ATI.

Ne fixez pas CONFIG_AGP=y si vous désirez utiliser le support AGP inclus dans fglrx.

Il y a une différence entre les noyaux 2.4 et 2.6 :

  • 2.4 : les drivers pour chipsets font partie intégrante du module AGP principal.
  • 2.6 : les drivers pour chipsets sont compilés en modules séparés distincts du module AGP principal.

L'important est d'avoir CONFIG_AGP=m. Si vous êtes absolument certain de toujours vouloir utiliser le support AGP intégré au noyau, vous pouvez mettre CONFIG_AGP=y, mais je ne le recommande pas, parce que cela n'apporte aucun avantage vis-à-vis de CONFIG_AGP=m.

CONFIG_DRM=m ou y
CONFIG_DRM_RADEON=m

Ne compilez pas en dur les modules DRM avec votre noyau, parce qu'ils entreraient en conflit avec le module fglrx. La meilleure façon de procéder est de les compiler en tant que modules et de laisser les drivers utilisateurs (user-space) charger les modules dont ils ont besoin.

Les outils de détection de matériel peuvent tenter de charger le module DRM Radeon automatiquement au démarrage ; si cela vous arrive, modifiez la configuration de ces outils ou désactivez le module DRM Radeon.

# CONFIG_FB is not set

CONFIG_FB_VESA=y est sensé fonctionner, mais apparemment cela provoque des erreurs "mtrr overlapping".

CONFIG_FB_RADEON=y provoquera à coup sûr des problèmes, donc désactivez-le.

CONFIG_TMPFS=y

ATI indique que le support pour la mémoire partagée POSIX est requis.

Si votre configuration du noyau diffère de ce qui est indiqué ci-dessus en un ou plusieurs points et que vous rencontrez des problèmes, veuillez essayer avec une configuration exactement identique à celle-ci ou soyez prêt à expliquer pourquoi vos choix ne devraient pas faire la différence.

2.2 Support AGP

Vous avez besoin du support pour votre chipset AGP. Deux possibilités s'offrent à vous : le support intégré au driver ATI ou le support via le driver agpgart du noyau. Il est difficile de prédire lequel fonctionnera le mieux (ou de dire s'ils fonctionneront tout court), car cela dépend de la version du driver et de votre noyau, mais de manière générale le driver du noyau devrait remporter votre préférence s'il fonctionne pour vous. Pour utiliser le driver du noyau, ajoutez la ligne suivante dans la section "Device" du fichier de configuration de XFree86 :

Option "UserInternalAGPGART" "no"

La configuration de XFree86 sera discutée de manière plus détaillée ultérieurement, mais la configuration du support AGP est importante donc ce détail est mentionné dès maintenant afin de marquer votre mémoire.

L'erreur unable to acquire AGP, error "xf86_ENOMEM" signalée dans le log de XFree86 indique généralement que vous utilisez le support intégré de l'AGP avec un chipset non supporté. Réglez l'option "UserInternalAGPGART" à "no" et chargez le module noyau (voir plus bas pour les détails) lequel, espérons-le, supporte votre chipset AGP.

Si vous préférez utiliser le support AGP fourni par le driver ATI, réglez "UseInternalAGPGART" à "yes" (ce qui est la configuration par défaut, donc vous pouvez vous contenter de l'omettre), et assurez-vous que le driver du noyau n'est pas compilé en dur dans ce dernier : soit vous le compilez comme un module, soit vous le désactivez entièrement. Prenez garde, discover (et sans doute d'autres outils de détection de matériel) peut tenter de charger automatiquement le module du noyau au démarrage. Si cela vous arrive, vous pouvez modifier la configuration de discover ou simplement déplacer les fichiers agpgart.* hors de /lib/modules.

Si aucun des deux drivers ne supporte votre chipset, essayez d'utiliser le driver du noyau en ajoutant l'option agp_try_unsupported=1 en paramètre au démarrage du noyau ou lors du chargement du module.

Remarquez que pour les noyaux 2.6, les drivers pour les chipsets AGP sont séparés du driver agpgart lui-même, donc si vous les compilez en tant que modules vous aurez besoin de charger le module agpgart et un module pour chipset tel que via-agp, nvidia-agp, etc.

2.3 Paquets nécessaires

Si vous voulez construire les paquets depuis les sources, vous devez avoir installé les paquets debhelper, kernel-package (pour make-kpkg), libqt3-mt-dev, xlibs-dev, libxtst-dev, fakeroot, rpm and wget.

apt-get install debhelper kernel-package libqt3-mt-dev xlibs-dev
libxtst-dev fakeroot rpm wget

Vous devriez également installler libncurses5-dev si vous désirez utiliser make menuconfig ou make-kpkg --config menu configure pour configurer votre noyau.

Si vous souhaitez seulement construire le module pour le noyau, vous avez besoin de debhelper, kernel-package et fakeroot.

Lorsque tout ceci est en place, vous pouvez continuer en téléchargeant les sources des paquets ou les paquets préconstruits.

3a. Sources

Ceci est la traduction française de la page de Flavio ATI Linux driver packages for Debian. Consultez cette dernière pour des informations sur la version la plus récente du driver.

Ces scripts vont empaqueter le driver ATI version 8.12.10. Vous pouvez demander une version différente en donnant une valeur à une variable d'environnement en appelant debian/rules, mais ceci est laissé à titre d'exercice aux utilisateurs avancés parce que ça n'a pas été testé et pourrait échouer.

Les scripts détecteront quelle version de XFree86 est installée sur la machine et téléchargera le paquet de driver adéquat. Vous pouvez demander une version différente à l'aide d'une variable d'environnement, mais là encore les détails sont avantageusement passés sous silence.

Téléchargez les fichiers ci-dessus dans le répertoire de votre choix (mais de préférence /usr/src) and dépaquetez-les avec la commande :

dpkg-source -x fglrx-installer_8.12.10-1.dsc

Puis allez dans le répertoire fglrx-installer-8.12.10 nouvellement créé et lancez

dpkg-buildpackage -b -rfakeroot -tc -uc -D

Le script de construction téléchargera le driver depuis le site d'ATI, et générera les paquets suivants dans le répertoire parent :

Vous pouvez maintenant installer les paquets et compiler le module pour le noyau.

3b. Binaires

Ceci est la traduction française de la page de Flavio ATI Linux driver packages for Debian. Consultez cette dernière pour des informations sur la version la plus récente du driver.

Ces paquets sont proposés par Flavio Stanchina pour faciliter la vie de ceux qui ne veulent pas apprendre à fabriquer seuls leurs paquets.

Aucune garantie n'est donnée sur ces paquets ; par exemple, aucune garantie n'est donnée que le système sur lequel ils ont été construits est exempts de virus qui pourraient affecter les paquets, et aucune garantie n'est donnée concernant l'intégrité de l'auteur : ne soyez donc pas étonnés que ces paquets installent une backdoor sur votre système (bien que cela n'ait pas été fait jusqu'à présent, c'était juste pour vous effrayer). Les sources données plus haut sont sûres à cet égard, attendu que vous êtes suffisament paranoïaque pour avoir vérifié qu'ils ne contenaient pas un rm -rf subtilement placé. Le dernier mot est pour Flavio : "Ne me faites pas confiance, car je ne vous ferais pas confiance."

Flavio met à votre disposition des paquets binaires pour :

À cause de contraintes spatio-temporelles, Flavio n'uploade des paquets que pour certaines versions de X.org et XFree86. Si vous avez besoin de paquets pour d'autres versions, demandez poliment ou contruisez-les vous même.

Donovan Baarda a compilé le module pour un certain nombre de paquets kernel-header standards. Si vous utilisez un des noyaux standards qu'il supporte, vous pouvez obtenir ici ses paquets précompilés.

Peter Nelson a été suffisament aimable pour fabriquer des paquets binaires pour XFree86 4.3.0 sur AMD64 et les rendre disponibles pour vous.

4. Installer les paquets et compiler le module pour le noyau

Vous devez installer les paquets "-driver" et "-kernel-src" ; le paquet "-driver-dev" contient les fichiers d'en-têtes (headers) ainsi que la bibliothèque statique libfglrx_gamma.a dont vous n'avez besoin que si vous développez des applications OpenGL spécifiques aux cartes ATI. Le paquet "-control-qt3" installe le panneau de contrôle qui peut s'avérer utile pour une configuration multi-écrans ; enfin le paquet "-sources" contient le code source du panneau de contrôle et une application d'exemple - vous n'en avez pas besoin pour une utilisation normale.

cd ..
dpkg -i fglrx-driver_8.12.10-1_arch.deb
dpkg -i fglrx-kernel-src_8.12.10-1_arch.deb

Après avoir installé les paquets, vous avez à compiler le module pour le noyau afin d'activer l'accélération 3D. Changez le répertoire courant pour /usr/src et décompressez les sources du module :

tar zxvf fglrx-kernel-src.tar.gz
Effacer un vieux répertoire /usr/src/modules/fglrx-kernel-src avant de faire une mise à jour du paquet source.

Plusieurs méthodes sont possibles pour compiler le module. Choisissez-en une, en sachant que la méthode utilisant make-kpkg est nettement préférable (et préférée).

4.1 Compilation avec le script make.sh fourni

Ceci compilera un module qui s'adaptera au noyau fonctionnant à ce moment ; vous aurez besoin d'avoir les bonnes sources et configuration en place.

cd /usr/src/modules/fglrx-kernel-src
./make.sh

Si la compilation du module s'est déroulée sans erreur, devenez root et installez le module :

mkdir /lib/modules/$(uname -r)/misc
cp fglrx.ko /lib/modules/$(uname -r)/misc/
depmod -ae

4.2 Compilation à l'aide du makefile du noyau (version 2.6.x uniquement)

Ceci générera un module pour le noyau dont vous indiquez les sources. Si vous êtes incapable de construire un module qui fonctionne avec make-kpkg, veuillez essayer cette méthode et installer le module à la main. Si ce module fonctionne, le créer avec make-kpkg nécessitera simplement d'utiliser les bons paramètres.

cd /usr/src/kernel-source-2.x.y
make SUBDIRS=/usr/src/modules/fglrx-kernel-src modules

(En remplaçant /usr/src/kernel-source-2.x.y par le chemin vers les sources de votre noyau.)

4.3 Compilation avec la commande make-kpkg

cd kernel-source-2.x.y
fakeroot make-kpkg --append-to-version "-flavour" --added-modules fglrx-kernel-src modules_image

Remplacez "-flavour" par la valeur correspondant à votre noyau, typiquement quelque chose comme "-1-686" pour un noyau Debian préconstruit. Voir la section 2.1 Sources du noyau pour de plus amples détails.

Ceci construira un nouveau paquet, que vous aurez à installer :

dpkg -i /usr/src/fglrx-kernel-2.x.y_8.12.10-1+kernelversion_arch.deb

Important si vous construisez vos propres paquets, veuillez mettre à jour debhelper (consultez le bug Debian n°248624), sinon vous devrez lancer vous-même à la main update-modules après l'installation du module.

4.4 Compilation avec module-assistant

module-assistant -k /usr/src/linux update
module-assistant -k /usr/src/linux build fglrx-kernel-src
module-assistant -k /usr/src/linux install fglrx-kernel-src

Si c'est nécessaire, module-assistant décompactera les sources pour vous. Assurez vous de retirer le répertoire /usr/src/modules/fglrx-kernel-src avant une mise à jour du paquet, parce que module-assistant ne le fera pas à votre place.

Si vous préférez construire les paquets avec m-a à partir de votre propre compte utilisateur :

mkdir ~/src/modass
module-assistant -u ~/src/modass -k ~/src/linux update
module-assistant -u ~/src/modass -k ~/src/linux build fglrx-kernel-src
module-assistant -u ~/src/modass -k ~/src/linux install fglrx-kernel-src

Note : une présentation détaillée de module-assistant est hors de la portée de ce document. Veuillez consulter la documentation de module-assistant.

4.5 Installation du module pour le noyau

Si vous avez utilisé make-kpkg, vous disposez d'un joli paquet Debian à installer ; si vous avez utilisé la commande install de module-assistant, le module est déjà installé ; sinon, vous devez copier le module de /usr/src/modules/fglrx-kernel-src dans le bon répertoire sous /lib/modules, puis lancer depmod -ae pour l'installer.

Il est temps d'essayer de charger le module :

modprobe fglrx

Si modprobe ne peut pas charger le module, assurez-vous de l'avoir installé correctement, d'avoir lu le paragraphe sur le bug n°248624, et d'avoir regardé les erreurs rapportées par dmesg. Si vous désirez contacter l'auteur à ce stade, veuillez inclure le message d'erreur complet de modprobe ainsi que ce que renvoient dmesg et lsmod !

"Unresolved symbols" : si vous rencontrez des erreurs comme "unresolved symbol dev_base_R863b01ad", cela signifie que votre module a été compilé avec CONFIG_MODVERSIONS=yes alors que le noyau courant ne l'a pas été. En d'autres termes, la configuration des sources de votre noyau diffère de celle du noyau actuellement utilisé. Retournez à la section 2.1 et assurez vous d'avoir configurer de manière appropiée les sources de votre noyau (vérifiez en particulier CONFIG_MODVERSIONS).

Si vous ne pouvez toujours pas charger le module, référez vous à Question 4.7: When I try to run "modprobe fglrx" it doesn't work (extrait de la Gentoo ATI Radeon FAQ) avant de contacter l'auteur.

5. Configurer le serveur X

Le paquet du driver fournit un outil de configuration automatique nommé fglrxconfig. Ne l'utilisez pas, d'accord ? fglrxconfig est utile si vous voulez une configuration dual-head, mais avant d'essayer ça assurez vous qu'une configuration mono-écran fonctionne en éditant le fichier de configuration de XFree86 de la manière décrite ci-dessous. Remarquez également que fglrxconfig écrase le fichier de configuration existant de XFree86 ! (Et de fait, vous voudrez sans doute en faire une sauvegarde auparavant...)

Modifiez votre /etc/X11/XF86Config-4 :

Section "Module"
  ...
  Load "GLcore"
  Load "glx"
  Load "dri"
  ...
  # Charger "extmod" mais pas l'extension DGA
  # (L'extension DGA est impropre dans le driver fglrx)
  SubSection "extmod"
    Option "omit xfree86-dga"
  EndSubSection
  ...
EndSection

Section "Device"
  Identifier "ATI"
  Driver     "fglrx" # ceci est la partie importante

# Si X refuse d'utiliser la résolution que vous demandez,
# décommentez ceci ; voir Bugs et Rustines pour les détails.
  #Option "NoDDC"

# === Video Overlay pour l'extension Xv ===
  Option "VideoOverlay" "on"
# === OpenGL Overlay ===
# Note : quand l'overlay OpenGL est activé, l'overlay 
# video est automatiquement désactivé
  Option "OpenGLOverlay" "off"
# === Utiliser le support AGP GART interne ? ===
# Si l'accélération OpenGL ne fonctionne pas, essayer de mettre
# "yes" ici et désactivez le driver agpgart du noyau.
  Option "UseInternalAGPGART" "no"
EndSection

Section "Screen"
  Identifier "your screen"
  Device     "ATI"
  Monitor    "your monitor"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1280x960" # Ceci n'est qu'un exemple,
                     # mettez ici votre résolution préférée.
  EndSubSection
EndSection

Section "DRI"
  Mode 0666
EndSection

Arrêtez et redémarrez votre serveur X. La manière de le faire est laissée à titre d'exercice, mais en général cela consiste à passer à une console virtuelle en mode texte en pressant CTRL+ALT+F1, puis arrêter et redémarrer votre display manager (kdm, gdm, etc.). (Note du traducteur : sudo /etc/init.d.gdm restart) Si vous ne savez pas vous débrouiller autrement qu'en redémarrant le système, vous aurez de gros problèmes si les choses ne se passent pas comme prévu : vous pourriez être coincé avec une simple console, ou les choses pourraient vraiment aller de travers et vous pourriez avoir à redémarrer en single user mode parce que votre affichage et votre clavier sont complètement bloqués. Donc s'il vous plaît apprenez comment arrêter et redémarrer le serveur X.

Lorsque le serveur a redémarré, vérifiez que l'accélération OpenGL est activée. Ouvrez un terminal et tapez fglrxinfo ou glxinfo : la ligne "OpenGL renderer string" devrait dire quelque chose comme "RADEON 9600 XT Generic" ; si la réponse est plutôt "Mesa GLX Indirect", cela signifie qu'il y a un problème.

6. Bugs et Rustines

6.1 Mode plein-écran

Le mode plein-écran est d'une certaine manière cassé  parfois vous obtiendrez un affichage déformé, et votre seule chance de revenir au bureau est de fermer à l'aveuglette le programme qui a provoqué ceci. Aucun contournement n'est à l'heure actuelle connu pour ce problème.

Ce problème était fréquent avec les versions plus anciennes du driver, mais cela arrive rarement maintenant.

6.2 DGA extension

Les versions récentes du driver implémentent l'extension DGA, mais il y a des problèmes : MPlayer va par exemple bloquer votre écran si vous utilisez -vo dga(*). Xavier nous dit :

Je viens d'essayer et le résultat est un redémarrage de mon ordinateur (j'ai essayé de lancer xdtv). Je crois que l'implémentation de DGA est encore un peu bugguée :-)

Par conséquent, Flavio vous suggère de désactiver l'extension DGA dans votre configuration de XFree86 (voir plus haut).


*. Testé pour la dernière fois avec le driver version 8.12.10.

6.3 Sortie DVI qui ne fonctionne pas

Apparemment, le driver ATI ne supporte pas le port DVI de la Radeon 8500 LE de Flavio : le moniteur passe en mode veille dès que X démarre. Ce n'est pas un problème matériel, parce que Linux démarre en mode texte sur le port DVI, et le driver de Windows XP fonctionne bien (non, il ne fait pas fonctionner XP pour autre chose que quelques jeux).

Voici ce qui apparait dans ses logs de XFree avec cette carte :

...
(--) Chipset ATI R200 QL (R8500) found
...
(II) fglrx(0): Primary head:
 Monitor   -- NONE
 Connector -- None
 DAC Type  -- Unknown
 TMDS Type -- NONE
 DDC Type  -- NONE
(II) fglrx(0): Secondary head:
 Monitor   -- NONE
 Connector -- VGA
 DAC Type  -- Primary
 TMDS Type -- NONE
 DDC Type  -- VGA_DDC

Plusieurs personnes ont affirmé qu'elles utilisaient avec succès le port DVI sur des cartes différentes, un test a donc été fait en empruntant une 9600 XT et ça a fonctionné "out of the box", sans même avoir à ajuster la configuration de XFree86. Avec cette 9600 XT, la tête principale dit quelquechose comme "Connector: DVI-I", TMDS Type: Internal".

Quelqu'un a suggéré d'essayer avec

  Option "MonitorLayout" "TMDS, AUTO"

dans le fichier de configuration de XFree86, mais cela n'a fait aucune différence.

Présentement, personne n'est connu pour utiliser le port DVI d'une 8500 avec le driver fglrx. Si vous y arrivez, veuillez partager votre expérience.

Mise à jour : en avril 2005, Flavio a installé les paquets X.org 6.8.2-10 d'Ubuntu, et était curieux de voir si le port DVI fonctionnait avec le driver "radeon" de X.org. L'écran était également vide au départ, mais avec l'option MonitorLayout, le port DVI fonctionne finalement.

6.4 DVI sur portable IBM T41p

Carsten nous fait part à Flavio de son expérience avec un portable IBM T41p :

J'ai installé votre paquet le plus récent (8.10.19-1) et cela fonctionne bien hormis la sortie DVI comme mentionné sur votre site web. J'utilise un IBM T41p avec une carte ATI Technologies Inc M10 NT [FireGL Mobility T2] (rev 80). Excepté ce problème, le driver fonctionne bien même avec radeonfb utilisé pour les terminaux. De même, le "suspend to RAM" fonctionne également : après réveil, X et les terminaux apparaissent correctement. Ainsi, j'utiliserais toujours ce driver s'il n'y avait ce problème pour le DVI ... jusqu'à ce qu'il soit réglé je travaillerai avec le driver radeon standard de X.

6.5 Clignotement sur des affichages digitaux

Jack rapporte qu'il a des problèmes en 1600x1200 avec son affichage digital. Il dit que "le problème en 1600x1200 est un problème connu car on approche de la limite de la bande passante vidéo du matériel", parce que "le standard TMDS pour DVI est limité à 165 MHz ce qui veut dire qu'on force les choses pour avoir du 1600x1200 à 60 Hz". Il a trouvé un article chez ATI qui parle de ce problème : Horizontal lines or screen flicker within Windows when using a DVI flat panel.

Il ajoute que : "Les seules solution sont de 1) réduire la fréquence de rafraichissement dans les plus grandes résolutions pour éloigner le pclk de la limite des 165 MHz ou 2) remplacer la connectique DVI par une analogique."

6.6 Tailles d'écran non standard

Il semblerait que le driver ATI refuse les résolutions que votre moniteur ne liste pas dans ses informations DDC VESA ;par exemple Flavio ne peut pas obtenir sa résolution favorite 1280x960(*) sur son moniteur Samsung CRT. Les symptômes sont les suivants : si plusieurs résolutions sont listées dans XF86Config (comme "1280x960" "1152x864" "1024x768" "800x600"), l'affichage démarre en 1024x768 avec un délai perceptible (plusieurs secondes).

Le problème peut être contourné de deux manières :

  1. Ne demander qu'une seule résolution (1280x960 dans le cas de Flavio) : l'affichage démarre immédiatement à cette résolution, mais vous ne pourrez pas en changer avec les combinaisons Ctrl,Alt,+ et Ctrl,Alt,-
  2. Ajouter Option "NoDDC" dans la section "Device" comme montré précédement. Cela n'est pas dangeureux tant que vous connaissez les bons timings de votre moniteur.

*. Flavio se propose de tuer à mains nues celui qui a inventé le 1280x1024, car les pixels n'y sont pas carrés. La proportion traditionnelle d'un CRT est en effet de 4/3 et toutes les résolutions "standards" (640x480, 800x600, 1024x768, ...) ont ce ratio. Le ratio de 1280x1024 est de 5/4, donc les pixels sont plus larges qu'un carré et les choses apparaissent comprimées verticalement, ce qui dérange Flavio qui ne peut s'empêcher de le remarquer. (Note du traducteur : allons Flavio, tout le monde n'a pas un CRT ! Par exemple, je possède un LCD 17 pouces dont la résolution native est le 1280x1024, et au contraire c'est dans les autres modes qu'apparaissent les problèmes.)

6.7 Kernel 2.6.5 : "make clean" buggué

Le "make clean" du noyau 2.6.5 efface include/linx/version.h et plusieurs autres fichiers qui sont nécessaires pour compiler des modules extérieurs.

Le problème peut être évité de la manière suivante :

$ make-kpkg ...options... kernel_image
$ make-kpkg clean
$ make-kpkg ...options... configure
$ make-kpkg ...options... modules_image

(C'est à dire qu'il faut faire un "make-kpkg configure" supplémentaire avant "make-kpkg modules_image".)

Une autre solution est d'appliquer un patch qui restaure un comportement sain (vu sur la mailing-list du noyau Linux).

N'installez pas kernel-package 8.086 qui "résout" le problème en ne lançant pas de make clean : c'est pire car le makefile du noyau créera à nouveau des liens pour tous les modules du noyau pendant la compilation des modules extérieurs.

6.8 Le module fglrx ne fonctionne pas avec CONFIG_REGPARM

Les modules binaires ne fonctionnent pas avec le CONFIG_REGPARM des noyaux 2.6 parce que cela modifie l'ABI du noyau. Depuis la version 3.7.6-5, Flavio a ajouté ce patch au module fglrx, ce qui devrait résoudre ce problème. La version upstream 3.9.0 devrait ne plus rencontrer ce problème si on en croit les release notes, mais des utilisateurs indiquent que le problème est toujours là. En commençant par la version 3.9.0-3, Flavio a appliqué un autre patch fourni gracieusement par Alexandru Fomin, qui règle le problème, espèrons-le, une fois pour toutes.

Les versions upstream 3.11.1 et ultérieures corrigent correctement ce problème.

6.9 Support AGP SiS cassé

Kevin Schlichter indique : "je possède un chipset SiS, et j'ai découvert que le support AGP ne fonctionnait pas ni avec la série de noyaux 2.4, ni avec la série 2.6 jusqu'à la 2.6.5. Je crois que des patchs sont disponibles, mais je n'en ai testé aucun."

6.10 Forcer le ChipID

Thomas Wollmer avait un problème : "ma carte est une Mobility Radeon 9600 M10 avec un pci-id 4e52 et n'est pas trouvée par le driver. Cette carte est également connue sous le pci-id 4e50. Comment puis-je dire au driver fglrx de voir la carte 4e52 comme une 4e50 ?"

Flavio lui a répondu d'essayer d'ajouter ChipID 0x4E50 dans la section Device du fichier de configuration de XFree86 ; Thomas a indiqué que cela avait fonctionné et a fourni l'extrait suivant du log de XFree86 :

(**) ChipID override: 0x4E50
(**) Chipset MOBILITY RADEON 9600/9700 (M10/M11 4E50) found

Plusieurs personnes ont confirmé que forcer la valeur du ChipID fonctionnait pour elles ; les puces les plus souvent non reconnues sont celles dont le PCI ID vaut 4e51 ou 4e52 (pour autant que l'on sache, il s'agit de puces intégrées que l'on ne trouve que dans des portables), et elles marchent bien avec ChipID 0x4E50.

6.11 Compatibilité avec les options du noyau

CONFIG Introduit État Notes
HIGHMEM4G ? OK  
PREEMPT ? OK  
REGPARM 2.6.5? OK Nécessite un patch déjà inclus dans les paquets de Flavio
4KSTACKS 2.6.6 OK  
1GLOWMEM Patch CK OK Patch 1g_lowmem_i386 de Con Kolivas

Sauf mention contraire, le driver est connu pour fonctionner avec n'importe quelle combinaison de ces options.

6.12 Notes au sujet de l'AMD64

lib ou lib64 ?

Debian est un système Amd64 "pur" : les bibliothèques 64 bits vont dans /.../lib et les bibliothèques 32 bits vont dans /emul/ia32-linux/.../lib. Cela signifie que le driver fglrx a besoin d'un lien de /usr/X11R6/lib64 à lib parce qu'il est compilé pour un système "hybride"(*) qui place les bibliothèques 64 bits dans /.../lib64.

Les paquets fournis par Flavio ne créent pas automatiquement un tel lien parce qu'il n'est pas sûr que cela ne casse rien par ailleurs ou que cela ne pose pas de problème à quelque chose d'autre. Vous pouvez créer vous-même ce lien à la main :

ln -s lib /usr/X11R6/lib64

Ce lien est nécessaire pour que l'accélération 3D fonctionne.


*. Est-ce qu'hybride est le terme utilisé par Red Hat, SuSE et d'autres ?

7. Comparaisons

Flavio maintient une liste de configurations fonctionnelles avec leurs scores à fgl_glxinfo : si vous le désirez vous pouvez aller y jeter un oeil.

8. Mailing list

Une mailing list (en anglais) est dédiée spécialement aux discussions au sujet de ces paquets. En particulier, des informations sur les nouvelles versions y sont publiées. Vous pouvez vous inscrire en envoyant un mail à flavio-fglrx-subscribe at stanchina.net.

Si vous avez des problèmes avec les paquets, veuillez écrire à la liste et non pas à l'auteur, parce qu'il y a de grandes chances que quelqu'un soit en mesure de vous y aider. Noter cependant que cette mailing list n'a pas pour objectif de discuter du driver fglrx en général, mais est destinée aux utilisateurs des paquets pour Debian. L'envoi de mails est réservé aux inscrits. Les abus ne seront pas tolérés.

Les archives de cette mailing list sont consultables.

Divers

Sur la page de Flavio, vous trouverez en plus de ces informations (mais en anglais), entre autres :

$Id: driver_ati_pour_debian.html 5 2005-05-10 11:55:40Z florimond $