lunes 22 de junio de 2009

Multiterminal en Ubuntu 9.04

El concepto de multiterminal es una particular configuración de un equipo informático de tal modo que permite que el equipo pueda ser utilizado por más de una persona simultáneamente. Dado que el hardware actual tiene sobrada potencia para los requerimientos que pueda exigir la gestión de múltiples escritorios, esta configuración es especialmente interesante en entornos de tipo de trabajo de oficina. La principal ventaja: el ahorro, no sólo en energía sino también en costes de mantenimiento.

Hasta hace algún tiempo, este tipo de configuraciones no eran sencillas y requerían modificar, recompilar o parchear diferentes partes del sistema. En las versiones más recientes, el kernel de Linux ya incluye lo necesario para poder tratar por separado los eventos provenientes p.ej. de diferentes teclados. De esta manera, actualmente se puede conseguir una configuración multiterminal simplemente instalando algún paquete adicional y modificando algún fichero de configuración.

En anteriores ocasiones he preparado tutoriales para configuraciones multiterminal en Ubuntu 6.06 y 8.04, pero esta es la primera ocasión en que publico el tutorial también en castellano.

La configuración es muy similar a la de la versión 8.04, con la diferencia de que algunos componentes de software han sido actualizados consiguiendo así alguna mejora con respecto a versiones anteriores. No obstante, continúa habiendo algunos problemas.





El equipo es el mismo que se utilizó en la anterior versión:
Pentium 4 a 3GHz, con 512MB de RAM y un disco duro de 80GB. La tarjeta de video es una ATI Radeon X300 PCIe de Gigabyte con dos salidas (VGA y DVI). En la salida DVI se utiliza un adaptador VGA de modo que finalmente tenemos dos monitores VGA analógicos en el sistema. Los monitores son pantallas convencionales LCD/TFT con una resolución de 1280x1024.

1.- En primer lugar, instalamos Ubuntu 9.04 en el ordenador. Lo hacemos utilizando un sistema "live" (CD/DVD o USB). Dado que actualmente la mayor parte de los equipos soportan arranque desde USB, recomedamos hacerlo con un USB-live, dado que el proceso de instalación será mucho más rápido que si lo hacemos desde un CD o DVD.

2.- A continuación, actualizamos el sistema para tener los últimos paquetes disponibles. Lo podemos hacer o bien con las herramientas gráficas (Gestor de Actualizaciones / Synaptic) o bien utilizando la línea de comandos desde un terminal:


$ sudo apt-get update


3.- Posteriormente, instalamos unos paquetes adicionales (xserver-xephyr y wmctrl). Estos paquetes no vienen incluidos en la instalación por defecto, pero podemos encontrarlos en los repositorios oficiales, de modo que su instalación es muy sencilla. Dichos paquetes son necesarios para conseguir obtener la configuración multiterminal que estamos buscando.


$ sudo apt-get install xserver-xephyr wmctrl


Antes de comenzar con las modificaciones particulares de la configuración multiterminal, es recomendable hacer los ajustes y configuración necesarios para el escenario de trabajo particular de cada usuario (configuración de red, creación de usuarios, etc). Algunas herramientas y utilidades de Gnome no funcionan al trabajar con múltiples sesiones simultáneas. Al detectar el sistema operativo múltiples sesiones, no es posible generar los necesarios ficheros de bloqueo requeridos por las herramientas de configuración.

Es muy recomendable conservar una copia de los ficheros de configuración en su estado inicial (/etc/X11/xorg.conf y /etc/gdm/gdm.conf). Estos ficheros serán necesarios si el usuario desea volver a la configuración inicial (monousuario) del equipo.

Una vez realizadas estas tareas previas de configuración inicial, procedemos a realizar la configuración específica del equipo multiterminal.



Inicialmente, tras la configuración por defecto, el sistema se inicia con las dos pantallas en modo "clon". si examinamos la salida del comando xrandr podremos ver los detalles de nuestra actual configuración. En nuestro caso particular, obtenemos lo siguiente:


$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1200
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 60.0*
1152x864 75.0
1024x768 75.0 60.0
832x624 74.6
800x600 75.0 60.3
640x480 75.0 59.9
720x400 70.1
DVI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 60.0*
1152x864 75.0
1024x768 75.0 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3
640x480 75.0 72.8 59.9
720x400 70.1
S-video disconnected (normal left inverted right x axis y axis)


El siguiente paso es modificar /etc/X11/xorg.conf para indicar cómo obtener un "escritorio extendido". En caso de tener dudas sobre este tema, en el wiki de ubuntu se puede encontrar información adicional para configurar y definir manualmente sistemas multipantalla.

En las últimas versiones de Linux, algunos aspectos relacionados con la gestión de dispositivos están siendo modificados y se gestionan desde diferentes partes del sistema, como hal y udev. Vemos que ya no es necesario indicar nada relacionado con ratón y teclado en el fichero xorg.conf

