Linux Magazine 55

# DVD: Ubuntu 9.10 – Karmic Koala, 32 y 64 bits
# Inseguridades: OSSEC: Comunicaciones encubiertas en Linux.
# Noticias: Kernel: Compilador C en el Kernel, Herramientas de Sistema de Archivos Liberadas por SGI.
# Noticias: Empresa y Comunidad: Monty vs. Oracle y Fat ELF.
# Portada: Al Filo de la Web: Este mes nos detenemos en algunos servidores web alternativos y mostramos algunas astutas técnicas para Apache.
# Portada: Un Camino Seguro: Muchos administradores de servidores web piensan que Apache es demasiado pesado y difícil. Hiawatha es un servidor web alternativo, rápido, simple y con algunas funciones interesantes de seguridad.
# Portada: Pequeño pero Matón: El rápido y versátil servidor web Nginx se puede configurar y ampliar fácilmente.
# Portada: Tune Up: En la batalla por los visitantes Web, cada milisegundo cuenta. Unos sencillos cambios ayudarán a nuestro sitio Web a ser más popular.
# Portada: Inclusión: Los SSIs (Server Side Includes) pueden suponer un ahorro considerable de tiempo y facilitar el mantenimiento de los sitios web.
# Práctico: Botas Brillantes: Bootchart analiza el proceso de arranque e indica dónde se entretiene más.
# Práctico: Qemu Portable: Lleva contigo un Linux virtual dondequiera que vayas.
# Práctico: Cómo Orientarnos: Los sistemas de navegación GPS de código abierto nos muestran el camino para llegar a casa… o a cualquier sitio al que deseemos ir.
# Desarrollo: A Dormir: Pyjamas nos permite crear complejas aplicaciones web que se ejecutarán en el navegador sin abandonar Python.
# Desarrollo: Juegos de Guerra: Aunque un juguete USB como el lanzador de cohetes de poliestireno sólo incluye un CD para Windows, funciona sin problemas bajo Linux con un poco e ingeniería inversa. Gracias a libusb, esto no requiere ni compilar un driver de dispositivo: Perl controla el dispositivo desde espacio de usuario.
# SysAdmin: La Máquina Parlante: Twitter, como todo el mundo sabe, es moderno, divertido, sociológicamente iluminado y por otro lado no sirve para nada. Incluso a Charly le gusta twittear -pero en la consola, que es una cuestión de estilo.
# SysAdmin: Un Nuevo Bash: A pesar de la edad bíblica de la Shell Bourne-again y de su alto nivel de madurez, los desarrolladores siguen trabajando en ella. Echamos un vistazo a la última versión de Bash.
# SysAdmin: Cerrando Filas: La versión 3.3 de Samba y el gestor de bloqueos CTDB proporcionan soporte completo para montar un clúster.
# Linux User: Mapa de Carreteras: ActivityDiary crea un práctico diario digital mapeando los datos GPS de nuestra salidas al campo y rutas.
# Linux User: Datos Amigos: Kexi, parte de la suite KOffice, nos permite a todos crear, rellenar y mantener una base de datos.
# Linux User: Cloud 9: Esta nube empaquetada pone en sus manos espacio compartido para una máquina de discos, fotos, blogs, compartición de ficheros, aplicaciones de espacio de usuario y mucho más.
# Linux User: Alrededor del Sol: Vemos cómo crear una simulación con Squeak del movimiento de traslación terrestre alrededor del Sol.
# Linux User: Horizontes Cercanos: Si desea echar un vistazo a un fichero de texto, Linux posee comandos en abundancia para satisfacer nuestra curiosidad.
# Comunidad: Konsultorio: Si tienes algún problema de configuración, o simplemente quieres conocer mejor cómo funciona Linux, pregúntale a Klaus Knopper, el creador de Knoppix. Este mes: Resolución de Pantlla, Combinaciones de Teclado para EeePC y Unidad USB Flash.
# Comunidad: Linux Legal: Jose María Lancho, presidente de HispaLinux, resuelve las dudas legales de los lectores. Este mes: El Partido Pirata y la GPL.
# Comunidad: Maddog: Se Busca: Cuando se trata de ingeniería de software, siempre necesitamos más.

Tableta gráfica Wacom Bamboo Pen en Karmic

Preparar gráficos para las diapositivas de clase es una tarea ardua y costosa. A veces, esos gráficos podrían hacerse más rápidamente en papel, y tras escanearlos, se podrían incrustar en el documento de presentación que queramos usar. Pero ya que el Olentzero estaba esperando mi carta, decidí pedirle una tableta gráfica para poder dibujar directamente con un lápiz sobre la tableta – y pasarlo a digital – como si lo hiciera sobre papel y disfrutar mientras «pinto».

El Olentzero me trajo una tableta Wacom (Bamboo Pen), y aunque es compatible Linux, el problema radica en que, de serie, Ubuntu Karmic no la reconoce. Lógicamente la comunidad se ha volcado en cambiar la situación y ya hay una solución . En ese enlace se resume lo que habría que hacer para distintas tabletas gráficas Bamboo (Pen, Touch, Pen & Touch…) y distintas versiones de Ubuntu. Dada la diversidad de opciones, que los enlaces están un poco desperdigados, y que ya hay nuevas versiones, resumo aquí lo que hay que hacer para instalar la tableta Bamboo Pen en Karmic, con todos los enlaces bien colocaditos, y paso a paso, para que con una sesión de copy&paste y 10 minutillos, tengáis la tableta funcionando. Vamos allá.

Preparamos el entorno, descargando paquetes necesarios:

# apt-get update
# apt-get install build-essential libx11-dev libxi-dev x11proto-input-dev 
# apt-get install xserver-xorg-dev tk8.4-dev tcl8.4-dev libncurses5-dev
# apt-get install libhal-dev

El fichero de cabeceras hids.h es necesario para compilar los drivers de linuxwacom más adelante:

# wget http://kernel.ubuntu.com/git-repos/ubuntu/linux-2.6/drivers/hid/hid-ids.h
# cp ./hid-ids.h /lib/modules/`uname -r`/build/drivers/hid/hid-ids.h

Ahora tenemos que descargar los drivers linuxwacom-0.8.4-3.tar.bz2 (ojo, hay que navegar el enlace, no vale con «Guardar destino como…»)

También necesitaremos descargar los parches necesarios para Bamboo Pen ( wcm2_patch.tar.bz2 )

Descomprimir y parchear todo:

# tar -xvjf linuxwacom-0.8.4-3.tar.bz2
# tar -xjvf wcm2_patch.tar.bz2        
# cp wcm2_patch/*.patch linuxwacom-0.8.4-3/     
# cd linuxwacom-0.8.4-3/
# patch -p1 < wacomcpl-exec.patch
# patch -p1 < wacom_sys.c.patch
# patch -p1 < wacom_wac.c.patch
# patch -p1 < wacom_wac.h.patch
# patch -p1 < wactablet.h.patch
# patch -p1 < wacusb.c.patch
# patch -p1 < wcmUSB.c.patch

Y comienza la compilación de los drivers:

# make clean
# ./configure --enable-wacom --prefix=/usr
# make
# make install

Ahora ojo, porque la versión del módulo de kernel wacom.ko, dependerá del kernel que estemos usando. En mi caso, haciendo «uname -a» vemos que la versión que necesito es la 2.6.31.

Cargamos el módulo y reconstruímos las tablas de dependencias entre módulos:

# insmod /lib/modules/$(uname -r)/kernel/drivers/input/tablet/wacom.ko
# depmod -e

Necesitaremos decirle a HAL cómo es nuestra tableta gráfica y qué capacidades tiene, generando un fichero .fdi para ello. Tranquilos, ya está hecho, sólo hay que descargarlo y dejarlo en su sitio:

$ sudo cp Favux_new-generic_rc2_10-linuxwacom.fdi.txt /usr/share/hal/fdi/policy/20thirdparty/10-linuxwacom.fdi

Si todo ha ido bien, conectaremos la tableta, y al pedir un listado de dispositivos USB conectados, obtendremos algo como :

# lsusb
...
Bus 001 Device 006: ID 056a:00d4 Wacom Co., Ltd 
Bus 001 Device 004: ID 046d:c50e Logitech, Inc. MX-1000 Cordless Mouse Receiver
Bus 001 Device 003: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
...

(lo importante es la línea Wacom, el resto dependerá de vuestros dispositivos USB 🙂

Ya sólo hace falta indicarle a las X que tenemos un nuevo dispositivo de entrada, editando para ello el fichero /lib/udev/rules.d/40-xserver-xorg-input-wacom.rules y añadiendo (sólo la línea ATTRS, el resto simplemente sirve para situarnos en contexto):

..
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", SYMLINK+="input/tablet-wacom-bamboo-pen"
# Convenience links for the common case of a single tablet.  We could do just this:
..

(donde pone 00d4 poner el id que nos devuelva lsusb, que en el caso de Bamboo Pen es 00d4)

Reiniciar. ¡Buf! Que ustede lo dibujen bien.

PD: tal cual está, la tableta debe de ser reconocida y podréis trabajar con ella sin problemas. Pero si queréis que por ejemplo GIMP detecte cuándo presionáis más o menos el lápiz sobre la tableta, y en función de ello se realicen unos trazos más finos o gruesos, hay que configurar GIMP. Es fácil, basta con seguir estas explicaciones paso a paso con pantallazos.

Vim y GNU Screen

Imagen tomada de la Wikipedia En el artículo anterior ya hablé de GNU Screen, un multiplexor de terminales. Qué bien queda ese nombre 🙂 Realmente significa que puedes trocear una terminal, dentro de una ventana, en otras n terminales. ¿Para qué puede servir ésto? Yo encontré esta utilidad a partir de una necesidad: abrir Vim y una terminal en la misma ventana. Es decir, en la parte superior de la ventana quería tener Vim y en la parte inferior una terminal con bash. Alguien podría decir que eso mismo se puede hacer abriendo dos ventanas. Cierto, pero noto mayor integración y aprovechamiento del espacio en pantalla con una sola ventana y una terminal multiplexada en dos (aparte de que con screen puedes hacer muchas otras cosas, como suspender una sesión desde un ordenador y retomarla desde otro ! ).

¿Cómo partir la terminal en dos para que quede tal y como se ve en la figura?
1) Desde la consola, iniciamos screen

$ screen

2) Lanzamos vim

3) Entramos en modo comando (dentro de screen se hace pulsando Ctrl+a , y tecleando luego «:split»

4) Pasamos a la nueva «terminal» o «ventana» inferior, pulsando Ctrl+a y luego TAB (tabulador). Esta combinación de teclas nos permite pasar de una ventana a otra.

5) En la terminal multiplexada inferior, pulsamos Ctrl+a y luego c (mnemotécnico: «c» de Create) para crear una nueva sesión bash.

Ejecutar scp en background sin ssh-keys

Problema: tengo que lanzar una orden scp para copiar el contenido de un directorio en un servidorA a la misma ruta en el servidorB. Para ello, me conecto desde el PC de casa al servidorA por ssh y lanzo la orden. El problema radica en que no quiero dejar la terminal abierta en el ordenador de casa. Lo que quiero es darle la orden al servidorA y desconectar. Esto se puede hacer precediendo la orden con un nohup por delante y dejándolo en segundo plano… ¡pero scp pide password! Y si está en segundo plano no lo puedo teclear o_O

Solución: usar claves ssh (ssh-keys), de tal forma que se copia la clave ssh pública en el servidorB y a partir de ahi éste no le pedirá password al usuario conectándose desde servidorA. Ésto se puede hacer y no es demasiado complicado (en resumidas cuentas, se crea una pareja de clave pública-clave privada, se sube la clave pública al servidor B y se da la orden de aceptar al cliente que tenga la clave privada correspondiente, sin necesidad de password), pero me gustaría hacerlo de forma más sencilla, sin claves ssh ni necesidad de más configuraciones. Ésto último también se puede hacer, con screen, esa gran aplicación que poco o nada veo usar a la gente.

Recordemos el problema: quiero conectarme a servidorA y lanzar desde ahí una orden scp para copiar una serie de archivos de servidorA a servidorB. La copia de archivos durará mucho tiempo y no quiero tener la conexión abierta durante todo ese rato. El problema es: si corto la conexión, el scp se para. Para que no se pare, podría usar «nohup scp … &», pero scp pide password, y al lanzarlo en segundo plano (con &), no puedo teclearlo.
Así que vamos al grano, usaremos screen, así:

$ screen 
$ lanzo la orden scp

Salgo de screen, pero dejando la sesión abierta. ¿Cómo? Pulsando ctrl+a y luego d .
Ahora puedo cerrar la conexión ssh con serverA cuando quiera.

La próxima vez que conecte por ssh contra serverA puedo retomar la sesión que inicié con screen y ver cómo ha ido evolucionando. Para retomar la sesión, tecleamos:

$ screen -r

Parece más complejo de lo que es. Símplemente toma nota de este post para cuando lo necesites 😉

Urte berri on / Feliz año nuevo

Éste será el último post de 2009. Ha sido un año bastante movidito en lo que se refiere al software libre en general, y al movimiento del software libre en Euskadi en particular. Este año, por ejemplo, el Gobierno Vasco decidió que en 2010 abrirá una oficina técnica del software libre, un enorme paso adelante para acercar soluciones libres a toda la ciudadanía. También tuvimos la ocasión de discutir largo y tendido sobre la implantación de Linux en los portátiles de Eskola 2.0. Recibimos un premio Buber, organizamos la primera reunión de usuarios de Android de Euskadi (EtxekoAndroid’09), el grupo ITSAS realizó una install party (llenando la sala de nuevos usuarios, incluso venidos de otras facultades) y dió unas interesantes charlas sobre Python, BSD, LaTeX, certificados digitales…

El 2009 también ha tenido sus malos momentos… uno personal, que recordaré siempre con dolor fue el fallecimiento de Paco 🙁

En fin, 2010, año nuevo, vida nueva 🙂 Entre los proyectos relacionados con software libre que me gustaría ver realizados este año, destacan, primero babeliumproject.com (un proyecto en el que llevo trabajando diariamente desde hace 14 meses, junto a mi grupo de investigación y una selección de estudiantes de últimos cursos de la FISS y que por fin, verá la luz), un concurso de PFC’s basados en software libre del que no puedo hablar más 🙂 o la edición 2010 de EtxekoAndroid (aprovechando el tirón del Google Nexus One)…

Como no podíamos despedir el año sin un poco de emoción, hoy mismo hemos cambiado de ISP en DiarioLinux (!). Así que, es posible que suframos alguna parada temporal que esperemos pase inadvertida 😉

Me gustaría poder seguir «dando la tabarra» desde aquí un año más, y a ser posible, contando con vuestra participación, siempre bienvenida. Urte berri on!