web-dev-qa-db-fra.com

Comment corriger le pilote ATI fglrx après la mise à niveau du noyau

Je suis passé à la pile délurée de 12.04.4 lts à partir de 12.04.3:

Sudo apt-get install --install-recommends linux-generic-lts-saucy xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy

Cela a installé le noyau 3.11 pour aller avec la version 3.8 que j'avais auparavant. Cependant, lorsque je me connecte, je constate que je suis en mode de secours et que fglrx n’est visible nulle part, dans Xorg.0.log:

Loading extension GLX
FATAL: Module fglrx not found.
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:1:1) found
FATAL: Module fglrx not found.
Loading extension FGLRXEXTENSION

Je ne peux pas le charger directement non plus:

 > Sudo modprobe fglrx
FATAL: Module fglrx not found.

Si je démarre avec l’ancien noyau 3.8, tout se passe pour Hunkey-Dorey. Aucun problème du tout.

Je pense que cela pourrait être une sorte de problème de dkms. Dans/lib/modules, j'ai:

drwxr-xr-x 4 root root 4096 Feb 10 20:43 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 3.11.0-17-generic

Pourtant:

 > ls -l /var/lib/dkms/fglrx/13.251/
total 8
drwxr-xr-x 3 root root 4096 Feb  5 22:05 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 build
lrwxrwxrwx 1 root root   21 Dec 27 17:06 source -> /usr/src/fglrx-13.251

Ne devrait-il pas y avoir une entrée de noyau 3.11? Comment actualiser les dkms pour voir le nouveau noyau qui vient d'être installé? Ou n'est-ce pas le problème?

1
fig

Je l'ai! :-)

Sudo gedit /usr/src/fglrx-13.251/kcl_acpi.c

Supprimer ces 3 dernières lignes du fichier:

     ((acpi_table_handler)handler)(hdr);
     return KCL_ACPI_OK;
}

remplacez-les par:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,1)
    ((acpi_tbl_table_handler)handler)(hdr);
#else
    ((acpi_table_handler)handler)(hdr);
#endif
    return KCL_ACPI_OK;
}

Puis lancez:

Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-17-generic

Puis redémarrez. Travaillé pour moi - noyau 3.11 et fglrx de travail maintenant!

(J'ai travaillé à partir de cette page: https://Gist.github.com/moldcraft/8116528 )

2
fig

Je ne peux pas commenter alors, voici une chose "réponse" -ish ...

Les mises à niveau du noyau ont cessé de régénérer les modules fglrx le 12.04 depuis un certain temps (> 1 an). Après le redémarrage (pour activer le nouveau noyau), lightdm vous permettra de vous connecter, mais vous recevrez ensuite rapidement une erreur liée à la taille de votre écran virtuel et serez renvoyé à l'écran de connexion. Le moniteur principal a une très faible résolution. Le moniteur secondaire est noir.

Ma solution a été de purger fglrx et de réinstaller les paquets fglrx deb.

  • Ctrl + Alt + F1
  • S'identifier.
  • dpkg -l | grep fglrx
  • Sudo apt-get purge <packages output from previous command>
  • cd /path/to/generated/fglrx*.deb
  • Sudo dpkg -i fglrx*.deb

Cette "solution" nécessite que vous la répétiez chaque fois que vous installez un nouveau noyau, ce qui est nul.

@fig Devez-vous rééditer 'kcl_acpi.c' chaque fois qu'il y a un nouveau noyau? Chaque fois qu'il y a un nouveau fglrx?

1
d-man97

m'a sauvé aussi, erreur que j'ai et n'a trouvé que des réponses trompeuses sur askubuntu.com

Problème:

   tilo@t-ubuntu:~$ fglrxinfo
  X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  155 (ATIFGLEXTENSION)
  Minor opcode of failed request:  66 ()
  Serial number of failed request:  13
  Current serial number in output stream:  13

En utilisant votre description m'a 12.04.4 avec 3.11 saucy pile en arrière.

Après avoir édité la fin du fichier 'kcl_acpi.c' j'ai exécuté

Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Sortie comme ref

tilo@t-ubuntu:~$ Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
cd /var/lib/dkms/fglrx/13.251/build; sh make.sh --nohints --uname_r=3.11.0-19-generic --norootcheck.....
cleaning build area....

DKMS: build completed.

fglrx.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.11.0-19-generic/updates/dkms/

depmod.....

DKMS: install completed.
tilo@t-ubuntu:~$ 

Maintenant fglrxinfo

tilo@t-ubuntu:~$ fglrxinfo
display: :0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Mobility Radeon HD 5800 Series
OpenGL version string: 4.3.12618 Compatibility Profile Context 13.251

btw avant 'Compatibility Profile Context 9.012' mais j'ai aussi essayé de le réinstaller à partir du site Web d'ATI.

0
TiloBunt