Páginas

viernes, 19 de octubre de 2012

Cómo instalar el controlador del adaptador Wi-Fi en openSUSE [Actualizado]

La mayoría de las veces, el adaptador Wi-Fi, tambíen llamado adaptador WLAN (Wireless Local Area Network, red de área local inalámbrica), es reconocido y configurado automáticamente durante la instalación de openSUSE. Es el caso, por ejemplo, de los adaptadores con chipsets de Intel, empresa que colabora con los desarroladores del núcleo Linux. La conexión inalámbrica se configura con el plasmoide o aplique de gestión de red que se ejecuta en la bandeja del sistema, tanto en KDE como en GNOME.

A veces, sin embargo, openSUSE no dispone de un controlador adecuado para el adaptador Wi-Fi o no dispone del firmware necesario para que el controlador funcione. Esto ocurre, por ejemplo, con muchos adaptadores de la marca Broadcom. En este caso, debemos establecer una conexión cableada y descargar e instalar el controlador adecuado o el firmware necesario. Este proceso puede realizarse automáticamente o bien de forma manual.

Plasmoide de gestión de redes de KDE Plasma.

Instalación automática


En muchos casos basta con conectar o encender el adaptador, añadir el repositorio adicional de controladores inalámbricos e instalar automáticamente los paquetes de software necesarios para que el adaptador funcione correctamente. Este repositorio contiene controladores, el firmware que necesitan para funcionar algunos controladores y utilidades de línea de comandos como rfkill.

1. Añadir el repositorio adicional de controladores inalámbricos.


2. Refrescar los respositorios, actualizar los paquetes instalados e instalar nuevos paquetes recomendados.

sudo zypper refresh

sudo zypper update

sudo zypper install-new-recommends

La salida del comando anterior puede ser parecida a ésta:

Los siguientes paquetes NUEVOS van a ser instalados:
  compat-wireless-kmp-desktop compat-wireless-scripts

2 nuevos paquetes a instalar.
Tamaño total a descargar: 2,7 MiB. Después de la operación se utilizarán 11,7 MiB adicionales.


3. Reiniciar el ordenador.

sudo /sbin/reboot

Ahora el controlador debería funcionar perfectamente.

Instalación manual


Si el procedimiento anterior no funciona, podemos recurrir a la instalación manual del controlador o a la instalación manual del firmware, según el caso. Primero hay que identificar el chipset del adaptador y el tipo de núcleo Linux instalado.

1. Identificar el chipset del adaptador.

Hay que tener en cuenta que algunos dispositivos inalámbricos internos tienen una conexión USB.
  • Para los adaptadores con conexión USB.

    sudo /usr/bin/lsusb | grep Wireless

    La salida de este comando puede ser parecida a esta:

    Bus 003 Device 005: ID 0bda: 8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter

    La salida indica que el adaptador tiene un chipset Realtek modelo RTL8187.
  • Para otros adaptadores.

    sudo /sbin/lspci -nnv | grep Wireless


    La salida de este comando puede ser parecida a esta:

    0d:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)

    La salida indica que el adaptador tiene un chipset Broadcom modelo BCM4313.
Si los comandos anteriores no detectan ningún dispositivo, puede que el adaptador esté mal conectado, esté apagado (muchos portátiles tienen un interruptor para eso) o bien esté estropeado. También puede ser que el núcleo Linux no lo detecte por otra circunstancia.

2. Identificar el tipo de núcleo instalado.

uname -sr

La salida de este comando puede ser parecida a esta:

Linux 3.6.2-6-desktop

Ademaś de un núcleo tipo desktop, openSUSE también proporciona núcleos default, pae y xen.

3. Instalar el firmware propietario para chipsets de la marca Broadcom.

Para los adaptadores con chipsets de Broadcom identificados como BCM4301, BCM4306, BCM4309, BCM4311, BCM4312, BCM4318, BCM4322, BCM4331, BCM43224 y BCM43225 están disponibles los controladores libres y de código abierto b43 y b43legacy, que vienen incluidos de serie en el núcleo. Sin embargo, estos controladores se han desarrollado utilizando ingeniería inversa, pues los desarrolladores no han tenido la colaboración de Broadcom, y  necesitan para funcionar el firmware propietario de Broadcom.

El firmware de Broadcom no se puede incluir en openSUSE por su licencia restrictiva, pero se puede descargar e instalar fácilmente mediante el procedimiento siguiente.

sudo zypper install b43-fwcutter

sudo /usr/sbin/install_bcm43xx_firmware

sudo /sbin/reboot

Ahora el adaptador debería funcionar perfectamente.

Para instalar el firmware en un sistema sin conexión a Internet, consular el artículo Cómo instalar el firmware para tarjetas Wi-Fi Broadcom sin tener conexión a la red en openSUSE.

4. Instalar el controlador propietario para chipsets de la marca Broadcom.

