Últimas Publicaciones

No consigo poner en marcha Firestarter en Ubuntu

Si instalas Firestarter en ubuntu, con la sana intención de proteger tu máquina con un cortafuegos, te encontrarás con un par de problemas bastante puñeteros.

El primer tropiezo es que Firestarter se niega a arrancar y se queja de que el dispositivo de red no está disponible. Una estupidez, porque tú estás viendo que tienes una red perfectamente activa.

Una vez que resuelves el primer tropiezo te encuentras con el segundo: Firestarter se pone en marcha cuando se lo mandas, pero no puedes hacer que se ponga en marcha automáticamente al rebotar la máquina.

El primer problema se debe a que Firestarter se pone en marcha con el script /etc/firestarter/firestarter.sh y si lo editas, verás un par de cosas curiosas: que el script pone en marcha comandos del sistema para saber cuál es la red. Y el follón surge porque espera respuestas en inglés y se las dan en castellano.

Efectivamente, en la línea donde pone:

 
MASK=`/sbin/ifconfig $IF | grep Mask | cut -d : -f 4`

...debería poner:

 
MASK=`/sbin/ifconfig $IF | grep Máscara | cut -d : -f 4`

Y en la línea donde pone:

 
BCAST=`/sbin/ifconfig $IF |grep Bcast: | cut -d : -f 3 | cut -d \  -f 1`

debería poner:

 
BCAST=`/sbin/ifconfig $IF |grep Difusión: | cut -d : -f 3 | cut -d \  -f 1`

Y también deberías cambiar en el mismo sentido las líneas que comienzan con INMASK y con INBCAST.

Ahora, Firestarter ya debería reconocer tus redes y ponerse en marcha. Hazlo y configura tu cortafuegos a tu gusto. ¿Ya?. Pues esto nos lleva al segundo problema.

Firestarter no se pondrá en marcha de nuevo en el boot, y cada vez que lo actualices tendrás que volver a editar el script para corregir de nuevo el bug. La forma de evitarlo es nuevamente muy simple: ahora que tienes a Firestarter en marcha y a tu gusto, prescinde de él. ;-)

Con Firestarter funcionando, abre otra ventana de comandos, hazte root, y teclea este comando:

 
[root@jeanette lacofi]# /sbin/iptables-save > /etc/cortafuegos.cfg

Ahora edita el fichero /etc/rc.local y mete este comando en él (también puedes ejecutarlo a mano siempre que necesites arrancar el cortafuegos):

 
[root@jeanette lacofi]# /sbin/iptables-restore < /etc/cortafuegos.cfg

Con estos comandos, obviamente, se salvan a un fichero todas las reglas iptables activas. Y después, podemos ponerlas de nuevo en marcha con el segundo comando. Hala, al carajo el Firestarter. Ya puedes desinstalarlo si te da la gana.

Script para crear un documento djvu

A veces le echo un vistazo a las estadísticas de este sitio Web, para ver qué es lo que busca la gente por este antro de perdición.

Lo cierto es que la inmensa mayoría de los usuarios sois sin duda gente que le ha preguntado a Google cosas sobre el hardware o sobre Linux (y siempre hay unas cuantas preguntas también sobre OS/2). Pero dentro de los linuxeros, hay un porcentaje no pequeño de gente que viene buscando cómo crear ficheros djvu o interesados en la gestión documental en general. Y es un porcentaje lo bastante alto como para llamarme la atención. Y ahí es donde quería yo llegar.

Bueno, la verdad es que también me sorprende ver siempre una cierta cantidad de gente preguntándole a Google por mí, con nombre y apellidos. Supongo que son todo aficionados a la Ciencia Ficción en busca de su autor favorito. Así que un saludo, ¿ein?. ;-)

Vale, pues al grano. El caso es que en su dia dejé un artículo en el que hablaba de la creación de ficheros djvu, pero lo que contaba estaba muy personalizado para mi uso y disfrute y dudo mucho de que le resulte útil a nadie, más que como una aportación general de ideas. Así que, dado que hay mucho interés por vuestra parte, y como soy así de majete, pues os he hecho justo lo que estabais buscando: un programilla script escrito en Perl que escanea un documento y lo convierte enterito a formato djvu multipágina. De nada. Ha sido divertidísimo escribirlo. :-)

Os lo podeis bajar pulsando con el botón derecho del ratón aquí, y para ser sinceros, la verdad es que tampoco inventa la rueda: echa mano de lo que hay disponible en casi todas las distribuciones Linux y se limita a servir de front end, de tal forma que se haga todo de la manera más automática posible y sin complicaciones, sea cual sea el ordenador en que se ejecuta. Obviamente, para que funcione debereis tener instalado SANE y DJVU, pero eso ya lo suponíais, ¿verdad?.

La primera vez que se ejecuta, el script buscará qué escaners hay disponibles. Si teneis más de uno os preguntará cual quereis usar para gestión documental. En cualquier caso, la configuración solo se necesita la primera vez, porque el programa recordará todos los ajustes y no volverá a preguntaros. Aún así, si ejecutais la opción "--ajuste", podeis reconfigurarlo todo de nuevo si os apetece o si cambia vuestro hardware. También teneis una opción "--ayuda" que os mostrará la sintaxis del comando, y algún detalle relevante.

Y alguna que otra virguería que me he permitido el lujo de meter. Por ejemplo, si creais un fichero que ya existe, el escaneo no destruye nada sino que añade nuevas páginas a lo ya existente. O por ejemplo, que utilizará el ADF, en caso de que tengáis un escaner con alimentador automático de hojas (lo que es bastante fundamental para hacer gestión documental en serio).

Y más cosillas que dejo que descubrais por vosotros mismos. El script, por supuesto, ha de considerarse bajo Dominio Público, así que es un regalo que os hago. ;-)

Eso sí, un consejo: quizás tengais la tentación de escanearlo todo en color. No lo hagais. La mejor forma es usar Lineart (blanco y negro puro) porque, en gestión documental, lo que interesa es casi siempre el texto puro, no las fotos ni los gráficos complejos. Muy raramente necesitareis algo más complicado que eso, pero si lo necesitais bastará con escanear en escala de grises. Nunca o casi nunca he usado color. Os lo digo porque en Lineart el escaneo es rapidísimo y los ficheros ocuparán solo un puñado de Kb. Aún así, el programa admite la opción de escanear en grises y en color, todo el documento o también solo algunas páginas concretas, aunque esta opción solo está disponible si escaneais sin ADF (lógicamente: con el ADF os irá tragando todas las páginas una tras otra).

Estoy depurando errores y metiendo algunas opciones más. Consulta la ayuda con "escaneo --ayuda". Versión actualizada a fecha 29/01/2009. Si te lo bajaste antes de esa fecha, vuelve a bajártelo, anda.

Disfrutadlo mucho. ;-)

Configurar un SAI Belkin Active Backup en Gentoo

El SAI Active Backup 800VA de Belkin (BU308000ME) funciona perfectamente en mi Gentoo Linux, y posiblemente también puedan hacerse funcionar las versiones 600VA y 400VA, que son técnicamente equivalentes (solo cambia la potencia de la batería). Sorprendente, porque estos SAI incluyen un software propietario para Linux (WinPower) que resulta que no funciona, mientras que NUT, el software opensource que se supone que no soporta este SAI resulta que sí lo hace.

Tal vez te estés preguntando qué demonios es un SAI (si es así, seguramente es que no lo necesitas, pero en fin). Un SAI es un Sistema de Alimentación Ininterrupida. En inglés sus siglas serían UPS. Básicamente, podríamos decir que es una batería un poco sofisticada capaz de comunicarse con el ordenador por USB o por un puerto serie, para decirle por ejemplo cuánta energía tiene, e incluso darle órdenes a la máquina.

De esta forma, el ordenador ya no estaría enchufado a la red, sino al SAI, de quien se alimenta. También el monitor suele estar enchufado al SAI, y quizás también aquellos discos duros externos que consideres críticos en caso de que se vaya la luz en tu casa. El SAI, a su vez, está enchufado a la red eléctrica que usa para cargar constantemente la batería. Y también suele haber una conexión USB o serie entre el ordenador y el SAI que les permite intercambiar información.