Tras haber hecho nuestra copia del fichero xorg.conf inical, lo modificamos para describir nuestra configuración con dos monitores. Incluimos también algunas opciones convenientes (las indicadas en la sección "ServerFlags") para un sistema multiterminal.


Section "Device"
Identifier "Card0"
BoardName "ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]"
Driver "ati"
BusID "PCI:1:0:0"
Option "Monitor-VGA-0" "Mon-VGA"
Option "Monitor-DVI-0" "Mon-DVI"
EndSection

Section "Monitor"
Identifier "Mon-VGA"
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Mon-DVI"
Option "DPMS"
Option "Below" "Mon-VGA"
EndSection

Section "Screen"
Identifier "Screen-base"
Device "Card0"
Monitor "Mon-VGA"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1280x1024"
Virtual 1280 2048
EndSubSection
EndSection

Section "ServerFlags"
# Even if mouse detection fails, X will start
Option "AllowMouseOpenFail" "yes"

# VT switching is disabled
Option "DontVTSwitch" "yes"

# X restart (Ctrl+Alt+Backspace) is disabled
Option "DontZap" "yes"
EndSection


En esta ocasión hemos elegido una distribución vertical de los monitores. Ha sido únicamente como prueba para ver si la aceleración 3D funciona al mantener las dimensiones de la pantalla virtual menores (o iguales) que un cuadrado de 2048 pixels de lado. Si el usuario prefiere una distribución horizontal, basta con utilizar leftOf o rightOf en lugar de below, en la sección correspondiente al segundo monitor. Además, se deberá de ajustar el tamaño del escritorio virtual al requerido en función de la distribución deseada.

Tras haber hecho estos cambios, si reiniciamos el servidor X veremos un escritorio ocupando los dos monitores en vertical y con estas características:


$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 2048, maximum 1280 x 2048
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 60.0*
1152x864 75.0
1024x768 75.0 60.0
832x624 74.6
800x600 75.0 60.3
640x480 75.0 59.9
720x400 70.1
DVI-0 connected 1280x1024+0+1024 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 60.0*
1152x864 75.0
1024x768 75.0 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3
640x480 75.0 72.8 59.9
720x400 70.1
S-video disconnected (normal left inverted right x axis y axis)


Tras haber modificado el fichero xorg.conf y teniendo ya un escritorio extendido que cubre los dos monitores (tanto si utuilizamos una distribución vertical como una horizontal) el siguiente paso es configurar gdm para lanzar dos sesiones Xephyr, una para cada puesto.

Previamente, tenemos que obtener información acerca de los eventos de entrada (los dos teclados y ratones) del sistema.


$ ls -la /dev/input/by-path/ | grep event | grep kbd
lrwxrwxrwx 1 root root 9 2009-06-18 13:11 pci-0000:00:1d.2-usb-0:2:1.0-event-kbd -> ../event5
lrwxrwxrwx 1 root root 9 2009-06-18 13:11 platform-i8042-serio-0-event-kbd -> ../event3

$ ls -la /dev/input/by-path/ | grep event | grep mouse
lrwxrwxrwx 1 root root 9 2009-06-18 13:11 pci-0000:00:1d.2-usb-0:1:1.0-event-mouse -> ../event4
lrwxrwxrwx 1 root root 9 2009-06-18 13:11 platform-i8042-serio-1-event-mouse -> ../event8


En nuestro caso, tenemos una pareja de teclado y ratón conectados por puerto PS2 para uno de los puestos, y para el segundo una pareja de teclado y ratón USB. Los valores que obtengamos aquí serán usados posteriormente para configurar los dispositivos de entrada que corresponden a cada puesto.

A continuación se crea un lanzador con el objeto de ejecutar Xephyr con los parámetros adecuados y relacionando a cada uno con sus eventos de entrada. Para lograr esto, creamos un fichero que se utilizará a modo de script de lanzamiento. podemos nombrar y crear el fichero del modo que nos parezca más conveniente. En nuestro caso, lo creamos como /usr/sbin/Xephyr-path.sh

Se escoge un editor (vi, gedit, ...) para crear el fichero en cuestión, sin olvidar que tiene que tener permisos para poder ser ejecutado por root (el propietario del fichero).


$ sudo gedit /usr/sbin/Xephyr-path.sh
$ sudo chmod 744 /usr/sbin/Xephyr-path.sh


El fichero en cuestión tendrña un contenido similar a esto (cambiando el parámetro xkblayout en función del lenguaje de teclado del usuario):


$ cat /usr/sbin/Xephyr-path.sh



#!/bin/bash

# 200906 - josean
# http://netpatia.blogspot.com/

trap "" usr1

XEPHYR=/usr/bin/Xephyr
DISPLAY=:0
XAUTHORITY=/var/lib/gdm/:0.Xauth

args=()

