domingo, 23 de marzo de 2014

¿Cómo hago funcionar el adaptador Wifi Realtek RTL8188CE en Ubuntu 12.04LTS o superior?

Juan Perón es recordado por sus encuentros con trabajadores en su despacho de la Secretaría de Trabajo y Previsión, actividad que siguió realizando durante su presidencia. En uno de dichos encuentros ya en la Casa Rosada, Juan Perón explica sobre la lucha por la libertad y sobre cómo hacer funcionar el Realtek RTL8188CE con los kernels más nuevos de Ubuntu.

¡Trabajadores!

La Liberación de la Patria es una tarea que puede parecer sencilla, pero que no lo es si los pueblos no toman conciencia de los sacrificios que hay que hacer por ella. La libertad no se consigue en un kiosco: es necesario luchar y ¡ay! hay veces que es necesario morir por ella.

Para lograr la libertad del software pasa más o menos lo mismo. En un camino ideal, todo debería estar resuelto, pero no son pocas las situaciones en las que habremos de luchar incansablemente en una Terminal para llevar a buen puerto un uso específico de un programa o de un equipamiento. Esta lucha se enaltece más cuando no sólo es un software el que ha de ser liberado, sino el uso de un hardware en especial.
Todos ustedes sabrán que no son pocas las netbooks o notebooks que no pueden conectarse a WiFi como es debido, por algún problema u otro en sus controladores libres. Ello parecería logico, pues el software libre no está escrito por Dioses, sino apenas por Apóstoles que lo emplean. De la práctica y el compromiso se podrá sacar lo mejor de un programa que controle un equipo. Sin embargo, haciendo uso de una Comunidad Organizada para hacer el bien, podremos encontrar muchas veces las soluciones a los problemas informáticos que nos depare nuestra incansable búsqueda de la Libertad.

En este caso, el Justicialismo se ha concentraremos en el chipset Realtek RTL8188CE, ampliamente extendido y de buena funcionalidad, pero del que existen varias implementaciones.

Lamentablemente, con algunas de ellas se hace necesario descargar el controlador específico del fabricante y compilarlo. Normalmente ello tiene éxito, pero existen ocasiones específicas en las cuales  podríamos no tener éxito descargando este controlador oficial, viendonos obligados a luchar colectivamente. En tales casos, podremos recurrir a un proyecto comunitario almacenado en Github que nos facilitará la tarea, pues se trata de un controlador emparchado específicamente para las últimas versiones de Ubuntu que usan los ultimos Kernels.



Vean señores, habrán de conectar su equipo portátil por medio de un cable ethernet a internet y realizar el enlace desde allí. Esto es imprescindible pues si tenemos una conexión deficiente se cortará. Tambiés es ineludible para la descarga local del controlador.

La primera tarea será detectar positivamente si empleamos dicho hardware de comunicación. Para ello abrimos una Terminal e ingresamos el siguiente Comando de Organización:

lspci

El sistema nos listará todos los dispositivos de placas incorporados a nuestro sistema. Para confirmar adecuadamente, deberíamos encontrarnos con esta línea:

Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)

En este caso, significa que tenemos una plaqueta similar a ésta:
También conviene analizar la versión de kernel o núcleo del sistema operativo que usemos, pues este método está pensado especialmente para los  kernels Linux superiores al 2.6.3x. A fin de asegurarnos que tenemos un Kernel superior al 2.6.3x, ingresamos el siguiente Comando de Organización:

uname -r

El sistema nos devolverá la versión. Siempre y cuando el kernel sea superior a 2.6.3x continuaremos utilizando esta solución mediante el proyecto de Gitgub.

Como tercer medida habremos de instalar y comprobar las dependencias previas necesarias para descagar el controlador por medio de Git y compilarlo en un módulo ejectutable. La acción se lleva a cabo con el comando de organización:

sudo apt-get install gcc git build-essential linux-headers-generic linux-headers-$(uname -r)

...Al proporcionar nuestra contraseña de Conductor se descargarán tras un tiempo las aplicaciones imprescindibles. Acto seguido clonaremos el Código Fuente del controlador no oficial Realtek corregido, descargándolo desde su fuente Github hasta nuestro equipo. Será fácil mediante los  comandos:

cd ~
git clone https://github.com/FreedomBen/rtl8188ce-linux-driver.git


Esta acción permitirá descargar la base necesaria para operar el RTL8188CE y también su derivado el RTL8192CE (junto con otros chipsets emparchados). Conforme lo haga, ingresaremos al directorio del controlador y daremos inicio al procedimiento de compilación del controlador en sí, para convertirlo en un módulo ejecutable y funcional para nuestro sistema operativo:

cd ~/rtl8188ce-linux-driver
make
sudo make install


Se procederá a compilar el controlador. Al cabo de unos instantes debería finalizar de manera adecuada creando un módulo, sin presentar errores significativos. Ejecutamos dicho módulo con el siguiente comando:

modprobe rtl8192ce


Si todo ha salido bien, nuestro sistema debería ahora dar ejecución el controlador inalámbrico y poner en funcionamiento la plaqueta WiFi. Para comprobar que funciona positivamente, podremos encenderla (si tiene un botón o combinación te tecla de función para ello), y conectarnos por WiFi. Podremos ahora desconectar de la conexión cableada. Todo debería funcionar adecuadamente, con un registro de potencia de señal adecuado.

Una vez comprobado el funcionamiento adecuado del controlador con el hardware y la estabilidad de la conexión, necesitaremos indicarle al sistema que siempre que se inicie proceda a cargar el módulo automáticamente. Para ello debemoos editar el archivo /etc/modules.

sudo nano /etc/modules


Se abrirá el archivo, que inicialmente será así:



Al final del archivo agregamos el modulo agregándole la línea:

rtl8192ce

...de modo que el texto quedará así:



Guardamos las modificaciones en el archivo con Ctrll+o y salimos del editor con Ctrl+x.

Ahora podremos reiniciar el sistema con:

sudo reboot

A la vuelta, deberíamos poder conectarnos al WiFi automáticamente sin problema alguno. Es importante saber que si actualizamos la versión del kernel mediante las actualizaciones automáticas, habremos de repetir este procedimiento pues el modulo dejará de cargarse solo.