Si la red eléctrica funciona sin problemas, el SAI no hace nada. Bueno, en realidad, sí que hace algo: modular y estabilizar la corriente eléctrica de tal forma que la alimentación al ordenador sea estable. Si hay un corte de luz, en cambio, el SAI salta inmediatamente y comienza a alimentar por su cuenta al ordenador, además de informarle de que está funcionando bajo batería. Esto le da tiempo al usuario a restablecer la energía (por ejemplo si ha saltado el diferencial de la casa). Si es un corte más serio, la energía de la batería suele dar tiempo suficiente para grabar todos los datos y cerrar todos los programas de forma ordenada. El Active Backup 800VA de Belkin, por ejemplo, me proporciona 15 valiosos minutos de autonomía en caso de fallo eléctrico, tiempo suficiente para grabar todo y resguardar todos los datos. Si el fallo eléctrico dura más tiempo que eso (o el ordenador está funcionando solo y no hay nadie en casa), cuando la batería empieza a quedarse agotada informará de ello al ordenador y se ocupará de darle una órden de apagado limpio (shutdown), con lo que la máquina cerrará todos los programas activos y después se apagará limpiamente.

Un SAI funcionando es sencillamente espectacular. Y se vuelve tanto más imprescindible cuanto más inestable sea la red eléctrica de tu casa.

Para configuar el Active Backup de Belkin, necesitamos el programa nut, que está incluido de serie en Gentoo. Pero no nos valdrá la versión estable, sino que necesitaremos la última versión en desarrollo para usar los mejores drivers. La versión 2.2.2 es estable y funciona perfectamente en mi ordenador, así que es la que te recomiendo, pero lo primero que tenemos que hacer es desenmascararla. Para ello, incluye en tu fichero /etc/portage/package.keywords la siguiente línea:

 
sys-power/nut ~86

Y ahora ya puedes instalar el software en tu Gentoo:

 
[lacofi@jeanne]$ su
password:
[root@jeanne]# emerge sys-power/nut

Para otras distribuciones, tendrás que usar la órden equivalente para instalar el software, pero asegúrate siempre de que instalas la última versión disponible. En mi caso, recomiendo la 2.2.2 o superior, aunque también podría valer la 2.2.0 pero no la 2.2.1, que a mí no me funcionaba por razones que no supe identificar.

Ahora tienes que configurar nut. Para ello tendrás que manipular varios ficheros de configuración. Pero lo primero de todo es saber qué driver nut es el correcto para tu SAI. En el caso de mi Active Backup de Belkin, el driver es el megatec_usb (ya te lo digo yo), pero para otros SAI te recomiendo que consultes la lista de fabricantes de la web de nut, aunque a veces tendrás que recurrir al "ensayo y error" o incluso suscribirte a la lista de correo de desarrolladores de nut y hablar con ellos, como hice yo. Son muy amables, y no dudarán en echarte una mano a poco que te molestes en darles datos suficientes sobre tu problema.

Vale. Pues una vez que sepamos el driver, hay que ponerlo en el fichero /etc/nut/ups.conf. En el mio, consta la siguiente información:

 
[belkin]
driver = megatec_usb
port = /dev/hiddev0
desc = "Active Battery Backup"

Los desarrolladores de nut me insistieron en que el driver megatec_usb no utiliza realmente el dispositivo /dev/hiddev0, pero aún así es bueno ponerlo, por si acaso esto cambia en un futuro. Además, hay que tener en cuenta que Gentoo no crea el dispositivo hiddev0 en /dev, sino en un subdirectorio aparte (/dev/usb), así que habrá que apuntar al sitio correcto en /etc/ups.conf o al menos manipular udev para que creen un enlace simbólico cuando enchufemos el SAI. Por ejemplo, podemos meter esta entrada en /etc/udev/rules.d/10-local.rules:

 
KERNEL=="hiddev0", NAME="usb/%k", GROUP="nut", SYMLINK+="hiddev0"

Después hay que reiniciar udev, claro.

Vale. Ahora tenemos que decirle a nut que acepte conexiones del ordenador local y rechace las demás. También podríamos decirle que acepte las de una red local concreta, pero en mi caso preferí que solo las admita de la propia máquina. Para ello, hay que poner esto en /etc/nut/upsd.conf

 
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32

ACCEPT localhost
REJECT all

Ahora hay que decirle a nut qué usuarios pueden acceder y en qué condiciones. Para ello, hay que modificar el fichero /etc/nut/upsd.user y poner algo así:

 
[root]
password = <contraseña en plano>
actions = SET
instcmds = ALL

[lacofi]
password = <contraseña en plano>
allowfrom = localhost

Ahora tenemos que decirle al sistema automático de monitorización de nut cómo va a acceder al driver. Para ello, modificamos el fichero /etc/nut/upsmon.conf y ponemos algo así, para que acceda a la batería número 1 en localhost:

 
RUN_AS_USER root
MONITOR belkin@localhost 1 lacofi <contraseña en plano> master

El fichero /etc/nut/upssched.conf no hace falta configurarlo salvo que quieras algo muy concreto y complejo, así que paso.

Bien, pues ya está. Ahora solo que iniciar o reiniciar nut:

 
[root@jeanne]# /etc/init.d/upsd restart
 * Stopping upsd ...                    	[ ok ]
 * Starting upsd ...
Network UPS Tools upsd 2.2.2-exportado
listening on 0.0.0.0 port 3493
Connected to UPS [belkin]: megatec_usb-belkin   [ ok ]

Ahora abandonamos la cuenta root y le preguntamos al SAI qué tal le va la vida:

 
[root@jeanne]# exit
[lacofi@jeanne]$ upsc belkin@localhost
battery.charge: 97.5
battery.voltage: 13.60
battery.voltage.nominal: 12.0
driver.name: megatec_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/hiddev0
driver.version: 2.2.2-exportado
driver.version.internal: 1.5.14
input.frequency: 50.1
input.frequency.nominal: 50.0
input.voltage: 228.9
input.voltage.fault: 228.9
input.voltage.maximum: 231.3
input.voltage.minimum: 225.0
input.voltage.nominal: 230.0
output.voltage: 228.9
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 43.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0
ups.type: standby

Observa la línea que dice "ups.status: OL". Significa que el UPS (SAI) está "On Line", es decir, que recibe energía de la red eléctrica. Ahora puedes probar a desenchufarlo y ver qué te dice. O incluso dejarlo desenchufado 15 o 20 minutitos y ver cómo inicia la secuencia de shutdown. Que lo disfrutes. :-)

Y un saludo a Carlos, que hizo la pregunta correcta en el momento apropiado. ;-)

Amarok no envía información “now playing” a Last.FM

Si eres un fan de Amarok, es muy posible que también estés metido en la red social Last.FM, puesto que se integra automáticamente en ella. Solo necesitas abrir una cuenta en Last.FM (eso es de cajón, vaya) y meter tu login y contraseña en la configuración de Amarok.

Pero aunque Amarok se integra de serie con Last.FM, solo envía las canciones que has escuchado, considerando como "escuchada" cualquier canción que has oído más del 50% del tiempo que dura. Esto es suficience para mantener actualizada y al día tu cuenta de Last.FM, así como para poder disfrutar de todas las ventajas de Last.FM desde el propio Amarok: artistas recomendados, temas similares, emisoras de radio personalizadas (en forma de flujos streaming), emisoras de vecindario, etc, etc.

Pero hay una floritura que Amarok no incluye de serie: no soporta el envío de información "escuchando ahora". Es una tontería, porque no tiene relevancia para el funcionamiento interno de Last.FM, pero qué narices, no estamos aquí solo por la funcionalidad, ¿verdad?. Y queda muy mono, lo de decirle a todo el mundo que estás ahora mismo on-line y escuchando música. ;-)

No hay forma de configurar Amarok para que envíe esa información, pero afortunadamente Amarok sí soporta el uso de plugins que añaden funcionalidades nuevas. Y resulta que sí existe un plugin que hace precisamente eso: envía la información "escuchando ahora" a Last.FM, justo cuando empieza la canción, y mantiene la información actualizada hasta que detengas la música o cambies de canción.