while [ ! -z "$1" ]; do
if [[ "$1" == "-kbdpath" ]]; then
shift
if [ ! -z "$1" ]; then
args=("${args[@]}" "-keybd")
args=("${args[@]}" "evdev,,device=/dev/input/by-path/$1,xkbrules=xorg,xkbmodel=evdev,xkblayout=es")
fi
elif [[ "$1" == "-mousepath" ]]; then
shift
if [ ! -z "$1" ]; then
args=("${args[@]}" "-mouse")
args=("${args[@]}" "evdev,,device=/dev/input/by-path/$1")
fi
else
args=("${args[@]}" "$1")
# echo "+++ args $1 +++" >> /tmp/logXephyr
fi
shift
done

# Next line is just to create a log file with the invocation parameters, for debug purposes
# echo $XEPHYR -ac "${args[@]}" >> /tmp/logXephyr
exec $XEPHYR -ac "${args[@]}"


Tras haber creado este script, continuamos con las modificaciones en el fichero /etc/gdm/gdm.conf

En la sección [servers] de gdm.conf comentamos las reglas correspondientes a la distribución inicial y definimos lo necesario para la nueva distribución. Modificamos el fichero para lanzar las X de base y dos sesiones Xephyr (una por puesto) ejecutandose sobre las X de base.


# ****************************************************************************

[servers]

# 0=Standard
#
# Means that DISPLAY ":0" will start an X server as defined in the
# [server-Standard] section.

# ****************************************************************************

# Multiseat setup (200906)

0=Xephyr0
1=Xephyr1
2=Xephyr2

[server-Xephyr0]
name=Xephyr0
command=/usr/bin/X -br -dpms -s 0
handled=false
flexible=false

[server-Xephyr1]
name=Xephyr1
command=/usr/sbin/Xephyr-path.sh -br -screen 1280x1024 -kbdpath platform-i8042-serio-0-event-kbd -mousepath platform-i8042-serio-1-event-mouse
handled=true
flexible=false

[server-Xephyr2]
name=Xephyr2
command=/usr/sbin/Xephyr-path.sh -br -screen 1280x1024 -kbdpath pci-0000:00:1d.2-usb-0:2:1.0-event-kbd -mousepath pci-0000:00:1d.2-usb-0:1:1.0-event-mouse
handled=true
flexible=false

# ****************************************************************************


Vemos que éste es el script en e que hay que indicar qué dispositivos de entrada (sus puntos físicos de conexión) son los que corresponden con cada uno de los puestos.

El segundo cambio en el fichero gdm.conf está relacionado con la petición de autentificación. En esta parte hay algunas tareas que todavía es necesario realizar de forma manual.

Nos encontramso con el problema ya conocido de colocar cada sesión Xephyr adecuadamente para que cada usuario vea su sesión en su monitor. La versión actual de Xephyr no soporta el parámetro geometry que incluyen muchas aplicaciones X, de modo que no es posible indicar a Xephyr el lugar en el que se tiene que colocar. Para evitar este problema, creamos un script que será invocado en lugar de hacer una llamada directa al script de petición de identificación para iniciar sesión (greeter).

Este script, invocará una serie de comandos destinados a colocar cada ventana Xephyr en el lugar deseado. Para ello haremos uso de las utilidades xwininfo, wmctrl. con ellas podremos identificar una de las ventanas Xephyr y desplazarla al segundo monitor, de manera que resolvamos el problema de solapamiento entre las ventanas de sesión. Este es el motivo por el que anteriormente instalamos el paquete wmctrl.

En la sección [daemon] de gdm.conf cambiamos la referencia al "greeter" original por una referencia a este nuevo script. El script en cuestión no sólo invocará la petición de identificación, sino que se ocupará de colocar cada ventana Xephyr en su posición correcta:


# ****************************************************************************

[daemon]

# The greeter for attached (non-xdmcp) logins. Change gdmlogin to gdmgreeter
# to get the new graphical greeter.
# Greeter=/usr/lib/gdm/gdmgreeter
Greeter=/usr/sbin/Xephyr-login.sh

# ****************************************************************************


Como hemos indicado, creamos el script responsable de solicitar la identificación (en nuestro caso lo hemos llamado /usr/sbin/Xephyr-login.sh). Este script será invocado por el usuario gdm, de modo que creamos el script como propiedad de dicho usuario, dando únicamente permisos de ejecución por éste.


$ sudo gedit /usr/sbin/Xephyr-login.sh
$ sudo chown gdm:gdm /usr/sbin/Xephyr-login.sh
$ sudo chmod 744 /usr/sbin/Xephyr-login.sh


El script que acabamos de crear debería de tener este aspecto:


$ cat /usr/sbin/Xephyr-login.sh


#!/bin/bash
# /usr/sbin/Xephyr-login.sh

XAUTHORITY=/var/lib/gdm/:0.Xauth
XEP=$(xwininfo -root -children -display :0 | grep "Xephyr on :1" --max-count=1)
echo XEP ${XEP} >> /tmp/logXephyrLogin

# assign values to positional parameters to obtain the id (first parameter) of the Xephyr window
set ${XEP}
DISPLAY=:0 wmctrl -i -r $1 -e 0,0,1024,-1,-1
/usr/lib/gdm/gdmlogin


En nuestro caso, desplazamos en vertical una de las sesiones 1024 pixels (recordamos que nuestra distribución consiste en dos pantallas de 1280x1024 alineadas verticalmente).

Vemos que cuando se debería invocar la identificación de sesión, en su lugar se ejecuta el nuevo script (que incluye también esta parte de solicitud de identificación). Desde el punto de vista del usuario, lo que se ve es cada una de las pantallas de identificación ejecutandose en uno de los monitores. El resto de las operaciones realizadas pasan desapercibidas para el usuario.

La versión 9.04 de esta configuración multiterminal consigue algunas mejoras con respecto a versiones anteriores:
* La rueda de scroll vertical del ratón funcina correctamente.
* Los indicadores LED de los teclados funcionan de forma independiente sin mezclarse.

Updated 2009/06/22: Cambios menores
Leer más...

viernes 12 de junio de 2009

Fedora 11 en el Asus EeePC 701

Dado que recientemente ha sido publicado Fedora 11 (Leonidas), y aprovechando que está disponible en forma de Live-ISO, he decidido descargar la imagen en cuestión, preparar un Live-USB y probarla en el Asus EeePC 701.

Fedora 11 incluye una serie de mejoras en cuestiones relativas a seguridad y virtualización, además de mejoras en sus características en los ámbitos de equipo de escritorio como de servidor.

La distribución incluye el soporte de ficheros ext4 y entre otras cosas se habla de un arranque en 20 segundos (obviamente no es el caso de la versión live-USB). En algunos blogs se indica que es incluso más rápido que el inicio de Ubhuntu 9.04, el cual consigue unos tiempos mucho más que aceptables.

En cualquier caso, el objeto de esta entrada no es hacer una revisión de Fedora 11 y sus nuevas características, sino analizar si es una opción viable para instalar en un Asus Eee PC 701, con sus particulares limitaciones y su hardware.

En una de las páginas de la web de Fedora indican que este modelo está completamente soportado sin necesidad de realizar modificaciones ni ajustes manuales.

Efectivamente, los componentes que he estado examinando (tarjeta de audio, adaptador de red inalámbrica y cámara) son detectados de forma automática y funcionan a la perfección.



Una distribución muy recomendable para quienes quieren aprovechar las ventajas y las prestaciones de una distribución completa, sin recortes ni simplificaciones excesivas, y con unos completísimos repositorios de aplicaciones y utilidades listos para instalar

Note: English version:
Fedora 11 on the Asus EeePC 701 Leer más...

viernes 29 de mayo de 2009

Asus Eee PC 701 con Ubuntu 9.04

Desde finales de 2007 tengo un Asus Eee PC 701, y desde entonces he probado diferentes sistemas operativos en dicho equipo. De todos ellos, aquéllos en los que más interés he tenido han sido las diferentes versiones de Ubuntu.

Tan pronto como Ubuntu 8.04 estuvo disponible, eliminé el Xandros que venía inicialmente con el equipo y lo reemplacé por dicha versión de Ubuntu. Inicialmente, me encontré con muchas dificultades, debido principalmente a componentes del hardware no soportados o no reconocidos directamente por la distribución en cuestión.

Seis meses después, se publicó Ubuntu 8.10, el cual aportaba algunas mejoras con respecto a la versión anterior. Las cosas empezaban a mejorar, de modo que ya resultaba un poco más sencillo conseguir que todos los componentes del sistema funcionasen correctamente, aunque todavía era necesario realizar manualmente algunas modificaciones sobre éste. Las dificultades se debían fundamentalmente a la tarjeta WiFi (Atheros AR2425), que no era reconocida directamente por el kernel.

La siguiente versión (Ubuntu 9.04) se anunciaba con un kernel que ya reconocía y soportaba directamente la tarjeta inalámbrica de este equipo, de modo que he ido probando mediante USB-live las versiones que se han ido publicando, desde la Alfa 4. Efectivamente, una de las grandes ventajas de esta versión es su soporte completo y sin modificar nada de todos los componentes hardware del Asus Eee PC 701 (tarjeta WiFi incluida).

Cuando, a finales de abril, se publicó la versión definitiva de Ubuntu 9.04, decidí hacer una instalación limpia (en lugar de actualizar desde la versión anterior) de dicha versión. La versión que tenía anteriormente instalada (8.10) había sido modificada en muchos aspectos con respecto a una instalación estándar, y mi objetivo era averiguar hasta qué punto la nueva versión era capaz de funcionar y de reconocer los componentes del equipo en cuestión.

El resultado no podría haber sido más satisfactorio: Los componentes hardware son reconocidos y funcionan correctamente sin necesidad de realizar ninguna modificación. La tarjeta inalámbrica (que había sido el componente más problemático) inmediatamente detectó y mostró las redes wifi disponibles en las proximidades. No tuve ninguna dificultad en conectar al punto de acceso de casa, que utiliza encriptación WEP: Simplemente fue introducir la clave, y comenzar a navegar.