Broadcom ha desarrollado un controlador propietario, llamado broadcom-wl, para los adaptadores con chipsets identificados como BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 y BCM43228. Este controlador fue publicado en 2008 y funciona bastante bien en la actualidad. No necesita cargar un firmware externo.

El controlador propietario de Broadcom no se puede incluir en openSUSE por su licencia restrictiva, pero está disponible en el repositorio de Pacman. Hay que instalar la versión del controlador adecuada al núcleo Linux instalado (default, desktop...). Para un núcleo tipo desktop:

sudo zypper install broadcom-wl broadcom-wl-kmp-desktop

sudo /sbin/reboot

Ahora el adaptador debería funcionar perfectamente.

5. Instalar el controlador MadWifi para chipsets de la marca Atheros.

MadWifi es un controlador libre y de código abierto que depende de una capa de abstracción del hardware (HAL) que sólo está disponible en formato binario. Este controlador es compatible con los chips de Atheros identificados como AR5210, AR5211, AR5212, RF5111, RF5112, RF2413 y RF5413. Sólo funciona con adaptadores PCI, MiniPCI y CardBus. Es un controlador avanzado con un amplio conjunto de características, aunque actualmente se ha dejado de desarrollar y ya sólo se modifica para corregir errores. La razón de ello es que, para estos modelos, los núcleos Linux actuales proporcionan de serie el controlador completamente libre ath5k.

El controlador MadWifi está disponible en el repositorio de Wireless. Hay que instalar el módulo propietario y la versión del controlador adecuada al núcleo Linux instalado (defaultdesktop...). Para un núcleo tipo desktop:

sudo zypper install madwifi madwifi-kmp-desktop

sudo /sbin/reboot

Ahora el adaptador debería funcionar perfectamente.

6. Instalar el controlador o el firmware para chipsets de otras marcas.

Si el chipset identificado es de otro fabricante, como Ralink o Realtek, y no se ha configurado automáticamente, podemos intentar instalar manualmente un controlador adecuado o el firmware necesario para que funcione desde de repositorio Wireless. Después de la instalación del controlador o del firmware hay que reiniciar el ordenador.
  • Buscar e instalar el controlador correspondiente, según el tipo de núcleo instalado.

    sudo zypper search nombre_del_controlador

    sudo zypper install nombre_del_controlador-kmp-tipo_de_núcleo


    Por ejemplo, para un adaptador que se identifica como RTL8187 y un núcleo tipo desktop:

    sudo zypper search rtl8187

    sudo zypper install rtl8187-kmp-desktop
  • Averiguar si el controlador necesita cargar un firmware.

    dmesg | grep firmware

    La salida de este comando son las líneas del registro del núcleo que contienen la palabra firmware. Si el controlador necesita un firmware externo, habrá una línea que indique que el controlador no pudo cargar el firmware y mostrará el nombre del archivo que falta.
  • SI es necesario, buscar e instalar el paquete de firmware que falta.

    Por ejemplo, para buscar paquetes con el firmware para chipsets de Ralink, ejecutar el comando siguiente:

    sudo zypper search ralink

    La salida de este comando puede ser parecida a ésta:

    Obteniendo los datos del repositorio...
    Leyendo los paquetes instalados...

    E | Nombre          | Resumen                              | Tipo      
    --+-----------------+--------------------------------------+------------
      | ralink-firmware | Firmware files for Ralink WLAN cards | paquete   
      | ralink-firmware | Firmware files for Ralink WLAN cards | paquete src


    Para instalar el paquete localizado ejecutar est comando:

    sudo zypper install ralink-firmware


    Si el firmware no se encuentra en el repositorio Wireless, habrá que descargarlo de la web del fabricante y copiarlo en la carpeta /lib/firmware.

Si aún así no podemos hacer funcionar el adaptador Wi-Fi, podemos consultar tres bases de datos sobre la compatibilidad de dispositivos inalámbricos con Linux:

ACTUALIZACIÓN

4-1-2013. Revisión general del artículo. Corregido y ampliado la descripción del proceso de actualización automática, pues el mejor comando para instalar el controlador del adaptador wifi es sudo zypper install-new-recomends. Corregido y ampliado el apartado dedicado a chipsets de otras marcas.

12-7-2013. Corregida una errata y actualizado a la versión 12.3 de openSUSE.


Fuentes:

24 comentarios:

  1. Bien pero ¿y si no podemos enchufar el cable ethernet por que el router nos cae lejos?
    ¿Se pueden conseguir esos paquetes pasarlos a un pen o un hd usb e instalarlos despues sin conexion a la red?
    Saludos

    ResponderEliminar
    Respuestas
    1. Por supuesto. Para instalar paquetes consulta la entrada http://guiadelcamaleon.blogspot.com.es/2012/10/guia-rapida-gestor-paquetes-zypper.html.

      Un saludo.

      Eliminar
    2. La página ya no existe y tengo el mismo problema: ¿Cómo puedo instalarlo sin conexión alguna a internet? Es decir el método manual de instalación de esos paquetes. Gracias

      Eliminar
  2. Excelente información y revisión. Me permitió conectar el Wireless de mi Gateway mx6113m al internet. Muchísimas gracias.

    ResponderEliminar
    Respuestas
    1. Hola. Me alegro que te fuera bien. Si puede ser, podrías explicar la versión de openSUSE y el paso de la guía que te fue bien. Es para ayudar a otros que tengan tu problema.

      Un saludo.

      Eliminar
    2. Anónimo8/2/13 22:32

      Excelente información y revisión. Me permitió conectar la wifi en el paso 4º
      Ahora estoy buscando como solucionar al conectar los auriculares no se desconecta el sonido del notebook de marca: HP Pavilion dv6

      Eliminar
    3. Gracias por el feedback. Respecto al problema de sonido no te puede ayudar. Sólo que puedes silenciar manualmente el canal de sonido del altavoz cuando conectes los auriculares.

      Un saludo.

      Eliminar
    4. Anónimo30/3/15 3:43

      Muchas gracias, de verdad ya habia batallado mucho y no encontraba la solucion, me ha funcionado perfectamente esta guia. Gracias...!

      Eliminar
  3. Muchas gracias por la guia, esta muy bien explicada, sin duda alguna esto sera de mucha ayuda para los que quieran instalar este adaptador en openSUSE :)

    Un saludo.

    ResponderEliminar
  4. Anónimo10/5/13 1:13

    Saludos
    He realizado los pasos de tu post pero aun no puedo usar mi coneccion wireless
    me podrias ayudar
    Gracias por tu tiempo

    ResponderEliminar
    Respuestas
    1. Hola, anónimo. Si no me das más datos... Identificación del adaptador, qué has hecho...

      Eliminar
  5. Gracias por la información,conseguido configurar el wiff.

    ResponderEliminar
  6. Hola Toniem: mi USB es un Ralink RT2501/RT2573 (modelo EVO-W542USB). Pero al llegar al punto 6 de tu tutorial, e insertar "search RT2501/RT2573" me responde:

    If 'search' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf search

    He probado con "search Ralink", "search Ralink RT2501", etc, pero la respuesta es siempre la misma.

    ¿Alguna idea?

    Muchas gracias por tu blog y por tu tiempo.

    ResponderEliminar
    Respuestas
    1. Hola, compañero. Hay una errata en el artículo, ponía "sudo search nombre_del_controlador" y debe poner "sudo zypper search nombre_del_controlador". Lo acabo de corregir.

      De todas maneras, este adaptador USB está soportado de serie por el núcleo Linux de las versiones actuales de openSUSE. Comprueba lo que dice el wiki de opensuse:

      http://en.opensuse.org/HCL:Network_%28Wireless%29#Ralink

      Debería funcionar tras conectarlo, introducir el comando siguiente en el terminal y reiniciar:

      sudo sudo zypper install-new-recommends

      Si no funciona, comprueba que el núcleo ha cargado el controlador (creo que es el rt73usb):

      lsmod | grep rt73usb

      Comprueba también que tengas instalado el paquete kernel-firmware, que contiene los firmware de muchos dispositivos. También comprueba que no necesite cargar un firmware externo:

      dmesg | grep firmware

      También puedes probar a configurar la red inalámbrica desde YaST --> Ajustes de red y desactivar momentáneamente el NetworkManager.

      Un saludo.

      Eliminar
    2. Hola de nuevo Toniem: ante todo gracias por tu ayuda, pero sigo muy perdido...

      He mirado en el enlace que me dices y aparece (al menos el RT2501) aunque hasta openSuSE 11.3

      He vuelto a probar con 'install-new-recommends' pero el resultado es el mismo: "No hay nada que hacer" (Ayer lo ejecuté y sí instaló algo).

      Tal y como dices el controlador es el RT73USB, y al ejecutar 'lsmod...' el mensaje es el siguiente:

      rt73usb 31046 0
      rt2x00usb 20042 1 rt73usb
      rt2x00lib 52996 2 rt73usb,rt2x00usb
      compat 20144 4 rtl8187,rt73usb,mac80211,cfg80211
      crc_itu_t 12628 2 rt73usb,firewire_core

      Sinceramente, no tengo ni idea de lo que significa, ¿está bien cargado el controlador?

      He probado con 'dmesg...' y no hace nada, ni me da ningún mensaje...

      Y, lo último que he mirado tal y como me dices es los 'ajustes de red', y en la pestaña 'vista resumen' solo me aparece 'CK804 Ethernet Controller', no aparece por ningún lado RT2501. Así que imagino que el problema está aquí, pero todavía no sé como resolverlo, así que mañana seguiré intentándolo. ¿Alguna idea?

      Muchas gracias de nuevo por tu tiempo. Un saludo.

      Eliminar
    3. La página del wiki de openSUSE no está actualizada, si dice que el adaptador ya lo soportaba la versión 11.3, con más razón la versión 12.3. La salida del comando lsmod es correcta, indica que se ha cargado el controlador. Si la salida del comando dmesg es nula, significa que no hay que cargar ningún firmware externo. O sea, que el adaptador debería funcionar. A mi no se me ocurre qué mas puedes hacer. Te recomiendo que recurras al forosuse.org, en el que hay gente con más experiencia y conocimientos, o a lo mejor hay alguien que utiliza el mismo adaptador. Un saludo.

      Eliminar
    4. Muchas gracias de nuevo por toda la ayuda, me lo pones muy fácil. Ese es para mi el principal problema cuando busco ayuda en cualquier otro foro, que no entiendo la mayoría de las cosas que me dicen...

      Por si te sirve para algo, he probado a introducir desde el terminal la siguiente orden:

      systemctl status network.service

      Y el resultado es:

      network.service - LSB: Configure network interfaces and set up routing
      Loaded: loaded (/etc/init.d/network)
      Active: failed (Result: exit-code) since Sat, 2013-07-13 11:13:39 CEST; 3min 19s ago
      Process: 4352 ExecStart=/etc/init.d/network start (code=exited, status=7)
      CGroup: name=systemd:/system/network.service
      ├ 1324 /sbin/dhclient6 -6 -cf /var/lib/dhcp6/dhclient6.eth0.conf -lf /var/lib/dhcp6/dhclient6.eth0.lease -pf /var/run/dhclient6.eth0.pid -q e...
      └ 2940 /sbin/dhcpcd -p --netconfig -L -E -HHH -c /etc/sysconfig/network/scripts/dhcpcd-hook -t 0 -h linux-9uls eth0


      A continuación desconecto el cable ethernet con la esperanza de que el USB funcione y veo que en el terminal me indica esto:

      Jul 13 11:13:39 linux-9uls.site network[4352]: 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
      Jul 13 11:13:39 linux-9uls.site network[4352]: usb0 No interface found
      Jul 13 11:13:39 linux-9uls.site network[4352]: ..failed usbbus-usb No interface found
      Jul 13 11:13:39 linux-9uls.site network[4352]: ..failedSetting up service network . . . . . . . . . . . . ...failed
      Jul 13 11:13:39 linux-9uls.site systemd[1]: Failed to start LSB: Configure network interfaces and set up routing.
      Jul 13 11:13:39 linux-9uls.site systemd[1]: Unit network.service entered failed state
      Jul 13 11:14:16 linux-9uls.site dhclient[1324]: send_packet6: Network is unreachable
      Jul 13 11:14:16 linux-9uls.site dhclient[1324]: dhc6: send_packet6() sent -1 of 58 bytes
      Jul 13 11:16:21 linux-9uls.site dhclient[1324]: send_packet6: Network is unreachable
      Jul 13 11:16:21 linux-9uls.site dhclient[1324]: dhc6: send_packet6() sent -1 of 58 bytes
      Jul 13 11:18:09 linux-9uls.site dhclient[1324]: send_packet6: Network is unreachable
      Jul 13 11:18:09 linux-9uls.site dhclient[1324]: dhc6: send_packet6() sent -1 of 58 bytes


      Muchísimas gracias de nuevo por tu ayuda y por tiempo. Un saludo.

      Eliminar
  7. Buen días, soy nuevo usando OpenSUSE y me sale un error en el yast2
    - Se ha producido un error durante la inicialización de repositorios.
    /etc/zypp/repos.d/
    sudo_zypper_addrepo_-f.repo: Line 2 is missing '=' sign -
    Esto es lo que me sale cada vez, y no me deja hacer nada

    ResponderEliminar
  8. Hola buenas noches, trate de instalar la red inalambrica siguiendo todos los pasos y no lo he logrado, encontre que tengo una Dell wireless 1397 Wlan mini card. Por favor ayudame.

    ResponderEliminar
  9. Muchas gracias, he podido habilitar la wifi de un hp con el comando dmesg | grep firmware me indicó que debía instalar lo hice y funcionó tras reinicia.

    ResponderEliminar
  10. Thanks will going to try this. hope this works.

    ResponderEliminar
  11. Anónimo6/3/15 8:20

    Muchisimas gracias,
    Muy buen aporte, me ayudó bastante.

    ResponderEliminar
  12. En mi ASUS portátil, el wi-fi no se deja activar salvo que lo ponga e modo suspensión.
    Me logueo de nuevo y listo.
    Me pide contraseña del wi-fi y ya está.
    Suerte

    ResponderEliminar