Outils pour utilisateurs

Outils du site


bidouille:debian_wheezy_fglrx_-_installation_du_module_noyau_avec_linux_3.14

Debian Wheezy & Fglrx - Installation du module noyau avec Linux 3.14

Quoi qu'y dit ?

Sous Debian ( et dans la plupart des distro GNU/Linux d'ailleurs), il existe plusieurs solutions en ce qui concerne les pilotes de carte graphique.

  • Le pilote libre : parfait pour les applications 2D ( bureautique, vidéo…), les performances 3D sont souvent limitées. Notons que dans certains cas ou le support n'est plus assuré par le constructeur, c'est la seule solution.
  • Le pilote proprio packagé par la distro : Proprio = performances 2D/3D optimales. Il sera installé via le gestionnaire de paquet de la distribution.
  • Le pilote proprio via un installateur fournis par le constructeur.

Sous Debian Wheezy, et en ce qui concerne les cartes AMD/ATI, le pilote proprio s'appelle Fglrx, et son installation est laborieuse avec une version de noyau > 3.2, à cause d'un bug lors de la compilation du module noyau.

Il existe un projet destiné à faciliter l'installation des pilotes graphiques dans la plupart des distributions GNU/Linux ; Sgfxi. Le problème de la compilation reste néanmoins existant.

Ayant passé quelques heures à chercher une solution, je partage ici la solution que j'ai trouvé au problème avec l'aide d'autres utilisateurs bien sûr.

Modification du fichier 'firegl_public.c'

Le fichier source 'firegl_public.c' qui se trouve dans /usr/src/fglrx-xx.xx contient une instruction qui fait échouer la compilation du module.

Le problème se trouve à la ligne 1761. Remplacer

#ifdef current_euid
    return current_euid();
#else

par

#ifdef current_euid
    return __kuid_val(current_euid());
#else

et recompiler le noyau règle le problème.

Recompilation manuelle du module

Méthode un peu crado :

sudo su
apt-get install --install-depends fglrx-driver

L'installation finit sur une erreur, on va la régler en faisant les modifs du point précédant puis relancer la compil'.

cd /usr/src/fglrx-13.12
make

Une fois que c'est fait, on installe le module.

mkdir -p /var/lib/dkms/fglrx/kernel-X.xx_etc/module/ 
cp fglrx.ko /lib/modules/3.14-0.bpo.1-amd64/updates/dkms/
cp fglrx.ko /var/lib/dkms/fglrx/kernel-X.xx_etc/module/ 
update-initramfs -u

Méthode plus propre : modif du paquet

Une méthode plus propre : on modifie le fichier dans le paquet, et on l'installe.

On télécharge le paquet ( adaptez votre version et architecture !) :

wget http://ftp.fr.debian.org/debian/pool/non-free/f/fglrx-driver/fglrx-modules-dkms_13.12-4~bpo70+1_amd64.deb

On extrait le paquet :

dpkg -x fglrx-modules-dkms_13.12-4~bpo70+1_amd64.deb build
dpkg -e fglrx-modules-dkms_13.12-4~bpo70+1_amd64.deb build/DEBIAN

On fait les modifs sur le fichier 'firegl_public.c' qui se trouve dans build/usr/src/fglrx-13.12/.

On reconstruit le paquet :

dpkg -b fglrx-modules-dkms_13.12-cor_amd64.deb build

On installe :

dpkg -i fglrx-modules-dkms_13.12-cor_amd64.deb build

Bonus : Désactivation du module radeon

Le module radeon ne doit pas être chargé en même temps que le module fglrx, car ils sont en conflit.

Il faut donc veiller à vérifier que le module radeon est blacklisté dans /etc/modprobe.d/fglrx-blacklists-radeon.conf. Si ce n'est pas le cas, on crée le fichier :

echo "blacklist radeon" > /etc/modprobe.d/fglrx-blacklists-radeon.conf'

On vérifie bien dans /etc/initramfs-tools/modules qu'aucune ligne ne contient radeon. On vérifie dans /etc/default/grub la ligne , et on ajoute l'option radeon.modeset=0 si besoin:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.modeset=0"

On oublie pas de générer l'image noyau et la config grub :

sudo update-initramfs -u
sudo update-grub

Sources : http://devgurus.amd.com/thread/159241 http://ati.cchtml.com/show_bug.cgi?id=847

bidouille/debian_wheezy_fglrx_-_installation_du_module_noyau_avec_linux_3.14.txt · Dernière modification: 2014/06/12 15:57 par arthus