Como instalar o driver proprietário AMD Catalyst(FGLRX) no Debian Jessie(8.5) com kernel 4.8


Como instalar o driver proprietário AMD Catalyst(FGLRX) no Debian Jessie(8.5) com kernel 4.8

Atualização: Como instalar o driver proprietário AMD Catalyst(FGLRX) no Debian 8(Jessie) com kernel 4.10


Descrição do problema


Ao configurar, compilar e instalar o kernel 4.8 baixado do site https://www.kernel.org/ no Debian Jessie aparentemente deu tudo certo.
Mas ao instalar o pacote fglrx-driver como descrito em https://wiki.debian.org/ATIProprietary#Debian_8_.22Jessie.22 , ocorreu o erro:
Erro GPL-incompatible module fglrx.ko uses GPL-only symbol
e examinando o arquivo /var/lib/dkms/fglrx/14.9.1151/build/make.log:
DKMS make.log for fglrx-14.9.1151 for kernel 4.8.6-Alexandre-2016.08.05 (x86_64)
Dom Set 11 20:42:19 BRT 2016
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make -C /lib/modules/4.8.6-Alexandre-2016.08.05/build SUBDIRS=/var/lib/dkms/fglrx/14.9.1151/build/2.6.x modules
make[1]: Entering directory '/usr/src/linux-3.18.41'
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/firegl_public.o
/var/lib/dkms/fglrx/14.9.1151/build/2.6.x/firegl_public.c:6434:12: warning: ‘KCL_fpu_save_init’ defined but not used [-Wunused-function]
static int KCL_fpu_save_init(struct task_struct *tsk)
^
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_acpi.o
/var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_acpi.c:839:20: warning: ‘KCL_ACPI_Slot_No_Hotplug’ defined but not used [-Wunused-function]
static acpi_status KCL_ACPI_Slot_No_Hotplug(KCL_ACPI_DevHandle handle, u32 lvl, void *data, void **rv)
^
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_agp.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_debug.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_ioctl.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_io.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_pci.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_str.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_iommu.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl.o
CC [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/kcl_wait.o
LD [M] /var/lib/dkms/fglrx/14.9.1151/build/2.6.x/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'cpu_tlbstate'
scripts/Makefile.modpost:90: recipe for target 'modpost' failed make[2]: *** [modpost] Error 1
Makefile:1385: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/usr/src/linux-3.18.41'
Makefile:88: recipe for target 'kmod_build' failed
make: *** [kmod_build] Error 2
build failed with return value 2
A linha que revela a causa do problema neste caso é a linha 28 do log:
FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'cpu_tlbstate'

Solução


Primeiro é necessário habilitar os repositórios backports, para isto edite o arquivo /etc/apt/sources.list:
sudo vi /etc/apt/sources.list
Adicione as linhas:
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
Salve as alterações do arquivo e execute os comandos:
sudo apt-get update && sudo apt-get -t jessie-backports install fglrx-driver fglrx-modules-dkms fglrx-source fglrx-control
Com isto os pacotes FGLRX do repositório backports serão instalados resolvendo outro problema, que é a falta de patch do pacote do repositório normal que também impede sua instalação em kernel superior a versão 3.19.

Execute os comandos no terminal:(Os comandos levam em consideração que você descompactou o kernel no path /usr/src/)
sed -i 's/EXPORT_SYMBOL_GPL(pci_ignore_hotplug)/EXPORT_SYMBOL(pci_ignore_hotplug)/g' /usr/src/linux-3.18.41/drivers/pci/pci.c
sed -i 's/EXPORT_SYMBOL_GPL(cpu_tlbstate)/EXPORT_SYMBOL(cpu_tlbstate)/g' /usr/src/linux-3.18.41/arch/x86/mm/init.c
Após aplicar os comandos recompile o kernel e instale-o normalmente.

Agradeço ao usuário DONAHUE do Gentoo: https://forums.gentoo.org/profile.php?mode=viewprofile&u=153895&sid=c0b4439b85365a408cf027918ee464f4 que postou parte da solução no fórum do Gentoo: https://forums.gentoo.org/viewtopic-t-1016728-start-0.html?sid=4602e705edb4b8f4557b522e6aaca041
logoblog