Auto Actualizar módulos del kernel con DKMS

Yo tenía una Dell OptiPlex 990 ordenador de sobremesa de la marca nueva que acababa de ser instalado con Scientific Linux 6. Enterprise Linux funciona muy bien en estas cosas, excepto que estaba recibiendo una gran cantidad de errores de red.

 # lspci | grep Ethernet 
00:19.0 Ethernet controlador: Conexión de red Gigabit 82579LM Intel Corporation (rev 04)
 11 de septiembre 03:59:47 kernel foo : e1000e: em1 NIC Link es abajo 
11 de septiembre 03:59:47 foo NetworkManager [1760]: (em1): portador ahora OFF (estado del equipo 8, aplazando la acción durante 4 segundos)
11 de septiembre 03:59:47 kernel foo: e1000e 0000:00:19.0: em1: Restablecer adaptador

La solución es actualizar a la última versión del controlador e1000e Intel Wired Ethernet, actualmente la versión 1.6.2. Es bastante fácil para descargar, un-tar, y make install paquete, pero se tendrá en cuenta después de instalar un nuevo kernel. Soporte

núcleo dinámico del módulo (DKMS) es una solución fácil a este problema. Dado que estamos reemplazando un módulo del kernel que se incluye en el paquete RPM núcleo que, queremos estar seguros de que el controlador actualizado será construido e instalado de forma automática cada vez que se inicia un nuevo kernel.

DKMS es fácil de instalar con el repositorio EPEL habilitado. Aquí estamos permitiendo EPEL en Scientific Linux 6, a continuación, ñam instalar el paquete DKMS:

 # rpm-ihv http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6 -5.noarch.rpm 
# yum install dkms

Debemos descargar y preparar a la última versión del código fuente del módulo moviendo el código fuente a un / usr / src / modulename-VERSION directorio, a continuación, cree un archivo dkms.conf dentro:

 # cd / usr / local / src 
# wget http://downloads.sourceforge.net/project/e1000/e1000e% 20stable/1.6 .2/e1000e-1.6.2.tar.gz
# tar xzvf e1000e-1.6.2.tar.gz
# mv e1000e-1.6.2/src / usr/src/e1000e-1.6. 2
# vim / usr/src/e1000e-1.6.2/dkms.conf

dkms.conf :

 PACKAGE_NAME = "e1000e" 
versión_paquete = "1.6.2"
BUILT_MODULE_NAME [0] = "e1000e"
DEST_MODULE_LOCATION [0] = "/ kernel/drivers/net/e1000e /"
AUTOINSTALL = "yes"

Ahora que tenemos el código fuente en su lugar, le decimos a DKMS de mantener, construir e instalar el módulo:

 # dkms add-m e1000e-v 1.6.2 
# dkms construir - m e1000e-v 1.6.2
# dkms install-m e1000e-v 1.6.2
# chkconfig dkms_autoinstaller en

Debemos cambiar el orden de búsqueda de los módulos para permitir la «módulos débiles» para cargar antes de que los módulos integrados editando el / etc / depmod.d / dist.conf file:

 adicional débiles-actualizaciones incorporadas 

Este último paso asegura que al reiniciar en un nuevo núcleo, el módulo personalizado se carga en lugar del módulo RPM empaquetado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *