Ubuntu 11.10: avoid wireless network energy management

By Default, Ubuntu 11.10, comes with a very awkward energy management policy: when you switch off the power cable or you come from a sleep, the wireless network card turns instantly off. Besides, if your wireless card doesn’t work properly as mine (RT3090), maybe this policy can bring you some unexpected headaches.

The solution is to create a text file, located in /etc/pm/power.d/ and name it wireless:

sudo gedit /etc/pm/power.d/wireless

With the following content:

#!/bin/sh

/sbin/iwconfig wlan0 power off

In addition, it is necessary to give “read” and “write” permissions to all users:

sudo chmod 777 /etc/pm/power.d/wireless

All we have to do now is to reboot. Energy Manager will not disconnect again the WIFI card.

Source: askubuntu.com

Advertisements

Ubuntu 11.10: Problem and fix for RT3090 wireless network card

During the conversion process from Windows to GNU/Linux, I suffered some unexpected and unpleasant configuration problems, related to the WIFI network manager, energy manager and, the most important one, the wireless network card module (driver).

Foreword: computer model and configuration.

  • Device: LG P430 laptop. Wireless WIFI card Ralink RT3090
  • OS: Ubuntu 11.10 Oneiric Ocelot 32 bits

Problem description.

Once installed the OS, the wireless network manager does not recognize the wireless interface, showing a message “no wireless interface”. Linux (3.0.15) uses the rt2800pci module, but the wireless card is unabled.

Using some general commands (through terminal) we obtain additional information about the problem, as seen below:

dmesg | grep rt2 (shows bootlog, filtering to obtain information about rt2800 module):

[   51.443207] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   51.443220] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).
[   53.102225] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   53.102238] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).
[   54.941117] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   54.941130] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).

rfkill list (shows possible wireless blockings)

0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

iwconfig (wireless network configuration)

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any
Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
Retry  long limit:7   RTS thr:off   Fragment thr:off
Encryption key:off
Power Management:off

lshw -C network (lists hardware, filtering network devices)

*-network DISABLED
description: Wireless interface
logical name: wlan0

The last command shows the main problem. as we can see, Ubuntu boots turning WIFI interface off, and this restriction is what we need to erase. That is the truly problem, because this operation is harder than expected.

Solution:

Due to this problem, in addition to Ubuntu’s energy manager configuration, I have been forced to fix the trouble more than necessary to know that there is no “standard procedure” to fix it and make it work properly. However, below you can see some possible ideas to try:

  1. Blacklist (sudo gedit /etc/modprobe.d/blacklist.conf) default wireless card modules (each one in one row of the textfile: blacklist rt2800usb rt2800lib rt2x00usb rt2x00lib), reboot and see what happens.
  2. Disconnect interface (sudo ifconfig wlan0 down), reboot, connect (sudo ifconfig wlan0 up) and reboot again.
  3. Avoid possible blockings that can appear during standard OS boot (sudo gedit /etc/rc.local, and add next line: rfkill unblock).
  4. Unmount rt2800 (sudo rmmod rt2800pci) and the rest of the rt2 modules, restart y and “remount” (sudo modprobe rt2800pci).
  5. Install Markus Heberling‘s drivers for the RT3090 card. Download and install through Ubuntu Software Center (note: try both version 1.2.4 and 1.3.7. The first one did not work for me, on the other hand, the other one worked). After the installation, it is necessary to do the first point, so that the Linux kernel uses the new modules during reboot.
  6. If the rest of the points did not work, try to unblacklist the rt2800 module without removing the last installed module, and reboot.
  7. Don’t give up, and go on trying, thinking about other possibilities, or mixing the above points. This is the main thinking when you are using and/or configuring a GNU/Linux OS. More than once, after rebooting, the network interface just begin to work properly, once I repeated any of this known points, or even without doing any operation (or at least the things that I touched). As Iong as I know, this behavior is something that more people through the Internet has experienced with this network card and module.

It is possible that, once unblocked the wireless network interface, data flux can be slower than expected. Once again, it magically begins to improve its performance just over the time, reaching a quite good level, without reaching high levels, but enough to work.

Maybe in the future, when I discover the way to improve the performance through higher levels, I will be encourage to write again about this problem and (I hope) the complete solution. Maybe the path will be oriented through using new Markus Heberling module versions, or downloading, configuring and compilation of the official Ralink drivers.

Ubuntu 11.10: evitar gestión energética de la tarjeta WIFI

Por defecto, Ubuntu 11.10, en una decisión un tanto extraña, configura el gestor energético para que, en caso de desconexión del cable de alimentación del portátil o de hibernación del mismo, se desconecte la tarjeta de red inalámbrica. Esto, unido a problemas como posibles desconfiguraciones o cargas incorrectas de los módulos de la tarjeta puede hacer que se reproduzcan situaciones bastantes frustantes para el usuario una y otra vez.

La solución, crear un fichero de texto en /etc/pm/power.d/ con el nombre wireless:

sudo gedit /etc/pm/power.d/wireless

Con el siguiente contenido:

#!/bin/sh

/sbin/iwconfig wlan0 power off

