[CentOS-es] Problema al cargar los drivers de una NIC Broadcom Netxtreme II BCM5708

Miguel A. Velasco miguel.suscripcion en gmail.com
Mar Ago 2 09:57:48 EDT 2011


Buenos días a tod en s, esta mañana al llegar a la oficina me he encontrado 
uno de los servidores de la empresa sin conexión a la LAN. Se trata de 
un Dell PE2950 con dos NIC del modelo Broadcom Netxtreme II BCM5708.

Les voy a detallar minuciosamente lo que ha sucedido por si alguien 
pudiese iluminarme ya que ha llegado un punto donde no avanzo.

Aparentemente todo era correcto pero en /var/log/messages salía el 
siguiente error:

   bnx2: fw sync timeout, reset code = 1030009
   SIOCSIFFLAGS=Device or resource busy
   Failed to bring up eth0

El comando #ethtool -i eth0 me sacaba lo siguiente:
   driver: bnx2
   version: 1.9.3
   firmware-version: 2.9.1
   bus-info: 0000:05:00.0

Mr Google me llevó a este enlace 
https://alnitech.com/whmcs/knowledgebase.php?action=displayarticle&id=7 
lo cual me hizo suponer que el problema era de compatibilidad con Dell 
OMSA 6.5, el cual efectivamente tenía instalado en ese servidor. Además 
hace unos días que he cambiado la configuración de la tarjeta eth1 y 
puede ser que justo hoy me fallase ...

Por tanto seguí los pasos que indicaban en el enlace y eliminé Dell OMSA 
6.5, reinicié el equipo y NADA, continuaba el problema sólo que ya no 
arrojaba ningún error en /var/log/messages.

Llegados a este punto, me he descargado los drivers originales del 
fabricante (http://www.broadcom.com/support/ethernet_nic/netxtremeii.php 
) y los he instalado en el servidor siguiendo los pasos que indican en 
el manual, que son:

   1.-Instalar el paquete RPM descargado.
    # rpm -ivh netxtreme2-6.2.23-1.src.rpm

   2.- Generar el binario RPM para netxtreme2.
    # cd /usr/src/redhat
    # rpmbuild -bb SPECS/netxtreme2.spec

    Obtengo el RPM netxtreme2-6.2.23-1.i386.rpm para el Kernel 
2.6.18-194.32.1.el5PAE que tengo activo en el servidor.

   3.- Detengo las 2 NIC con ifdown eth0 y ifdown eth1

   4.- Elimino el módulo bnx2 del kernel con rmmod bnx2

   5.- Instalo el nuevo módulo desde el RPM generado: #rpm -ivh 
netxtreme2-6.2.23-1.i386.rpm

En este punto el servidor recobra la conectividad con el mundo y me digo 
¡bualá! ya lo he solucionado, pero .... compruebo que cuando aplico 
cambios relacionados con las NIC la conectividad se vuelve a perder. Me 
refiero a cambios como estos:

   #ifdown etho & ifup eth0
   #/etc/init.d/network restart

Si reinicio el servidor, por su puesto también falla ...
Ahora viene lo más curioso: si desinstalo el paquete 
netxtreme2-6.2.23-1.i386.rpm, ejecuto rmmod bnx2 y vuelvo a instalar el 
RPM se vuelve a cargar el módulo y recupero la conectividad.

¿Cómo puedo hacer para que esta configuración se me cargue en el inicio 
del sistema y que no se vea afectada por cambios en las NIC? Todo apunta 
a que el módulo no se está cargando correctamente en el kernel más que 
cuando reinstalo manualmente el RPM

Gracias por el tiempo que le habéis dedicado a leer este tostón :) y si 
alguien tiene alguna idea será bienvenida.

Les detallo la configuración actual:

(15:49:08)[root-/]#> cat /etc/modprobe.conf
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter megaraid_sas


(15:49:36)[root-/]#> modinfo bnx2
filename:       /lib/modules/2.6.18-194.32.1.el5PAE/updates/bnx2.ko
version:        2.0.23b
license:        GPL
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
author:         Michael Chan <mchan en broadcom.com>
srcversion:     6E0DD070AB24C11F50B2712
alias:          pci:v000014E4d0000163Csv*sd*bc*sc*i*
alias:          pci:v000014E4d0000163Bsv*sd*bc*sc*i*
alias:          pci:v000014E4d0000163Asv*sd*bc*sc*i*
alias:          pci:v000014E4d00001639sv*sd*bc*sc*i*
alias:          pci:v000014E4d000016ACsv*sd*bc*sc*i*
alias:          pci:v000014E4d000016AAsv*sd*bc*sc*i*
alias:          pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*
alias:          pci:v000014E4d0000164Csv*sd*bc*sc*i*
alias:          pci:v000014E4d0000164Asv*sd*bc*sc*i*
alias:          pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*
alias:          pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*
depends:
vermagic:       2.6.18-194.32.1.el5PAE SMP mod_unload 686 REGPARM 
4KSTACKS gcc-4.1
parm:           disable_msi:Disable Message Signaled Interrupt (MSI) (int)
parm:           stop_on_tx_timeout:For debugging purposes, prevent a 
chip  reset when a tx timeout occurs (int)

(15:49:48)[root-/]#> ethtool -i eth0
driver: bnx2
version: 2.0.2
firmware-version: 2.9.1
bus-info: 0000:05:00.0

(15:48:49)[root-/]#> dules/2.6.18-194.32.1.el5PAE/kernel/drivers/net/bnx2*
-rwxr--r-- 1 root root 184K Jan  6  2011 
/lib/modules/2.6.18-194.32.1.el5PAE/kernel/drivers/net/bnx2.ko
-rwxr--r-- 1 root root 596K Jan  6  2011 
/lib/modules/2.6.18-194.32.1.el5PAE/kernel/drivers/net/bnx2x.ko

(15:48:53)[root-/]#> ll /lib/modules/2.6.18-194.32.1.el5PAE/updates/
total 5.2M
drwxr-xr-x 2 root root 4.0K Aug  2 14:54 .
drwxr-xr-x 6 root root 4.0K Aug  2 14:54 ..
-r--r--r-- 1 root root 692K Aug  2 13:34 bnx2i.ko
-r--r--r-- 1 root root 582K Aug  2 13:34 bnx2.ko
-rw-r--r-- 1 root root 3.4M Aug  2 13:34 bnx2x.ko
-r--r--r-- 1 root root 518K Aug  2 13:34 cnic.ko

Miguel A. Velasco
Ing de Sistemas


Más información sobre la lista de distribución CentOS-es