El plugin se llama LastFMNotify, así que solo tienes que bajártelo e instalarlo en Amarok. De nada. ;-)

Ya de paso, también puedes echar un vistazo al plugin synctags, que se trae las etiquetas más comunes de la canción que estás oyendo, también desde Last.FM. Y muchos más plugins interesantes disponibles para tu Amarok. Vete a Herramientas, al Gestor de Scripts, y echa un vistazo a todo lo que tienes ahí.

Configurar Gnome para conectarse a Internet a través de un teléfono 3G

En otra sección te contaba cómo conectar tu ordenador portátil a Internet usando un teléfono 3G Nokia E71 (y, por extensión, cualquier móvil con sistema Symbian). Te recomiendo que vayas allí, porque los sistemas que especifico en esa sección para configurar la conexión son el estándar. Lo que te voy a contar ahora funciona, pero con algunos problemas que puede que no te interesen (principalmente problemas de permisos y de errores en la conexión). Así que lo que viene a continuación es más bien para frikis. Dicho queda.

Vale, los scripts están muy bien, pero puede que a algunos usuarios les guste más conectarse a golpe de ratón, como en Windows, sin necesidad de abrir una ventana de comandos. ¿Puede hacerse?. Pues sí, claro, por lo menos en Gnome. Y supongo que también habrá alguna forma de hacerlo en KDE. Pero como ahora mismo mi portátil está usando Fedora 8 y Gnome, ahí va una posible forma de hacerlo que queda bastante elegante, aunque ya digo que da algunos problemas que no he conseguido resolver.

Para simplificar, Vamos a obviar esta vez cómo crear el enlace bluetooth entre el teléfono y el ordenador (ya lo he contado varias veces). Si no sabes cómo conseguir que tu teléfono quede linkado a un dispositivo /dev/rfcomm1, puedes consultarlo en otra sección de esa misma web.

Una vez linkados el ordenador y el teléfono, tenemos que configurar la conexión a Internet, usando el móvil como un modem. Para ello vamos a usar el programa "system-config-network". En el caso de Fedora, puedes entrar en el Menú Sistema, Administración, y arrancar "Control de Dispositivos de Red". Esto arrancará "system-config-network".

Verías tal que esto (observa que en el screenshot el trabajo ya está hecho y hay un dispositivo para nuestra conexión 3G):

*

Vale, ahora haz click en "Configurar". Seguramente ahora te pedirá la contraseña de root, porque lo que vas a hacer exige que seas administrador. Y entonces te sacará este otro cuadro de diálogo:

*

Bien, vamos a crear una nueva conexión modem con nuestro teléfono. Para ello, haz click en el botón "Nuevo". Aparecerá otro cuadro de diálogo en el que nos pregunta qué tipo de dispositivo. Ahí elige "Conexión de modem". A continuación te saca otro cuadro en el que te pregunta los datos de tu proveedor, que tienes que conocer. En el caso de Vodafone, por ejemplo, tendrías que poner el número telefónico "*99***1#", el nombre de inicio de sesión "vodafone" y las contraseña "vodafone". El nombre del proveedor es lo que tu quieras, por ejemplo "Vodafone3G". El Prefijo y el Codigo de Area se dejan en blanco.

A continuación te pregunta por la configuración IP. Ahí tienes que marcar la opción "Obtener las configuraciones automáticamente" y también la opción "Obtener información de DNS automáticamente".

Con esto se crea un nuevo dispositivo ppp0 y regresas al cuadro de diálogo del anterior screenshot. Ahora vete a la pestaña "Hardware" y pulsa el botón "Nuevo". Cuando te pregunte "Tipo de hardware" selecciona "Modem". En "Dispositivo del módem" pon el dispositivo bluetooth de tu teléfono, por ejemplo "/dev/rfcomm1". La "velocidad en baudios" sería 460800, y "Control de flujo" sería "Hardware (CRTSCTS)". En "Volumen del módem" pon "apagado", y marca la casilla de "usar marcación por tonos". Con esto se crearía un nuevo hardware que se llamará por ejemplo "Modem0", y regresas otra vez al cuadro de diálogo del anterior screenshot.

Vamos a repasar para que quede clarito.

Entra en la pestaña "Dispositivos", selecciona el dispositivo ppp0 que creaste antes y le das a "Modificar". Verías todas las opciones de antes y alguna más. Por ejemplo, en la pestaña "General", tendrías que ver algo así:

*

Es importante que esté marcada la opción "Permitir que todos los usuarios habiliten y deshabiliten el dispositivo", porque si no tendrás que volverte root para poder conectarte a Internet.

En la pestaña "Ruta", estaría todo en blanco, porque es para rutas estáticas y nosotros queremos las dinámicas. La pestaña "Proveedor" mostraría esto:

*

En la pestaña "Compresión", pueden estar todas las casillas desmarcadas. En la pestaña Opciones puedes dejar todo en blanco. En la pestaña "Avanzado", modifícalo para que quede algo así:

*

La cadena de inicialización del módem puede estar en blanco y puede que funcione. Yo tengo esta otra que viene a significar "poner todo a cero", y que también me funciona. Tú puedes dejarlo en blanco, probar con la secuencia más clásica (que es ATZ) y si no te va, probar con la que he puesto yo.

Acuérdate de marcar la casilla "dejar que PPP haga toda la negociación", porque si no puedes obtener extraños errores de tipo "no se permite abrir/no se permite cerrar el puerto serie".

Vale, pues regresas al cuadro de diálogo de "Configuración de red" y ahora entra en la pestaña "Hardware".

*

Elige el modem que acabas de crear y pulsa en "Modificar". Verías esto:

*

En la pestaña DNS puedes meter servidores DNS que quieras, a tu gusto. Por ejemplo:

*

Observa que en "Ruta de búsqueda DNS" yo tengo metido "dancerine". Esa es mi red local, así que si necesita una IP, el portátil preguntará primero a la red local, pero tu puedes dejar en blanco ese apartado.

Del mismo modo, en "Hosts", puedes dejarlo en blanco salvo que tengas una red local y una máquina que no tenga nombre oficial. Por ejemplo yo tengo:

*

Pues ya está todo configurado. Ahora cierra y regresas al primer cuadro de diálogo de todos:

*

Desde ahí, puedes conectarte y desconectarte. Tan simple como seleccionar ppp0 y pulsar en "Activar" para conectarte a Internet, o "Desactivar" para colgar el teléfono y desconectar. Facil, ¿no?.

Quiero integrar mi iPod Nano 3G con Amarok

Desde que mi santa me regaló la iPod Nano 3G, ando loco con el aparatito (hasta entonces usaba el teléfono móvil para escuchar música). Y es que uno empieza a apreciar de verdad su iPod cuando lo usa. :-)

El problema, para un linuxero, es la sincronización. Ciertamente, podrás hacerlo sin demasiados problemas con una máquina virtual con un sistema Windows XP invitado. Si te decides por ese camino, te recomiendo VMWare y no Virtualbox, porque tiene mejor soporte para las unidades USB y también para la grabación en CD/DVD.

La mayoría de distribuciones modernas tienen integrado el soporte del iPod con Amarok y con Rhythmbox, lo que significa que debería funcionar "out of the box" (conectar y listo). Pero puede que los usuarios de gentoo, o con sistemas anticuados tengan algún problema. En ese caso, tal vez esta información les sea de alguna utilidad. En resumen: los usuarios normales, pueden dejar de leer aquí mismo, los frikis pueden seguir. :-)

La máquina virtual te permitirá usar iTunes, que tiene un montón de funcionalidades que son de lo mejorcito que hay en el mercado. Especialmente interesante es el iTunes Store, que te permitirá comprar legalmente toda la música que te interese, con unos precios muy decentes aunque con algunas restricciones en la reproducción. No tendrás problemas para manejar la música AAC protegida con el iPod o con iTunes, pero ningún otro programa Windows o Linux podrá leer tu música legalmente comprada.

