La solución cuando Linux no reconoce tu WiFi

En el vídeo de hoy voy a enseñaros como activar nuestra tarjeta de red WiFi en nuestro equipo con sistema operativo Linux.
Uno de los problemas que tenemos cuando instalamos Linux en un ordenador es que algunos periféricos internos no son reconocidos por el nuevo S.O.
Hoy vamos a aprender a hacer que nuestro Sistema Operativo Ubuntu, Lubuntu, Kubuntu, Mythbuntu y otros sabores, reconozcan nuestra tarjeta de red, vía software y sin añadidos, dispositivos, ni gastos externos.
De manera que empecemos. Son pocos y sencillos pasos los que van a volver a dar vida conectada a nuestro PC con Linux, pese a no reconocer la tarjeta de red previamente.
Lo primero, lógicamente, es hacernos con una conexión a Internet temporal, ya sea por cable o por USB WiFi, porque necesitaremos descargar de los repositorios de Ubuntu.
La solución cuando Linux no reconoce tu WiFi
Comandos Utilizados en el Video
Para ver si nuestra tarjeta de red se encuentra instalada en el equipo
ifconfig |
Para instalar las herramientas de red en caso de no estar instaladas
sudo apt install net-tools |
Actualizar repositorios
sudo apt-get update |
Eliminar driver instalado de la tarjeta de red
sudo apt-get remove bcmwl-kernel-source |
Instalar driver para el modelo B43 (Driver genérico mas compatible)
sudo apt-get install firmware-b43-installer |
Reiniciar el equipo
sudo reboot |
Soluciones para algunos modelos, comenta si te funcionó o si encontraste una nueva:
Fabricante | Modelo | Driver |
---|---|---|
Broadcom | BCM43142 | Se debe descargar el siguiente paquete, instalarlo con sudo dpkg -i y reiniciar. |
Broadcom | BCM43XX | Referencia |
Ralink | RT28XX-RT539X | Hay una solución pero parece que solo funciona en Ubuntu 14.04 |
Ralink | RT3290 | Referencia |
Realtek | RTL8723Be | Referencia |
Realtek | RTL8192CE, RTL8192CU, RTL8192SE, RTL8192DE, RTL8188EE, RTL8192EE, RTL8723AE, RTL8723BE, RTL8821AE, RTL8822BE, RTL8723DE |
Referencia |
Algunos drivers (puedes obtenerlos desde el interior de la Referencias), entonces el método habitual para compilar es:
– descomprimir el archivo comprimido desde línea de comandos o GUI
– navega a la carpeta desde la terminal (con el comando cd)
– la mayoría de los programas tendrán un archivo Léame o una instalación que le dice qué hacer, pero es casi siempre, desde la terminal, en el directorio que desempaquetó el archivo tar:
luego realize los comandos:
./configure make sudo make install |
Como Encontrar el Nombre y Versión del Controlador de Red en Linux
Para resolver algún problema referente a la red es necesario saber que controlador de red y que versión se está utilizando. Estos datos te ayudan a buscar soluciones en algunos de los foros sobre tu distribución linux, por lo que es útil saber como encontrar estos datos en linux.
Usando los comandos dmesg y modinfo
La primera forma en que puedes controlar el nombre del controlador de red y la versión del controlador de red es utilizando el comando dmesg.
dmesg | grep -i eth |
Para localizar el controlador es necesario localizar el texto “ethernet” para conexion cableada y wlan para conexion inalambrica, al utilizar el comando dmesg, este mostrará algunas lineas en las que se localizará el nombre del controlador.
dmesg | grep -i eth [ 3.034390] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:35:23:79[ 3.034399] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection [ 3.038619] e1000 0000:02:01.0 ens33: renamed from eth0 [ 9.404507] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
dmesg | grep -i wlan [ 2767.074013] rtl8187 3-4.1:1.0 wlx000f02b9ea61: renamed from wlan0 |
Para conocer la versión del controlador ethernet de tu equipo puedes utilizar el comando modinfo con el nombre del controlador en este ejemplo el nombre del driver es “e1000” y el comando de ejemplo es el siguiente:
modinfo e1000 |
En el texto que arroja se pueden apreciar algunas líneas en las que se ven algunas variables como el nombre del archivo del controlador, la versión y la descripción. En este caso no insteresan dos: descripcion y version.
filename: /lib/modules/4.13.0-32-generic/kernel/drivers/net/ethernet/intel/e1000/e1000.ko version: 7.3.21-k8-NAPI license: GPL description: Intel(R) PRO/1000 Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 85D54C04EFE6CCD3BA91E97 depends: intree: Y name: e1000 vermagic: 4.13.0-32-generic SMP mod_unload parm: TxDescriptors:Number of transmit descriptors (array of int) parm: RxDescriptors:Number of receive descriptors (array of int) parm: Speed:Speed setting (array of int) parm: Duplex:Duplex setting (array of int) parm: AutoNeg:Advertised auto-negotiation setting (array of int) parm: FlowControl:Flow Control setting (array of int) parm: XsumRX:Disable or enable Receive Checksum offload (array of int) parm: TxIntDelay:Transmit Interrupt Delay (array of int) parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int) parm: RxIntDelay:Receive Interrupt Delay (array of int) parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int) parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int) parm: SmartPowerDownEnable:Enable PHY smart power down (array of int) parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint) parm: debug:Debug level (0=none,…,16=all) (int) |
Para ver informacion sobre la red Wifi usariamos este otro comando
modinfo rtl8187 |
En este caso nos interesa name y vermagic
filename: /lib/modules/4.13.0-32-generic/kernel/drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.ko license: GPL description: RTL8187/RTL8187B USB wireless driver author: Larry Finger <Larry.Finger@lwfinger.net> author: Hin-Tak Leung <htl10@users.sourceforge.net> author: Herton Ronaldo Krzesinski <herton@mandriva.com.br> author: Andrea Merello <andrea.merello@gmail.com> author: Michael Wu <flamingice@sourmilk.net> srcversion: 6D3790BE291C2C52F1801A4 alias: usb:v1737p0073d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v1B75p8187d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v18E8p6232d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v13D1pABE6d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v1371p9401d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v114Bp0150d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0DF6p0029d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0DF6p0028d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0DF6p000Dd*dc*dsc*dp*ic*isc*ip*in* alias: usb:v03F0pCA02d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0846p4260d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0846p6A00d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0846p6100d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0789p010Cd*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0769p11F2d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0BDAp8198d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0BDAp8197d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0BDAp8189d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0BDAp8187d*dc*dsc*dp*ic*isc*ip*in* alias: usb:v050Dp705Ed*dc*dsc*dp*ic*isc*ip*in* alias: usb:v0B05p171Dd*dc*dsc*dp*ic*isc*ip*in* depends: mac80211,eeprom_93cx6,cfg80211 intree: Y name: rtl8187 vermagic: 4.13.0-32-generic SMP mod_unload |
Usando el comando ip y ethtool
Otra forma de encontrar el nombre del controlador de red o network driver es utilizando el comando ethtool con el parámetro -i, aquí te muestro un ejemplo.
ip add | grep «: « |
Este comando te muestra los nombres de las interfaces y debes seleccionar la que es la interfaz ethernet o wirelles. En este ejemplo seria la 2 y la 3.
ip add | grep «: »
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 3: wlx000f02b9ea61: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 |
Con el nombre de la interfaz, en este caso “ens33” ejecutar el comando ethtool.
ethtool -i ens33 |
Y te muestra el nombre del controlador y la versión del driver de red. Este es un texto de ejemplo que arroja este comando:
driver: e1000 version: 7.3.21-k8-NAPI firmware-version: expansion-rom-version: bus-info: 0000:02:01.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no |
Para la conexion inalambrica usariamos este otro
ethtool -i wlx000f02b9ea61 |
Y nos mostraria esta informacion
driver: rtl8187 version: 4.13.0-32-generic firmware-version: N/A expansion-rom-version: bus-info: 3-4.1:1.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no |
Usando el comando lshw
Otro comando que nos puede dar información del controlador de red o network driver es el comando lshw, en particular con la opción -class. Aqui un ejemplo:
sudo lshw -class network |
La salida de texto de este comando será algo parecido a esta:
*-network descripción: Ethernet interface producto: 82545EM Gigabit Ethernet Controller (Copper) fabricante: Intel Corporation id físico: 1 información del bus: pci@0000:02:01.0 nombre lógico: ens33 versión: 01 serie: 00:0c:29:35:23:79 tamaño: 1Gbit/s capacidad: 1Gbit/s anchura: 64 bits reloj: 66MHz capacidades: pm pcix bus_master cap_list rom ethernet physical logical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuración: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full ip=192.168.59.128 latency=0 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s recursos: irq:19 memoria:fd5c0000-fd5dffff memoria:fdff0000-fdffffff ioport:2000(size=64) memoria:fd500000-fd50ffff*-network descripción: Interfaz inalámbrica id físico: 2 información del bus: usb@3:4.1 nombre lógico: wlx000f02b9ea61 serie: 00:0f:02:b9:ea:61 capacidades: ethernet physical wireless configuración: broadcast=yes driver=rtl8187 driverversion=4.13.0-32-generic firmware=N/A link=no multicast=yes wireless=IEEE 802.11 |
Esto son algunos ejemplos de como puedes obtener los datos de tu tarjeta de red en linux, tanto la descripción, el nombre del controlador o driver y la versión.