Luis Angel Cofiño

Trucos Linux

Sección Doce





Secciones

Índices

  1. 01/08/2008: Quiero integrar mi iPod Nano 3G con Amarok
  2. 31/07/2008: Desde que actualicé mi VMWare no puedo hacer un apagado limpio
  3. 21/07/2008: ¿Puedo conectar el portátil a un móvil Nokia E71?
  4. 29/06/2008: En VMWare solo puedo sincronizar mi Pocket PC una vez
  5. 17/06/2008: Uno de los usuarios deja colgada la pantalla al deslogarse.

  * *

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 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.

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

*

Conexión entre el teléfono y el ordenador

*

Estableciendo una conexión USB entre Linux y el teléfono

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. :-)

*

Estableciendo una conexión Bluetooth entre Linux y el teléfono

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.

*

Conectarse a Internet

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.

*

Conectarse a Internet usando wvdial

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

*

Conectarse a Internet usando ppp

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. ;-)


  • Sintaxis HTML 4.01 comprobada
  • Enlaces comprobados


Hecho con gvim * Hecho con CSS