El problema no lo pone Apple (me consta que la empresa odia el AAC protegido), sino las discográficas, que a estas alturas del siglo todavía no se han enterado de cómo funciona el mercado. Tampoco se han enterado de que la gente ya no oye CDs sino solo MP3 o AAC y que quieren llevárselos a todas partes en diferentes aparatos (el móvil, el mp3, el ordenador...) lo que implica la mayor parte de las veces uso legal, porque solo una persona está usando a la vez el mismo mp3. Y con toda esta confusión acerca de lo que es pirateo y lo que no lo es, si las discográficas, completamente ciegas a la realidad, están luchando duramente por lograr su propia destrucción, no hablemos ya de la SGAE. En la wikipedia, al lado de la definición de "ceguera", debería venir un enlace a la SGAE. :-(

Apple al menos está haciendo intentos por romper la situación y volcarla a lo que de verdad quieren muchos usuarios (como yo), que es comprar legalmente su música pero no tener estúpidas restricciones de software que te impidan leer la música por la que has pagado en el aparato que te de la gana. Por ejemplo, Apple permite que puedes comprar la música en el iTunes Plus, que es música AAC pero sin restricciónes por software. El problema es que las discográficas permiten una oferta muy pequeña, casi marginal en el iTunes Plus. Mientras tanto, siempre puedes grabar un CD con la música comprada en iTunes, y después ripearla a mp3 que es un cambalache legal pero de lo más gilipollas. :-(

Al final, las restricciones que te ponen las discográficas para usar legalmente la música que compras, prácticamente suponen una invitación a usar la mula. En fin, ellos sabrán a qué están jugando. Igual piensan que las restricciones de software que le ponen a los AAC realmente están impidiendo a NADIE que piratee la música. El día que se den cuenta de que solo están j*diendo a los usuarios legales (cosa que al menos Apple y EMI sí saben perfectamente), quizás haya una esperanza para la industria discográfica del siglo XXI. Si, me cabreo cada vez que lo pienso, lo siento. :-(

En cualquier caso, con el paso del tiempo, sobre todo si usas mucho tu iPod, el uso de una máquina virtual se acabará volviendo cada vez más peñazo. Al final, mi santa se ha comprado un Creative Zen para ella, y se lo he integrado rápidamente en Amarok. Después de ver lo fácil y práctico que es, me he decidido y he integrado también mi iPod. Aquí va el proceso completo, aunque seguramente tu distribución ya ha hecho parte (o todo) el trabajo de forma automática. Por ejemplo, es el caso de Fedora 8.

Gran parte de lo que te voy a contar está recogido directamente del Gentoo Wiki: Apple iPod. A él me remito para las dudas.

Habitualmente, todas las grandes distribuciones (Fedora, por ejemplo, y supongo que Ubuntu), deberían tener sus kernels de serie ya preparados para el soporte del iPod. Si usas un kernel personalizado, en cambio, seguramente tendrás que modificar alguna cosilla y recompilarlo para que se generen los módulos necesarios para el reconocimiento del iPod. Como mínimo, necesitarás activar:

Device Drivers --->
    SCSI Support --->
      <*> SCSI device support
      <M> SCSI disk support
      <M> SCSI generic support
      [*] Probe all LUNs on each SCSI device
    Input device support --->
      <*> Event interface

Si usas un iPod Firewire, activa también:

Device Drivers --->
  IEEE 1394 (FireWire) support  --->
    <*> IEEE 1394 (FireWire) support
    <*> OHCI-1394 support
    <*> SBP-2 support (Hard disks etc.)

En cambio, si usas un iPod USB (que es lo más corriente), activa esto, aunque me extrañaría muchísimo que no lo tengas ya activado de antes:

Device Drivers --->
  USB support  --->
    <M< Support for Host-side USB
    [*]   USB device filesystem
    <M> UHCI HCD (most Intel and VIA) support
    <M> EHCI HCD (USB 2.0) support
    <M> USB Mass Storage support

Para el caso de que tengas un iPod formateado para Mac, me remito a las explicaciones del Gentoo Wiki. Vale, pues ahora recompila tu kernel e instálalo, y por ahí hemos terminado.

Ahora tienes que meter el iPod en el esquema del udev, lo que te simplificará el manejo más adelante, porque el nombre del dispositivo será siempre el mismo. Para ello, añade esta línea al fichero /etc/udev/rules.d/10-local.rules:

BUS=="usb", ATTRS{product}=="iPod", ATTRS{manufacturer}=="Apple Inc.", KERNEL=="sd?1", SYMLINK+="ipod

Y acuérdate de resetear udev con el comando udevstart.

Ahora crea un directorio /mnt/ipod vacío y mete una línea en tu /etc/fstab para que el montaje sea semiautomático. Habrá que dar la orden de montaje, pero eso lo hará Amarok por nosotros. Ni se te ocurra meter tu iPod en autofs o cualquier otro sistema de montaje automático bajo demanda: el iPod tarda unos 10 segundos en desmontar. O bastante más, si estabas sincronizando cosas y quedaron tareas pendientes. Ten en cuenta que Linux lo hace todo en caché, es al desmontar cuando empezará de verdad a transferir ficheros, y eso lleva su tiempo: más o menos lo mismo que tardaba iTunes en sincronizarlo todo. Por eso, autofs se volverá insoportable si le obligas a estar montando y desmontando continuamente con autofs:

/dev/ipod  /mnt/ipod  vfat  user,noauto,async,nodev,nosuid,noexec,rw  0 0

Y recuerda que cuando le digas a Amarok que se desconecte de la iPod tienes que tener paciencia y esperar a que la iPod te permita ser desconectada. O te arriesgas a una corrupción masiva de datos. No te quejes, Windows e iTunes funcionaban igual y tenían el mismo detalle elemental de uso: no desenchufar la iPod hasta que no te lo diga ella y desaparezca el icono de conexión.

Ahora modifica tu /etc/sudoers para que se permita a cualquier usuario hacer la extracción del iPod. Si no, solo root podrá hacerlo en muchos sistemas (como Gentoo). Otra opción es añadir una orden adicional (GROUP=users, por ejemplo) a udev para que cambie el propietario del dispositivo o los permisos. Yo he preferido hacerlo con sudo:

%users jeanette = NOPASSWD: /usr/bin/eject /dev/ipod

Con esto, el ipod ya puede montarse, desmontarse y extraerse por cualquier usuario del sistema. Ahora vamos a configurar nuestro Amarok.

En el caso de Gentoo, tendrás que emerger la librería libgpod, pero no te valdrá cualquiera: Tiene que ser la 0.6.0 o superior, para dar soporte al sistema criptográfico que usan los iPod más modernos (como el Nano 3G). En el caso de Gentoo, la librería libgpod 0.6.0 está enmascarada, asi que tendrás que desenmascararla para poder emergerla. Si no sabes de qué coño estoy hablando, entonces no deberías estar usando Gentoo. Prueba con Ubuntu o Fedora. ;-)

Bueno, vale, no me gusta ir de hacker repelente. En primer lugar porque no soy hacker (solo aficionadillo ;-). Y en segundo lugar porque no soy repelente... creo. :-D

Vamos, que si no sabes de que coño estaba hablando, échale un vistazo a un Wiki que todo Gentoosiasta debería leerse al menos un par de veces: Cómo usar Portage correctamente.

Después, tendrás que añadir a tu /etc/make.conf el flag USE "ipod". Si quieres añadir además soporte para los Creative Zen añade también el flag USE "mtp". Y ahora recompila tu Amarok (emerge amarok). En el caso de otras distribuciones modernas, el soporte para los Creative Zen y los iPod suele estar ya integrado de serie. Por lo menos es así en Fedora, con lo que no tendrás que hacer nada ;-).

Vale, ahora arranca Amarok. Vete a "Preferencias" y "Configurar Amarok". Entra en "Dispositivos de medios". Dale a "Añadir un dispositivo" y se abrirá un cuadro de diálogo. Despliega "Seleccionar la extensión a usar con este dispositivo" y elige "Dispositivo de medios Apple iPod". En "Introducir un nombre" escribe "iPod". En "Punto de montaje" pon "/mnt/ipod". Y ahora acepta.

Verás que en el listado de medios ahora aparece "iPod". Haz click en las ruedecitas de su entrada, con lo que se desplegará otro cuadro de diálogo para configurarlo con más exactitud.

En "Orden de preconexión" escribe "mount /mnt/ipod". En "Orden de postdesconexión" escribe "umount /mnt/ipod && sudo eject /dev/ipod". Haz click en el cuadradito de "Sincronizar con las estadísticas de Amarok". Acepta y ya lo tienes.

Ya puestos, vamos a meter también un dispositivo Creative Zen. Dale a "Añadir un dispositivo", Selecciona la extensión "Dispositivo MTP". Dale el nombre "Creative Zen". Deja el resto en blanco y acepta. El dispositivo "Creative Zen" aparecerá ahora en el listado. Dale a las ruedecitas y deja los comandos de preconexión y postdesconexión en blanco. Ya lo tienes. Más fácil que el iPod, ¿verdad?. :-)