La siguiente gran mejora a destacar con respecto a versiones anteriores es la relacionada con la velocidad. No se trata de una comparación subjetiva, sino de comparar las salidas del comando dmesg (/var/log/messages) de la anterior versión (8.10) y la actual (9.04). Los tiempos se han acortado de manera significativa. El disco SSD se reconoce y gestiona de forma más adecuada que antes, obteniendo de este modo un sistema que, a pesar de sus limitados recursos (un Celeron a 630MHz y 512MB de memoria) responde de forma sorprendentemente ágil.

Es importante recalcar que el sistema no ha sido optimizado para obtener un arranque rápido, sino que se trata únicamente de la instalación por defecto. La única modificación que se ha realizado es la elección del sistema de ficheros ext2 en lugar de ext3, y la ausencia de partición de intercambio (swap).



17:00 Pulsamos el botón de encendido
17:08 Pantalla inicial de Asus Eee PC
17:10 Pantalla del gestor de arranque GRUB
17:13 GRUB lanza la opción de arranque por defecto
17:42 Solicitud de usuario y password por parte de GDM
17:48 Tecleando: Usuario + password + Intro
18:07 Conexión WiFi establecida. El sistema está listo para utilizar!!!

Tal y como se puede ver, el sistema está listo en 67 segundos:

  • 10s : BIOS
  • 9s : Interacción del usuario: GRUB + GDM login / greeter
  • 48s : Arranque del sistema: Carga + inicio de sesión + conectar WiFi

Como comentario a título informativo: Para obtener el contador de tiempo en el video, se ha colocado el Eee PC delante de la pantalla de un equipo de sobremesa (un pentium 4 que ya tiene algunos añitos) y se ha ejecutado la siguiente instrucción:

$ xclock -digital -strftime "%M:%S" -face courier-140 -update 1

El equipo de sobremesa, naturalmente, también utiliza Ubuntu 9.04 ;-)

El objeto de este artículo no es analizar Ubuntu 9.04, sino únicamente evaluar su usabilidad en este equipo en particular. Como hemos indicado anteriormente, el equipo cuenta únicamente con 512MB de memoria, los cuales resultan más que suficientes para realizar tareas ordinarias con el sistema en cuestión. De hecho, inicialmente el sistema utiliza algo menos de 130MB de memoria, dejando algo más de 350MB disponibles para ser usados por las aplicaciones.



Vemos algunas mejoras y cambios con respecto a versiones anteriores, como el mecanismo de gestión de conexiones de red y el nuevo aspecto gráfico de las notificaciones.





Componentes como la controladora de audio y la cámara incorporada, funcionan correctamente sin necesidad de realizar ningún tipo de modificación.



Incluso con un equipo tan limitado, es posible ver videos de youtube en HD (video del ejemplo).



Las utilidades relacionadas con la gestón de energía (ACPI), tales como suspender, despertar y apagar el equipo, funcionan correctamente. La mayor parte de las teclas hotkeys también lo hacen, con la excepción de la tecla para activar y desactivar la tarjeta inalámbrica. Este es el único detalle que he encontrado hasta ahora que requiere ser configurado manualmente.



Así pues, el comentario final podría ser el siguiente: Para quienes busquen un ultraportátil (netbook) capaz de ejecutar una distribución estándar sin limitaciones (salvo las referentes a prestaciones debido al modesto hardware) tal y como si estuvieramos trabajando en un equipo de sobremesa, recomiendo sin ningún lugar a dudas el uso de Ubuntu 9.04 en este tipo de equipos. Leer más...

sábado 28 de marzo de 2009

Novedades en Ubuntu 9.04

Desde hace algunos días, estoy probando Ubuntu 9.04 (en particular, desde la versión alfa-4) en dos de los equipos que tengo en casa.

Los escenarios son bien distintos: Uno de ellos es un equipo de sobremesa que ya tiene algún tiempo (unos 4 años), pero suficiente para el trabajo doméstico y la navegación cotidiana, se trata de un Pentium 4 HT 3GHz con 2GB de memoria RAM. En este equipo, hasta hace algunas semanas utilizaba exclusivamente Windows XP. Ya en anteriores ocasiones había intentado instalar Ubuntu en este equipo, pero tenía algunos componentes de hardware un poco particulares que me ocasionaban dificultades para el correcto funcionamiento de diferentes distribuciones de Linux que había probado en el equipo.

En este momento, puedo decir que el 95% del hardware de mi equipo funciona a la perfección, y que por fin he tomado la decisión de aparcar Windows XP y cambiar a Linux. En Linux, y en particular en Ubuntu, dispongo de todo el software que habitualmente necesito para las tareas que suelo hacer. Además de esto, me encuentro con algunas ventajas adicionales, como:

  • Facilidad de gestión de sitios remotos mediante fuse/sshfs. Existe software para conseguir algo similar en Windows, pero su instalación dista mucho de ser trivial.
  • Actualización automática completa: Sistema operativo + aplicaciones. Dada la enorme cantidad de software disponible (de manera libre : gratuita + legal) en los repositorios oficiales, apenas es necesario instalar software adicional. Todo el software que provenga de los repositorios se mantiene actualizado (corrección de errores y de fallos de seguridad) de manera automatizada y sumamente sencilla.

No pretendo hacer una comparativa ni enumerar las ventajas de un SO frente a otro. Las ventajas de los sistemas libres son muchas y aquí únicamente indico las que me interesa obtener para este equipo en particular.

Entre las novedades a destacar:

  • Actualizaciones: Kernel 2.6.28 y Gnome 2.26
  • Aparentemente el inicio del sistema es más rápido. Digo aparentemente porque el uso anterior con otras versiones de Linux en este equipo ha sido muy limitado, y en cualquier caso no tenía medidas previas. La situación actual, es que desde la pantalla inicial del GRUB hasta tener la sesión de usuario con una conexión inalámbrica establecida, transcurren unos 45 segundos, lo cual me parece un tiempo muy bueno. Indicar que el sistema funciona con ext3, pues aunque en algunos sitios se indica que ya se puede utilizar el nuevo sistema de ficheros ext4 en Ubuntu 9.04, y que con éste se consiguen mejoras de tiempos del orden del 20%, yo por ahora he preferido seguir trabajando de la manera tradicional.
  • Hay algunos cambios en el aspecto del interface gráfico: Aparte de los fondos de escritorio, principalmente el sistema de notificaciones. Como principal ventaja, el hecho de ser menos intrusivo.





El segundo equipo es ya un veterano en Linux: Se trata de un Asus Eee PC 701, por cuyo interior ya han pasado (además del Xandros inicial) versiones 7.10, 8.04 y 8.10 de Ubuntu.

En la actualidad, este equipo funciona con Ubuntu 8.10, al que ha habido que hacerle algunas modificaciones, principalmente para poder utilizar la tarjeta inalámbrica. La mejor noticia que podía oir, es que en la versión 9.04 dicha tarjeta viene soportada sin necesidad de modificaciones: Utilizando la versión 9.04 beta en modo live, el 100% del hardare del equipo funciona aparentemente sin problemas. En particular, la navegación funciona sin ninguna dificultad.

Leer más...

miércoles 4 de marzo de 2009

Problemas con adaptador USB wireless en Linux

El objeto de esta entrada es indicar una solución muy sencilla que puede ser útil para resolver problemas con algunos adaptadores inalámbricos USB en Linux.

En mi caso particular, utilizo un adaptador Netgear MA111 (v1), basado en el chipset prism2. Este dispositivo, aunque tiene algo más de cinco años de antigüedad, de soportar únicamente velocidades de 11Mbps (802.11b) y de ser un dispositivo USB1.1, es perfectamente funcional y cumple perfectamente con su cometido.



Utilizo el adaptador en un equipo con una distribución Ubuntu 8.10 de 64 bits. Gracias al enorme esfuerzo de los desarrolladores y la gran cantidad de harware soportado, el adaptador funciona sin realizar ningún tipo de configuración, tanto arrancando con un live-usb como con la distribución recien instalada. El único requisito es introducir la clave de la red, y a funcionar.

El problema aparece al cabo de unos minutos navegando: Se interrumpe la conexión y no es posible volver a establecerla. Tras algunos intentos (deshabilitar y habilitar de nuevo la red, quitar y poner el adaptador, descargar y cargar - rmmod/insmod/modprobe - ) los módulos que controlan el dispositivo, no hay más remedio que reiniciar el equipo para volver a tener red.

El problema se repite en cada sesión. Un tráfico de unos pocos MB es suficiente para bloquear de nuevo el dispositivo de red. Al tratar de obtener más información, descubro que en el momento en que el tráfico de red se interrumpe, en el log del sistema (dmesg) aparecen decenas de mensajes como éste:


hfa384x_usbctlx_complete_sync: CTLX[3] error: state(Request failed)


Tras buscar un poco la cadena con el mensaje de error en cuestión, encuentro con que el error es más o menos habitual y se da con muchos modelos de adaptadores inalámbricos usb. En particular, me encuentro con alguna entrada en launchpad informando del error.

Continuando la búsqueda, aparece también una propuesta de solución.

Decido probarlo:
Marcamos como blacklist el módulo prism2_pci


$ sudo echo blacklist prism2_pci >> /etc/modprobe.d/blacklist


Tras reiniciar el equipo, comienzo a navegar, con múltiples pestañas, escuchando simultáneamente una radio online con Rhythmbox. Me dedico a ver también el capítulo 1 de Aguila Roja, y por el momento todo funciona perfectamente.


$ ifconfig wlan0 |grep RX
RX packets:350374 errors:0 dropped:0 overruns:0 frame:0
RX bytes:508203218 (508.2 MB) TX bytes:15082717 (15.0 MB)