Se debe modificar los permisos de dicho fichero de texto para que todos los usuarios tengan acceso de lectura y escritura:

sudo chmod 777 /etc/pm/power.d/wireless

Reiniciar y listo, el gestor de energía no volverá a desconectar la tarjeta de red WIFI.

Fuente: askubuntu.com

Ubuntu 11.10: problema y solución para tarjeta inalámbrica WIFI Ralink RT3090

En mi proceso de conversión a GNU/Linux he sufrido una serie de problemas, relacionados con el proceso de compilado e instalación de algunas de mis aplicaciones favoritas, el gestor de redes inalámbricas por defecto, el gestor de energía, y por último y más grave, el módulo (driver) de la tarjeta de red inalámbrica.

Antecedentes. Equipo y configuración.

  • Equipo: portátil LG P430. Tarjeta inalámbrica WIFI Ralink RT3090
  • Sistema operativo: Ubuntu 11.10 Oneiric Ocelot 32 bits

Descripción del problema.

Una vez finalizada la instalación, el gestor de redes inalámbricas no reconoce la tarjeta de red inalámbrica. Utiliza el modulo rt2800pci (por defecto en el kernel Linux) pero no se puede activar la red inalámbrica.

Esta es la salida por pantalla de alguno de los comandos informativos:

dmesg | grep rt2 (muestra el log de arranque, en todo lo relacionado al módulo rt2800):

[   51.443207] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   51.443220] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).
[   53.102225] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   53.102238] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).
[   54.941117] phy0 -> rt2800_wait_wpdma_ready: Error – WPDMA TX/RX busy, aborting.
[   54.941130] phy0 -> rt2800pci_set_device_state: Error – Device failed to enter state 4 (-5).

rfkill list (muestra posibles bloqueos de los dispositivos de transmisión inalámbrica)

0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

iwconfig (muestra configuración inalámbrica de cada interfaz de red)

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any
Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
Retry  long limit:7   RTS thr:off   Fragment thr:off
Encryption key:off
Power Management:off

lshw -C network (lista hardware, este caso en lo referente al hardware)

*-network DISABLED
description: Wireless interface
logical name: wlan0

En este último comando es en el que observamos el problema. Por lo que parece el Ubuntu arranca con el interfaz wifi deshabilitado, y se debe eliminar esta restricción… y aquí es donde viene el problema, porque esto es algo más complicado de lo que parece. Debido a este problema en conjunto con el anteriormente indicado problema con el gestor de energía, he tenido que “rehabilitar” el interfaz wifi numerosas ocasiones, y tengo que decir que no tengo claro cuál es el procedimiento correcto para hacer que funcione. No obstante, ahí van unas cuantas ideas:

  1. Introducir en la lista negra (sudo gedit /etc/modprobe.d/blacklist.conf) los módulos utilizados por ubuntu por defecto (uno por fila: blacklist rt2800usb rt2800lib rt2x00usb rt2x00lib), reiniciar y volver a arrancar.
  2. Desconectar el interfaz (sudo ifconfig wlan0 down), reiniciar, conectarlo (sudo ifconfig wlan0 up) y reiniciar.
  3. Eliminar los bloqueos que se puedan realizar durante el inicio del sistema operativo (sudo gedit /etc/rc.local, y poner en una línea del fichero de texto rfkill unblock).
  4. Desmontar el módulo rt2800 (sudo rmmod rt2800pci) (igual para el resto de módulos indicados en el punto 1), reiniciar y volver a montar (
    sudo modprobe rt2800pci).
  5. Instalar los drivers mantenidos por Markus Heberling descargar e instalar a través del centro de software de Ubuntu (nota, probar tanto con la versión 1.2.4 como con la 1.3.7. A mi la primera no me funcionó, y en cambio la otra sí que me era operativa). Posterior a esta instalación habrá que realizar el punto 1, para que el kernel utilice los nuevos módulos al arrancar.
  6. Si tampoco ha funcionado el último punto, probar a, sin borrar este modulo recientemente instalado, quitar de la “lista negra” el anterior módulo rt2800pci, y reiniciar.
  7. No os rindáis, y continuad intentándolo si no lo conseguís. Aunque este consejo parezca muy simple, en realidad es lo más parecido que tengo a una solución a este problema, ya que una de las posibilidades es que, en uno de los reinicios del sistema, y sin saber bien que se ha tocado, de repente funcione el interfaz de red inalámbrico. Curioso cuando menos, porque además no soy el único al que le se le ha pasado por la cabeza que la solución sea espontánea.

Posiblemente, una vez conseguido el desbloqueo del interfaz de red, el flujo de datos sea bastante limitado. Curiosamente con el paso de los minutos mejorará, y posteriormente se mantendrá en un nivel notable (sin alcanzar velocidades máximas, aunque suficiente para trabajar con el equipo).

Dejo para otro post la posible optimización del interfaz de red inalámbrica, posiblemente mediante la instalación y correcta configuración del módulo mantenido por Markus Heberling, o mediante la descarga, configuración y compilación de los drivers oficiales para Linux de Ralink.