Acepta la configuración y vuelve a la pantalla principal de Amarok. Haz click en las ruedecitas de arriba a la izquierda y haz que aparezca la pestaña "Dispositivos". Haz click en la pestaña. Enchufa tu iPod, y luego haz click en "Conectar". En unos segundos debería aparecer el listado de todo lo que contiene tu iPod. Ahorabuena, ya tienes el iPod integrado en Amarok. Ahora puedes hacer de todo: meter discos, borrarlos, añadir o gestionar listas... Pulsa con el botón derecho del ratón en cualquier canción del iPod o de tu biblioteca y tendrás las opciones pertinentes. Si tienes una cuenta en Last.FM, y la has metido en la configuración de Amarok, entonces Amarok se ocupará de todo. Incluso enviará a Last.FM las canciones que has escuchado en el iPod cuando volvías a casa en el autobús. :-)

Pero aún queda un detalle. Es posible que Amarok se encuentre con algún problema para grabar en el iPod la información. Lo sabrás porque cada vez que lo intente, aparecerá una advertencia abajo a la izquierda, que te dice algo del Firewire ID o que no puede actualizar SysInfo. Esto es debido a la criptografía del aparato, con lo que Amarok puede leerlo pero no modificarla base de datos interna. Para arreglarlo, cierra Amarok, enchufa el iPod, vete a una terminal y haz:

[lacofi@jeanne ~]$ su
password:
[root@jeanne /home/lacofi]# mount /mnt/ipod
[root@jeanne /home/lacofi]# lsusb -v | grep Serial
  iSerial                 3 000A27001AD07376
  iSerial                 1 0000:00:03.3
  iSerial                 3 1234567890AB
  iSerial                 3 031017200000
  iSerial                 0
  iSerial                 1 0000:00:0b.2
  iSerial                 0
  iSerial                 0
  iSerial                 1 0000:00:0a.2
  iSerial                 0
  iSerial                 1 0000:00:0b.1
  iProduct                2 USB to Serial
  iSerial                 0
  iSerial                 1 0000:00:0a.1
  iSerial                 1 0000:00:0b.0
  iSerial                 1 0000:00:03.2
  iSerial                 3 ES93I1C185FB
  iSerial                 1 0000:00:0a.0
  iSerial                 3 SG11H2616YPE
  iSerial                 1 0000:00:03.0
  iSerial                 0
  iSerial                 1 0000:00:03.1

Vale, a mi me salen un huevo de dispositivos porque tengo muchos aparatitos USB colgando del ordenador. Pero fíjate en el de arriba, el que he marcado en Cian. Tu deberías ver algo parecido, y lo reconocerás el correcto porque sale un código de 16 caracteres (el resto son de 12). Anota ese código o cópialo al portapapeles.

Ahora edita el fichero /mnt/ipod/iPod_Control/Device/SysInfo, y añade el código de esta forma (lo de "ModelNumStr: xB261" es lo que aparece en el fichero. Lo de "FirewireGuid: xxx" es lo que tienes que añadir tú):

ModelNumStr: xB261
FirewireGuid: 000A27001AD07376

Ahora desmonta el ipod.

[root@jeanne /home/lacofi]# umount /mnt/ipod
[root@jeanne /home/lacofi]# eject /dev/ipod
[root@jeanne /home/lacofi]# exit
[lacofi@jeanne ~]$ 

Con esto, Amarok debería poder leer y grabar el iPod sin más problemas. Y el Creative Zen de tu santa, también. ;-)

Un último detalle: Puede que cuando vuelvas a revisar los Covers de tu iPod veas que todos o muchos de ellos han desaparecido. Sí, los tags de los mp3 no incluyen por defecto el gráfico del cover así que iTunes lo maneja con un tag ID3 modificado, pero Linux no admite esas perversiones de la norma, así que tiene que acceder directamente a la base de datos interna de la iPod. La próxima vez que conectes la iPod, en Amarok vete a la pestaña "Dispositivos", y arriba del todo verás un desplegable que dice simplemente "iPod". Despliégalo y verás un menú con varias opciones avanzadas. Una de ellas es precisamente para actualizar los gráficos de la iPod. Esto enviará todas las portadas de los discos que faltan. ;-)

Disfrútalo mucho. :-)

Desde que actualicé mi VMWare no puedo hacer un apagado limpio

Si has instalado VMWare, puede que te encuentres conque no puedes hacer un apagado limpio de tu Gentoo (en el huesped, no en el invitado), y la secuencia de shutdown se detiene poco después de xinetd. Lo verdaderamente curioso es que yo no he sido capaz de detener el programa bloqueado, ni siquiera localizarlo, y me vi obligado a hacer apagados sucios (cruzando los dedos para que ext3 y reiserfs aguantasen).

En mi caso, el problema era especialmente irritante, porque tengo un SAI precisamente para evitar cosas como esa, y mira tú.

Así que, por ensayo y error, fui retirando servicios de la secuencia de inicio para volver a intentar un shutdown a ver si se completaba. Naturalmente en cada intento iba retirando los servicios más prescindibles con la intención de ir progresivamente hasta iptables. Pero mira por dónde, uno de los primeros ensayos fue con el servicio vmware y descubrí que era el culpable.

Es más, se trata de un bug conocido y documentado en el Gentoo Bugzilla, con lo que una vez que localizas el problema ya puedes tirar del hilo. Se trata, efectivamente de un bug en /etc/init.d/vmware, que al hacer un stop se cuelga al intentar desmontar el directorio virtual /proc/fs/vmblock/mountPoint. Al parecer, el intento falla porque ya ha sido desmontado previamente y no tiene a bien comprobarlo, con lo que se queda esperando indefinidamente.

Afortunadamente, hay una solución fácil (un workaround, que dicen en el imperio). Solo tienes que comentar la línea en cuestión, en el fichero /etc/init.d/vmware, con lo que quedaría tal que así:

 
#umount /proc/fs/vmblock/mountPoint

Pues hala. Con esto ya puedes devolver vmware a la secuencia de inicio y hacer de nuevo apagados limpios.

Por cierto, tanto ext3 como reiserfs aguantaron sin problemas todos los apagados sucios. Incluidos los ext3 que tengo en tres unidades encriptadas. Lo sepas.

¿Puedo conectar el portátil a un móvil Nokia E71?

Si tienes un teléfono Nokia E71 (precioso teléfono, por cierto), seguramente querrás usarlo como módem para conectar tu portátil Linux a Internet, a través de un cable de datos USB o una conexión Bluetooth. ¿Se puede?. Pues claro que sí. De hecho, teóricamente se podría conectar exactamente igual cualquier teléfono Symbian. Y es mucho más fácil y cómodo de hacer que con el puñetero protocolo PAN que usan los dispositivos Windows Mobile, porque el bluetooth Symbian ofrece un perfil DUN clásico, con lo que la comunicación entre el ordenador (o la PDA) y el teléfono, se autorizan de antemano y a partir de ahí será todo automático sin que tengas que tocar el móvil para nada.

Y por supuesto, todo eso puede configurarse en el Linux de tu portátil sin demasiados problemas.

a verlo siguiendo este esquema (las opciones marcadas con asterisco son las que yo te recomiendo por su sencillez y comodidad en el uso):