Más de 500MB transferidos, y ni el más mínimo síntoma de error. Conclusión: Muy recomendable el intentarlo para todos aquéllos que tengan algún problema con tarjetas de red inalámbricas en Linux Leer más...

martes 3 de marzo de 2009

Firefox + FlashPlayer 64 bits en Ubuntu 8.10

Recientemente he instalado Ubuntu 8.10 x86_64 en un equipo en el que hasta ahora solía trabajar con Windows XP. Me encuentro ahora instalando software y haciendo algunas pruebas respecto a la usabilidad del equipo, y sobre todo al tratarse de la versión de 64 bits.

Tras más de 4 años utilizando distribuciones Linux de 64 bits en servidores en producción, no tengo ninguna duda de que es una excelente opción para este tipo de máquinas. Sin embargo, para equipos domésticos cuyo principal uso es el de ser utilizado como ordenador de sobremesa, no termino de decidir si es mejor optar por la solidez de algo sobradamente probado, o si por el contrario merece la pena ganar algo de rendimiento aunque en ocasiones nos lleve a encontrarnos con dificultades propias de un bet-tester.

Para quienes quieren probar lo último, Adobe desde hace algún tiempo proporciona versiones de 64 bits de su popular reproductor de Flash. Quienes lo quieran instalar de los repositorios oficiales de Ubuntu (versión 8.10, 64 bits), se encontrarán con que instalan la versión de 32 bits, a través de ndiswrapper.

Podemos descargar e instalar de forma manual la versión de 64 bits (precisamente hace escasos días, el 24 de febrero de 2009, han publicado una nueva versión: 10.0.22.87).

El proceso es así de sencillo:


$ cd /tmp
$ wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
$ tar -xzf libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
$ sudo mv libflashplayer.so /usr/lib/firefox-addons/plugins


A continuación, reiniciamos Firefox, y ya disponemos tanto de un navegador como de un reproductor de flash en 64 bits.

En la web de Adobe, insisten en que se trata de una versión alfa, de modo que será más o menos frecuente que el navegador se bloquee al acceder a ciertas páginas en flash. Hay que tener claro que se trata de una herramienta para testeo o para desarrolladores, pero para usuarios finales que deseen un producto estable, por ahora la recomendación es utilizar la versión de 32 bits.

Actualización (7-marzo-2009): Parece ser que los usuarios de sistemas de 64 bits todavía tendremos que esperar un poco hasta disponer de un entorno de reproducción de flash estable.

Tras ver lo muy inestable que resulta la versión alfa proporcionada por Adobe, utilizo la versión de los repositorios de Ubuntu (32 bits + wrapper). Esta versión genera errores esporádicos como éste:


npviewer.bin[5916]: segfault at ff9bea2c ip 00000000ff9bea2c sp 00000000ff8cecec error 4


Y al tratar de obtener un poco más de información me encentro en Launchpad con el que probablemente sea el error más sufrido actualmente en Ubuntu (no hay más que ver el número de suscriptores y duplicados).

Tal vez sea el momento de probar en profundidad SWFdec y Gnash Leer más...

sábado 21 de febrero de 2009

Spam telefónico

Inicialmente el objeto de este blog era comentar cosas de caracter técnico, relacionadas con la informática y en particular con el software open source.

Ya en una ocasión estuve considerando utilizarlo para protestar, no porque pretenda conseguir nada, sino más bien a modo de pataleta, de que te sientes indefenso y al menos quieres desahogarte contando por ahí lo que te ha sucedido.

En esa ocasión en que estuve a punto de escribir, me sucedió algo como lo que cuenta un tal Javier, en unos comentarios (ver comentario del 3-feb-2009) de otra víctima del spam telefónico. Fue un día en el que recibí 8 llamadas anónimas de teleoperadores ofreciendo los servicios de turno, y una de ellas fue más agresiva de lo habitual.

En aquella época la mayor parte de las llamadas eran de teleoperadoras con acento latinoamericano. Mi forma de defenderme consistía en preguntar desde qué país se realizaba la llamada. El motivo era sencillo: si la llamada se hacía desde España citaba la LOPD, les decía que deseaba ser dado de baja y pedía datos de contacto de la empresa con el pretexto de pedir formalmente mi baja. La verdad es que en algunas ocasiones funcionaba y conseguía que fuera la propia teleoperadora la que me colgara (supongo que el motivo principal era no perder tiempo con un potencial cliente que no iba a contratar ningún servicio).


Imagen: Telekomor

En una de las ocasiones la conversación (llamada proveniente de número oculto) fue algo así:

- Buenas tardes, mi nombre es NNNNN de la compañía CCCCC y le llamo para ofrecerle el servicio SSSSS.
- Buenas tardes, ¿Me puede decir desde qué país me llama?
... Unos segundos de silencio. Supongo que esa pregunta no está en su guión y la deja descolocada ...
- No le estoy llamando desde el País Vasco.
... A continuación el que se queda descolocado soy yo. No sé si mi interlocutora me toma el pelo o es que sus conocimientos de geografía no le llegan ni para saber desde qué país llama...
- Mire, si no me responde no la voy a atender. (cuelgo)