9 comentarios:

  1. oh gracias jamas borres tu blog saludos
    -X-phynx

    ResponderEliminar
  2. Gracias,me sirvio mucho,a pesar del nombre del Blog...ja ja

    ResponderEliminar
  3. Realizamos todo lo indicado pero la notebook dice diciéndome "red inalámbrica desactivada por el interruptor físico". El problema es que no tengo interruptor físico. Esta notebook eurocase e3 es Intel® Core™ i3-2310M CPU @ 2.10GHz × 4 con gráfico Intel® Sandybridge Mobile y 3 GB de RAM sistema operativo de 64 bits y disco 489,0 GB - Tiene ubuntu 14.04 LTS. Trajo windows y se lo desinstalé, con windows el wifi funcionaba pero con linux no. Contacté al servicio técnico de eurocase y me dijeron que el windows gestiona al adaptador Wifi Realtek RTL8188CE de otra manera y por eso quedaba encendido y me funcionaba cuando arrancaba con windows y luego daba reinicio con ubuntu. Yo no quiero hacer eso (ya no tengo el windows instalado) y no sé cómo hacerlo funcionar.

    pathec@pathec-TWH:~$ lspci
    00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
    00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
    00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
    00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
    00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
    00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
    00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
    00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
    00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04)
    00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
    00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
    07:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)
    0d:00.0 Ethernet controller: Qualcomm Atheros AR8151 v2.0 Gigabit Ethernet (rev c0)

    pathec@pathec-TWH:~$ uname -r
    3.13.0-53-generic

    Hago todo lo que indican y para activar sólo puedo hacer fn f2 y no se activa.
    Gracias!!
    Patricia

    ResponderEliminar
  4. Me tira un error "Package linux-headers-generic is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or is only available from another source

    E: Package 'linux-headers-generic' has no installation candidate.


    ¿Uot can ai du?

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Asegúrese de indicar el comando en una sola línea para que el sistema lo tome adecuadamente. Sería:

      sudo apt-get install gcc git build-essential linux-headers-generic linux-headers-$(uname -r)

      Atte.

      Juan Perón

      Eliminar
  5. buenas, estoy tratando de hacer funcionar con este método una realtek rtl8723de en linux mint x86 con kernel 4.16. al ingresar el comando: git clone https://github.com/FreedomBen/rtl8723de-linux-driver.git... me sale esto: Username for 'https://github.com':....se queda ahí el curdor supongo que tengo que ingresar algo, pero en el tutorial no dice nada. Saludos fraternales Compañero.

    ResponderEliminar
    Respuestas
    1. Estimado Sergio:

      El comando que versa en este artículo refiere al controlador para el chipset RTL8188. Si lo reemplaza temerariamente por el rtl8723de no se garantiza que tal archivo siquiera exista en el servidor de github (sólo porque a vd. se le ocurra no significa que esté...).

      En tal caso, el sistema le solicita una contraseña para el servidor de git, y naturalmente sólo quien mantiene tal servidor dispondrá de ella.

      Para la controladora RTL8723de le recomendamos utilizar algun controlador de la serie RTL92xx, lamentablemente no existe un controlador oficial en la web de realtek que lo contemple, aunque hay dando vueltas versiones experimentales del mismo.

      Si desea probar, podría usar:

      sudo apt-get install -y git build-essential
      git clone https://github.com/lwfinger/rtlwifi_new.git
      cd rtlwifi_new
      make
      sudo make install

      Lamentablemente, no contamos con el dispositivo real como para evaluarlo nosotros, deberá experimentar de momento con los controladores disponibles.

      Atte.

      Juan Perón

      Eliminar
    2. ok, gracias, pruebo y les cuento (no pierdo nada) lo extraño es lo siguiente: tengo limnuxmint 18.3 (kernel 4.10, creo), la placa no funcionaba, le instalé el 4.14 y funcionó, luego actualicé al 4.15 y dejó de funcionar. Esto lo aclaro por las dudas si a alguién le pasa lo mismo. luego de probar lo que me comentás subo los resultados

      Eliminar
  6. Hola, gracias por el manual lo primero. Me acabo de instalar Ubuntu 22.04 y resulta que mi raton se desplaza bastante laggeado sobre todo cuando navego por internet, ademas las paginas responden como con retraso tambien y creo que es por el controlador de la tarjeta de red, por eso he llegado hasta este blog. Ahora bien al seguir los pasos que describes tras introducir el comando 'make' me da el siguiente error:
    make -C /lib/modules/5.15.0-58-generic/build M=/home/angel/rtl8188ce-linux-driver/rtl8188ee modules
    make[2]: se entra en el directorio '/usr/src/linux-headers-5.15.0-58-generic'
    CC [M] /home/angel/rtl8188ce-linux-driver/rtl8188ee/pwrseqcmd.o
    /home/angel/rtl8188ce-linux-driver/rtl8188ee/pwrseqcmd.c: In function ‘rtl88_hal_pwrseqcmdparsing’:
    /home/angel/rtl8188ce-linux-driver/rtl8188ee/pwrseqcmd.c:70:17: error: implicit declaration of function ‘RT_TRACE’; did you mean ‘RTA_SPACE’? [-Werror=implicit-function-declaration]
    70 | RT_TRACE( rtlpriv, COMP_INIT, DBG_TRACE,
    | ^~~~~~~~
    | RTA_SPACE
    cc1: some warnings being treated as errors
    make[3]: *** [scripts/Makefile.build:297: /home/angel/rtl8188ce-linux-driver/rtl8188ee/pwrseqcmd.o] Error 1
    make[2]: *** [Makefile:1902: /home/angel/rtl8188ce-linux-driver/rtl8188ee] Error 2
    make[2]: se sale del directorio '/usr/src/linux-headers-5.15.0-58-generic'
    make[1]: *** [Makefile:33: default] Error 2
    make[1]: se sale del directorio '/home/angel/rtl8188ce-linux-driver/rtl8188ee'
    make: *** [Makefile:41: all] Error 2


    A partir de aqui no me deja continuar con la instalación, alguna idea? Gracias de antemano. Saludos.

    ResponderEliminar