Compilar fglrx 15.200 en Ubuntu 15.04 Vivid Kernel 3.19.0.26-25

A muchos al Querer instalar el paquete fglrx les pudo haber pasado que falló por un error:

+ [FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol
+ ‘pci_ignore_hotplug’]

La solución es downgradear nuestro kernel a 3.19.0.25-24 o inferior como se explica en http://askubuntu.com/questions/138284/how-to-downgrade-a-package-via-apt-get

O dejar de usar el repositorio “Proposed”

Otra opción sería patchear este módulo.

Para ello guardamos con nano o nuestro editor preferido lo siguiente con el nombre fglrx_ignore_hotplug.diff

diff -N -u --recursive fglrx-installer-updates-15.200/debian/dkms/patches/gpl_pci_ignore_hotplug.patch fglrx-installer-updates-15.200-pacthed/debian/dkms/patches/gpl_pci_ignore_hotplug.patch
--- fglrx-installer-updates-15.200/debian/dkms/patches/gpl_pci_ignore_hotplug.patch	1969-12-31 17:00:00.000000000 -0700
+++ fglrx-installer-updates-15.200-pacthed/debian/dkms/patches/gpl_pci_ignore_hotplug.patch	2015-08-03 10:21:24.257731699 -0600
@@ -0,0 +1,11 @@
+--- a/kcl_acpi.c	2015-07-31 11:29:12.258116934 -0600
++++ b/kcl_acpi.c	2015-08-02 11:18:50.105349332 -0600
+@@ -861,7 +861,7 @@
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
+     if(pdev)
+     {
+-       pci_ignore_hotplug(pdev);
++       pdev->ignore_hotplug = 1;
+     }
+ #endif
+ }
diff -N -u --recursive fglrx-installer-updates-15.200/debian/dkms.conf.in fglrx-installer-updates-15.200-pacthed/debian/dkms.conf.in
--- fglrx-installer-updates-15.200/debian/dkms.conf.in	2015-04-22 02:39:29.000000000 -0600
+++ fglrx-installer-updates-15.200-pacthed/debian/dkms.conf.in	2015-08-03 10:20:46.549730991 -0600
@@ -7,6 +7,7 @@
 MAKE[0]="cd ${dkms_tree}/fglrx/#CVERSION#/build; sh make.sh --nohints --uname_r=$kernelver --norootcheck"
 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
 AUTOINSTALL="yes"
+PATCH[0]="gpl_pci_ignore_hotplug.patch"
 #PATCH[0]="buildfix_kernel_3.17.patch"
 #PATCH[0]="buildfix_kernel_3.19.patch"
 #PATCH_MATCH[0]="^3.1[0-2]"

Lo copiamos en una carpeta y desde allí en un terminal ejecutamos:

sudo apt-get build-dep fglrx-installer-updates
sudo apt-get source fglrx-installer-updates
cd fglrx-installer-updates-15.200/
sudo patch -p1 <../fglrx_ignore_hotplug.diff 
sudo dpkg-buildpackage -rfakeroot -uc -us -b
cd..
sudo dpkg -i fglrx-updates-core_15.200-0ubuntu4_amd64.deb

Instalamos algunos de los paquetes restantes creados y a bajar

sudo apt-get install fglrx-amdcccle-updates
sudo dpkg -i fglrx-updates_15.200-0ubuntu4_amd64.deb
sudo dpkg -i fglrx-updates-dev_15.200-0ubuntu4_amd64.deb

El agradecimiento va para  Dan Ștefan Stroe (stroestefan) and Somberlain (somberlain218)  y MatthewHawn (steamraven) que nos ayudaron con el workaround en https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1479913


Para evitar que estos paquetes se actualizen en nuestra distro momentaneamente ejecutamos:

sudo apt-mark hold fglrx-amdcccle-updates
sudo apt-mark hold fglrx-updates
sudo apt-mark hold fglrx-updates-core
sudo apt-mark hold fglrx-updates-dev

Luego cuando este bug esté solucionado ejecutaremos:

sudo apt-mark unhold package_name

Edit: Gracias a Costin (cplaiasu) , acaba de conpartirnos sus deb con el parche aplicado para quienes prefieran bajarlo en vez de compilarlo https://www.mediafire.com/?6rtlx30527v4l

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s