A los pocos segundos recibo una llamada (de nuevo desde número oculto)
- Oiga es usted un maleducado que si no le interesa me lo podía haber dicho y no tiene por qué colgarme...
- ¿Yo un maleducado? O sea, ¿me llamas sólo para insultarme? Tú eres una sinvergüenza...
(me cuelga sin dejarme terminar siquiera la frase)

Vuelvo a recibir otra llamada de número oculto a los pocos segundos. Harto, decido no descolgar.

El teléfono deja de sonar, pero pocos segundos después, suena de nuevo. Esta vez es un número que empieza por 91. Descuelgo y me encuentro de nuevo con la misma teleoperadora, hablandome a gritos en tono amenazador. Sencillamente la mando a la mierda y cuelgo.

En los siguientes 30 minutos vuelvo a recibir varias llamadas en el teléfono, algunas de ese mismo 91 y otras anónimas. Paso de perder más tiempo y descolgar para que un personaje anónimo me insulte.

Es en esa ocasión cuando estuve tentado de contarlo todo en el blog, pero como mis obligaciones superan con mucho a mi tiempo libre, y de hecho apenas escribo un puñado de artículos al año, decidí olvidar el tema y dedicarme a contar cosas más interesantes en el escaso tiempo que puedo dedicar a escribir.

En aquella época (mediados de 2008) era raro el día que no recibía 3 ó 4 llamadas de este tipo. En agosto de 2008 en los principales periódicos (el mundo, el país) y en muchos blogs pudimos ver que los gobernantes se han hecho eco de los abusos (seguro que a alguno de ellos también le ha tocado atender este tipo de llamadas) y anuncian que se modificará la ley para combatir el spam telefónico. Ya en algunos comentarios de blogs, alguien insinuaba que esa ley no iba a cambiar nada, como así ha sido.

El caso es que, al menos en mi domicilio, hubo algunos meses de respiro en que pasamos de recibir unas 30 llamadas semanales de este tipo a recibir apenas 2 ó 3.

Supongo que durante este tiempo, los departamentos legales de las empresas que viven de irrumpir por teléfono en la vida de los ciudadanos, se dedicaron a rebuscar hasta que encontraron algún hueco legal o vieron que la ley era absolutamente inútil. El caso, es que a fecha de febrero de 2009, la situación es la misma.

Hoy mismo, le he explicado a un teleoperador que si ayer no me interesaba lo que me ofrecía, que hoy me seguiría sin interesar. Le he recordado que ayer pedí que me dieran de baja de su lista, y hoy se lo he vuelto a pedir. Supongo que en breve me volverá a llamar (¡qué considerado!, como es una oferta tan buena, no quiere que me la pierda y él insite en llamar).

Al igual que ocurre con el spam de correo electrónico (unas pocas empresas generan prácticamente la totalidad del que circula), en mi casa hay 3 empresas que generan el 80% de este tipo de llamadas. Hay varios blogs de otras personas que han sufrido este tipo de llamadas. En uno de ellos dan algunas indicaciones y proponen actuar por la vía legal.

El problema de actuar por la vía legal es la inaccesibilidad en la práctica para quien no puede dedicar mucho tiempo y tiene conocimientos legales limitados. No todo el mundo puede permitirse estar 14 meses (y aún no se ha resuelto) enviando faxes, aportando pruebas y arriesgandote a ser atacado legalmente por el abogado de la parte contraria sólo para que dejen de llamarte por teléfono (y sin haberlo conseguido todavía).

La historia, así como los comentarios de otras víctimas, no tienen desperdicio: I, II, III.

Como la ley (de momento) no parece tener ningún efecto, ya han desarrollado un invento para cortar este tipo de llamadas: Truecall, el problema es que la broma nos sale por 100 euros. También podemos optar por tratar de desesperar a quien llama, actuando tal y como lo haría un servico de atención al usuario.

Una última referencia: Un excelente artículo de la revista Consumer, explicando el funcionamiento de los call center.

Actualización (22-mayo-2009): Vuelvo a leer que el Gobierno va a prohibir el spam telefónico (¿Pero no lo había hecho ya?)

La noticia incluye mucas cosas que suenan demasiado bien como para ser creíbles. El hecho de que dentro de dos semanas haya unas elecciones resta un poco más de credibilidad a la misma (qué curioso, que las noticias que se aprueban justo antes de las elecciones son las que parecen preocuparse por el ciudadano, y que suelen dejar para unos días después las que pisotean impunemente todos estos derechos).

En fin, trataremos de ser positivos, intentaremos creernoslo y a ver si dentro de cuatro días no viene el listo de turno a decir que si un número sale publicado en un listín telefónico, esto indica que, de forma implícita, el titular acepta estar dispuesto a recibir llamadas comerciales sin restricciones en número ni horarios. Leer más...