*

*

Si quieres usar el cable de datos lo tienes muy, muy fácil. Por lo menos con Ubuntu y Fedora. Lo siento, no he probado con Gentoo, pero teóricamente debería funcionar igual. Y es que el teléfono es reconocido automáticamente como modem de banda ancha en cuanto lo enchufas por USB al ordenador. La única precaución es que tienes que tener configurado el USB del teléfono para que utilice el modo "PC Suite", y no el modo de almacenamiento masivo.

Si por cualquier motivo el ordenador no te ofrece de mano configurar el nuevo modem, es tan sencillo como ir al gestor de red, hacer click con el botón derecho del ratón y elegir "Editar conexiones".

*

Ahora vete a la pestaña de Banda Ancha y pulsa en "Añadir". Saldrá un asistente en el que lo único que tienes que hacer es especificar tu país, y tu compañía de teléfonos (en mi caso es Vodafone). Vale, pues ya está.

*

Una vez hecho eso, si haces click con el botón izquierdo del ratón en el gestor de red (naturalmente con el teléfono enchufado por USB), verás que ya no salen solo las redes inalámbricas WiFi, sino que también aparece la red de Banda Ancha Vodafone (o la que uses tú). Pues la eliges, y el ordenador se conectará a Internet directamente. Más fácil no puede ser. :-)

*

El cable de datos, sin embargo, es un pequeño engorro. Seguramente tú prefieres usar Bluetooth, ¿verdad?. ;-)

Lo primero de todo es configurar una conexión Bluetooth entre el teléfono y el ordenador. Eso, en si mismo, no debería suponer ningún problema, pues está bastante bien documentado y puede encontrarse googleando un poco, pero en fin.

Si tu ordenador portátil no tiene Bluetooth, necesitarás un USB Dongle, por ejemplo sirven los de Conceptronic. Deberías poder consultar la lista del hardware soportado por Linux en la página Bluetooth Hardware Support for Bluez, pero si vas a mirar te encontrarás con una sorpresita bastante curiosa: que como esos dispositivos no dan soporte en Linux, podría ser ilegal decir que, de hecho, funcionan en Linux, así que la lista ha desaparecido... Increíble, ¿no?. En fin, googlea un poco y encontrarás un dispositivo USB adecuado. Luego, habrá que configurarlo para que funcione. Y a eso vamos.

Si usas Fedora o Ubuntu, lo tienes muy fácil, porque las utilidades para Bluetooth se instalan de serie y funcionan automáticamente. Así que solo tienes que poner el teléfono en modo visible y hacer una búsqueda en el ordenador (o al revés) para emparejarlos con su correspondiente contraseña. Una vez emparejados, ya puedes poner el teléfono en modo oculto, porque el ordenador lo reconocerá sin necesidad de hacer nada más.

En el caso de Gentoo no es tan automático, pero tampoco tiene tanto misterio y está ampliamente documentado por ahí. Pero por si acaso, también te lo especificaré adecuadamente. De nada.

Nota sobre Gentoo

Ya sabes que Gentoo no instala casi nada por defecto, así que tendrás que emerger todas las utilidades Bluetooth antes que nada.

[lacofi@lynette ~]$ su
password:
[root@lynette /home/lacofi]# emerge bluez-utils gnome-bluetooth kdebluetooth

Una vez instalado Bluez, tienes que arrancar el demonio bluetooth:

[root@lynette /home/lacofi]# /etc/init.d/bluetooth start

Y si quieres, mete este demonio en los script de inicio para que se ponga en marcha automáticamente en cada arranque.

[root@lynette /home/lacofi]# rc-update add bluetooth default

Ahora tienes que configurar la conexión con el teléfono. Asegúrate de que la configuración Bluetooth del móvil está ajustada para que el teléfono sea detectable por otros dispositivos. Si no, vas de cráneo. ;-)

Una vez que tu teléfono es visible para las redes Bluetooth, puedes pedirle a Linux que lo busque:

[root@lynette /home/lacofi]# hcitool scan
Scanning ...
        08:00:1F:2D:8B:4F       nokiacofi

Vale. Lo ha encontrado, y ya sabes cual es su dirección MAC (08:00:1F:2D:8B:4F). Ahora consulta qué servicios ofrece el teléfono para comprobar que uno de ellos es "Dial-up Networking". Esto, además te proporcionará otro dato importante: el canal.

[root@lynette /home/lacofi]# sdptool search DUN
Inquiring ...
Searching for DUN on 08:00:1F:2D:8B:4F ...
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

El canal es el 2, ¿has visto?. Una vez pasado este trámite, tienes que enganchar esa dirección MAC a un dispositivo /dev/rfcomm?, en el canal 2. Como tengo ya otro teléfono bluetooth linkado, el dispositivo no será /dev/rfcomm0 sino /dev/rfcomm1.

El comando es algo así como "rfcomm bind [nº dispositivo] [MAC] [Canal]". O sea:

[root@lynette /home/lacofi]# rfcomm bind 1 08:00:1F:2D:8B:4F 2
[root@lynette /home/lacofi]# rfcomm show
rfcomm1: 08:00:1F:2D:8B:4F channel 2 clean
Nota sobre Gentoo

El emparejamiento es automático en Fedora y Ubuntu. Y también en las últimas versiones de Gentoo. Pero si hace tiempo que no has actualizado, puede que tengas que hacerlo a mano. Ahí va:

Ahora tienes que emparejar los dos dispositivos Bluetooth: El del ordenador y el teléfono. Fedora lo hará automáticamente en el momento que hagas la primera conexión. Y Gentoo también, si tienes bien configurado kde-bluetooth, pero nosotros vamos a usar aquí el camino tortuoso. Para ello edita o crea un fichero /etc/bluetooth/pin que contenga un número de al menos 4 cifras (mejor si son 8, mucho mejor si son 10) con el siguiente formato:

#!/bin/sh
echo "PIN:6820317173"

Ahora dale a ese fichero permisos de ejecución para todos:

[root@lynette /home/lacofi]# chmod a+rx /etc/bluetooth/pin

Ahora edita el fichero /etc/bluetooth/hcid.conf y modifica la línea con la entrada pin_helper para que apunte a /etc/bluetooth/pin:

Donde dice:

pin_helper /usr/bin/bluepin;

Debe decir:

pin_helper /etc/bluetooth/pin;

Con esto, el ordenador solicitará al teléfono un emparejamiento a la primera ocasión que tenga (es decir, cuando conectes por primera vez). Una vez emparejados ambos dispositivos, quedarán enlazados para siempre, y ya podrás volver a configurar el Bluetooth del teléfono para que se oculte. A partir de entonces, el teléfono solo será visible para el ordenador.

Pero el punto flaco de todo esto son los comandos "sbptool search DUN" y "rfcomm bind" que vimos más arriba, porque es un poco peñazo tener que estar tecleando eso cada vez que quieres conectarte a Internet. Para evitarlo (o sea, para que se enganchen automáticamente), hay que editar el fichero /etc/bluetooth/rfcomm.conf y dejarlo así:

#
# RFCOMM configuration file.
#
# $Id: rfcomm.conf,v 1.1 2002/10/07 05:58:18 maxk Exp $
#

rfcomm1 {
	bind yes;
	device 08:00:1F:2D:8B:4F;
	channel 2;
	comment "Conexion con Movil Nokia E71";
}

Con ello estamos metiendo el número de dispositivo (rfcomm1), la MAC y el canal en el fichero de configuración de rfcomm, con lo cual lo hará todo automáticamente.

Nota sobre Gentoo

Si estás usando UDEV, cosa que te recomiendo, edita además el fichero /etc/udev/rules.d/10-local.rules e introduce una entrada tal que así:

# Bluetooth USB Dongle
KERNEL="rfcomm*", NAME="%k", MODE="660", GROUP="usb"

Esto hará que los dispositivos /etc/rfcomm0 y /etc/rfcomm1 se creen siempre con permisos de acceso para el grupo usb. Asegúrate, naturalmente, de que todos los usuarioa que van a usar la conexión con el teléfono pertenecen a dicho grupo.

*

Bien, pues lo peor ya ha pasado. Ahora queda solo la parte fácil: conectarse a Internet. :-)

En esta sección vamos a hacerlo mediante un sistema de scripts. Pero si quieres hacerlo de forma más amigable, puedes usar también el programa "system-config-network" tal y como te cuento en otra sección de esta misma web. Si prefieres el script, que es lo que yo te recomiendo, puedes seguir leyendo a continuación. Y, concretamente, tienes dos posibilidades distintas: usar wvdial, o usar los scripts ppp. La primera opción es, con mucho, la más sencilla, pero eso ya depende de las ganas que tengas de complicarte la vida.

*

Es el modo más simple y el que te recomiendo yo. Solo tienes que asegurarte de que el usuario que va a conectarse está en el grupo dialout. Una vez hecho esto, tienes que editar el fichero /etc/wvdial.conf y dejarlo así:

[Modem0]
Modem = /dev/rfcomm1
Baud = 460800
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = CRTSCTS

[Dialer Vodafone3G]
Username = vodafone
Password = vodafone
Phone = *99***1#
Stupid Mode = 0
Init1 = ATZ
Init3 = ATZ
Inherits = Modem0

Naturalmente, las entradas "username", "password" y "phone" son los de tu compañía de teléfonos. Y la entrada "Modem" apunta al dispositivo Bluetooth.

Ahora tu usuario puede teclear el comando "wvdial Vodafone3G" y verás como se conecta.

Si, ya está. No mires con esa cara, que ya está. ¿Ves por qué lo recomiendo?. :-D

*

Solo hay que crear una configuración para el demonio pppd. Es muy fácil, una vez que sabes qué comandos de módem se necesitan. En el directorio /etc/ppp/peers crea tres ficheros tal que así:

El fichero /etc/ppp/peers/nokia-e71 debería ser:

#!/bin/sh
#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH. No precisa modificaciones para el Nokia E71
#salvo apuntarlo al dispositivo /dev/rfcomm1 o el que hayamos configurado.

debug
/dev/rfcomm1
460800
crtscts
modem
lock
receive-all
nopcomp
noaccomp
nomagic
noccp
novj
novjccomp
nodetach
noipdefault
defaultroute
usepeerdns
user vodafone
password vodafone
connect '/usr/sbin/chat -e -f /etc/ppp/peers/nokia-e71-connect -v'
disconnect '/usr/sbin/chat -e -f /etc/ppp/peers/nokia-e71-disconnect -v'

El fichero /etc/ppp/peers/nokia-e71-connect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH y Nokia E71.

'' AT
TIMEOUT 240
OK ATE0
OK ATV1
OK ATDT*99***1#
TIMEOUT 30
CONNECT ""

El fichero /etc/ppp/peers/nokia-e71-disconnect debería ser:

#El fichero original fue generado con el Generador de Scripts de
#GPRS Easy Connect para un Sharp GX20 y modificado por mí para
#adaptarlo al Sharp 703SH y Nokia E71.

SAY "\nDisconnect...\n"
"" "\K"
"" "+++ATH"
SAY "\nDisconnected.\n"

Ahora asegúrate de que estos tres ficheros tienen permisos de lectura para el usuario que ha de conectarse. Si no, solo podrás conectarte como root.

Vale, pues ya está. Ahora solo tienes que conectarte a Internet a velocidad 3G HDSPA (que es una velocidad de la leche). Abre una ventana de terminal y arranca la conexión. Para colgar el teléfono y cerrar la conexión solo tienes que pulsar Ctrl-C.

[root@lynette /home/lacofi]# exit
[lacofi@lynette ~]$ /usr/bin/pppd file /etc/ppp/peers/nokia-e71
AT
OK
ATE0
OK

OK

CONNECT
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm1
sent [LCP ConfReq id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x2 <auth chap MD5> <accomp> <pcomp>
  <asyncmap 0x0> <magic 0xdc84b0b5>]
sent [LCP ConfRej id=0x2 <accomp> <pcomp> <magic 0xdc84b0b5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x3 <auth chap MD5> <asyncmap 0x0>]
sent [LCP ConfAck id=0x3 <auth chap MD5> <asyncmap 0x0>]
rcvd [CHAP Challenge id=0x0
  <8d7ffc507bb24322(blablabla)9ce2163bc93ff41b1a22d41>, name = "Kermit"]
sent [CHAP Response id=0x0 <79913c26f3ae1f030ca92fc7fe50286c>, name = "vodafone"]
rcvd [CHAP Success id=0x0 "Congratulations!"]
CHAP authentication succeeded: Congratulations!
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
sent [IPCP ConfReq id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <addr 62.87.126.93> <ms-dns1 212.73.32.3> <ms-dns3 212.73.32.67>]
Could not determine remote IP address: defaulting to 10.64.64.64
local  IP address 62.87.126.93
remote IP address 10.64.64.64
primary   DNS address 212.73.32.3
secondary DNS address 212.73.32.67
Script /etc/ppp/ip-up started (pid 7180)
Script /etc/ppp/ip-up finished (pid 7180), status = 0x7

Esto significa que ya estás conectado a Internet. ¡Con un teléfono UMTS a velocidades HDSPA!. Abre Firefox y navega un poco, anda, si no me crees.

Si es la primera vez que lo haces, estate atento a la pantalla de tu móvil, porque aparecerá un mensaje diciéndote que un dispositivo desconocido está pidiendo emparejarse. Dile que sí. Luego te pedirá una contraseña. Ahí tienes que poner el PIN de 8 ó 10 cifras que habías puesto en el fichero /etc/bluetooth/pin. Esto solo tendrás que hacerlo la primera vez. Después, quedan ya emparejados para siempre con lo que puedes decirle a la configuración Bluetooth del teléfono que se oculte (cosa que te recomiendo encarecidamente), y puedes olvidarte del dichoso PIN.

Para colgar, solo tienes que volver a la ventana de terminal y pulsar Ctrl-C. La respuesta será algo así:

Terminating on signal 2.
Script /etc/ppp/ip-down started (pid 8112)
sent [LCP TermReq id=0x2 "User request"]
Script /etc/ppp/ip-down finished (pid 8112), status = 0x0
rcvd [LCP TermAck id=0x2]
Connection terminated.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.

Disconnect...

Disconnected.
Serial link disconnected.
Connect time 0.2 minutes.
Sent 80 bytes, received 56 bytes.
[lacofi@lynette ~]$ _

Y ahora llama al Servicio de Atención al Cliente de Vodafone y contrata un bono GPRS de datos, anda. En el momento de escribir estas líneas hay uno muy práctico de 200 Mb/mes por 25 euros. Elige el bono que más te convenga, pero hazme caso y no navegues a pelo, que te vas a pulir una pasta, creeme...

Y sobre todo que lo disfrutes... :-)

En VMWare solo puedo sincronizar mi Pocket PC una vez

Últimamente uso bastante las máquinas virtuales VMWare, sobre todo para sincronizar mi iPod con un Windows XP virtual. VirtualBox, en cambio, tiene muchos problemas, no solo con la iPod sino también con las PDA, así que VMWare es de momento la mejor opción porque maneja muy bien y muy rápido los puertos USB 2.0. Ya se que es políticamente incorrecto para un linuxero de pro, pero sinceramente os digo que no he encontrado ningún software Linux que iguale al iTunes, ni siquiera nuestro querido Amarok. Sobre todo para los locos que todavía compramos música de vez en cuando (compraría mucha más si me la dieran desprotegida, pero el iTunes Plus tiene una oferta muy baja por culpa de las discográficas). En fin... hay gente que todavía no se ha enterado de por dónde va el mercado. Apple sí, desde luego, pero no las discográficas. Pero es que ni p* idea, vamos.

Pero me estoy enrollando, como siempre. A lo que iba, que aprovechando que voy tirando de la máquina virtual, la estoy usando también para sincronizar la PDA (con lo que he abandonado SynCE, tal vez para siempre). Solo hay un problema: hay alguna incompatibilidad aún no corregida con los drivers usb_storage de Linux, que hacen que solo funcione bien si no hay ningún disco duro USB funcionando. Aun así, es muy posible que solo consigas sincronizar la PDA una vez. Si la desenchufas y luego la vuelves a enchufar, verás que ya no la reconoce. Solo lo hará de nuevo si apagas la máquina virtual y luego reseteas Linux, una medida demasiado drástica, creo yo.

Hombre, tampoco hay que llegar a eso. Puedes parchear el problema sin necesidad de rebotar el ordenador. Lo único que hay que hacer es desmontar los módulos problemáticos del kernel cada vez que desenchufes la PDA.

Haz la prueba. Enchufa tu PDA a la máquina virtual y deja que se sincronice. Ahora desenchúfala. Ahora abre una terminal Konsole o Gnome-terminal y desmonta los módulos que nos molestan:

 
[lacofi@jeanne lacofi]$ su
password: 
[root@jeanne /home/lacofi]# rmmod rndis_wlan
[root@jeanne /home/lacofi]# rmmod rndis_host
[root@jeanne /home/lacofi]# rmmod cdc_ether
[root@jeanne /home/lacofi]# rmmod usbnet
[root@jeanne /home/lacofi]# exit
[lacofi@jeanne lacofi]$

Ahora vuelve a la máquina virtual y enchufa la PDA otra vez. Esta vez debería ser reconocida de nuevo sin problemas. :-)

Uno de los usuarios deja colgada la pantalla al deslogarse

Hace poco me ocurrió una cosa curiosa, supongo que a raiz de uno de los numerosos cortes de luz que que están produciendo en la zona las obras de construcción del nuevo HUCA (me tienen frito con las subidas de tensión de las narices). Por cierto que cosas como ésta me han llevado a comprar un SAI para el ordenador con el que estoy bastante contento, pero esa es otra historia que tal vez te cuente en otro momento. ;-).

El caso es que, sin motivo aparente, uno de los usuarios del ordenador (concretamente el usuario "maria"), no podía deslogarse limpiamente. Cuando intentaba cerrar la sesión KDE, el ordenador terminaba todos los programas correctamente pero luego la pantalla se quedaba en negro y con un cursor parpadeando, con lo que no regresaba al cuadro de GDM para ofrecer otro login.

Como se supone que el usuario "maria" ya no está logado, lo que podemos hacer es salir a consola pulsando <Ctrl><Alt>F1. Una vez en consola nos logamos como root y hacemos un "ps -aux | grep maria", con lo que deberíamos ver exactamente qué programas del usuario deslogado siguen abiertos (se supone que no debería haber ninguno).

En mi caso, la salida de "ps -aux | grep maria" mostraba varios programas abiertos, la mayoría de ellos diferentes instancias de artsd, el servidor de sonido de KDE, y otras tantas instancias de "artsshell -q terminate", que asumo que son intentos fallidos de cerrarlo. Además, observé que quedaba abierto también "/usr/kde/3.5/bin/startkde", que es el script que arranca y termina KDE.

El siguiente paso es evidente: "kill -9 (numero)", siendo número el PID del script startkde. La respuesta del sistema fue reiniciar el sistema gráfico inmediatamente y mostrar de nuevo la pantalla de login GDM. Et voilá. :-)

Solo que cuando el usuario "maria" vuelve a logarse y deslogarse, vuelve a ocurrir. Una y otra vez. En cambio no ocurre nunca cuando me logo yo o root.

Vale. Algo sigue ahí tocando las narices. Pero solo al usuario maria, no a mí. Unas pocas pruebas más durante los cuelgues y observo que el sistema termina el cierre no solo matando startkde, sino también cualquiera de los procesos de artsd. Basta con matar uno cualquiera de esos programas para que el logout termine correctamente. Pero no soluciona el problema: la pantalla volverá a colgarse en cuanto maria vuelva a deslogarse.

¿Que puede estar tocando las narices solo a un usuario concreto?. Quizás un fichero temporal que no se borra y que crea alguna información contradictoria que el sistema no sabe interpretar. Quizás cree que hay más instancias abiertas de artsd de las que realmente hay, y se queda esperando como un idiota a que cierren.

No se lo que es, pero solo hay una forma de comprobarlo. Así que con el usuario maria deslogado entro en consola y me logo como lacofi. Miro dentro del directorio "/tmp/" y observo que hay varios subdirectorios que pertenecen a maria. Pero Maria no está logada, así que esos ficheros temporales no deberían estar ahí. Pueeees...

 

Bienvenido a jeanette
Login: lacofi
Contraseña: contraseña

Last login: Tue Jun 15 19:04:08 2008 from tty1
[lacofi@jeanne]$ su
Password: contraseña
[root@jeanne]# su maria
[maria@jeanne]$ ls /tmp/*
total 2,5M
drwx------ 2 lacofi personal 4,0K jun 17 16:12 gconfd-lacofi/
drwx------ 3 maria  users    4,0K jun 17 18:24 gconfd-maria/
drwxrwxrwt 3 lacofi personal 4,0K jun 17 01:46 gdl/
-rw------- 1 maria  users    850K jun 17 18:39 gdlinux-mso-tLE9yDP0
drwx------ 2 lacofi personal 4,0K jun 17 16:12 kde-lacofi/
drwx------ 3 lacofi personal 4,0K jun 17 16:12 ksocket-lacofi/
drwx------ 3 maria  users    4,0K jun 17 19:25 ksocket-maria/
drwx------ 2 lacofi personal 4,0K jun 17 16:12 orbit-lacofi/
drwx------ 2 maria  users    4,0K jun 17 18:26 orbit-maria/
drwx------ 2 maria  users    4,0K jun 17 18:24 ssh-tnVGJ22197/
drwx------ 2 lacofi personal 4,0K jun 17 19:32 v745199/
drwxrwxrwt 2 root   root     4,0K jun 17 00:59 VMwareDnD/
-rw------- 1 maria  users       0 jun 17 18:37 wv-lkOAiS
-rw------- 1 p2p    users    267K jun 17 03:26 arch_09773c.tmp
-rw------- 1 p2p    users    289K jun 17 00:59 arch_4d0d3e.tmp
-rw------- 1 p2p    users    276K jun 17 03:25 arch_b62c62.tmp
-rw------- 1 p2p    users    276K jun 17 00:59 arch_c9f86a.tmp
[maria@jeanne]$ rm -Rf /tmp/*
[maria@jeanne]$ exit
[root@jeanne]# exit
[lacofi@jeanne]$ ls /tmp/*
drwx------ 2 lacofi personal 4,0K jun 17 16:12 gconfd-lacofi/
drwxrwxrwt 3 lacofi personal 4,0K jun 17 01:46 gdl/
drwx------ 2 lacofi personal 4,0K jun 17 16:12 kde-lacofi/
drwx------ 3 lacofi personal 4,0K jun 17 16:12 ksocket-lacofi/
drwx------ 2 lacofi personal 4,0K jun 17 16:12 orbit-lacofi/
drwx------ 2 lacofi personal 4,0K jun 17 19:32 v745199/
drwxrwxrwt 2 root   root     4,0K jun 17 00:59 VMwareDnD/
-rw------- 1 p2p    users    267K jun 17 03:26 arch_09773c.tmp
-rw------- 1 p2p    users    289K jun 17 00:59 arch_4d0d3e.tmp
-rw------- 1 p2p    users    276K jun 17 03:25 arch_b62c62.tmp
-rw------- 1 p2p    users    276K jun 17 00:59 arch_c9f86a.tmp

Y con esto desaparecieron todos esos cuelgues misteriosos. Así que si te ocurre a tí, ya lo sabes. Échale un vistazo a tus ficheros temporales, no vaya a ser...

Por cierto, observa bien el detalle: la orden "rm -Rf /tmp/*" la doy como usuario maria (como el cambio lo hace root, no pide la contraseña). Lo hago así porque estoy usando a mi favor el sistema de permisos de linux, de tal forma que se borrarán única y exclusivamente los ficheros temporales que le pertenezcan al usuario maria. Los demás, continuarán intactos. Nunca, ¡NUNCA! des una orden de ese calibre como root, o sabe Dios lo que acabarás borrando. Hazme caso, por una vez. ;-)