Archivo de la etiqueta: obsoleto

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

En Gentoo, Mozilla Firefox solo aparece en inglés

Si instalas Firefox en tu Gentoo, descubrirás que no hace ni puñetero caso de los locales del sistema. Es decir, que aparece en inglés, y no en castellano, por muy bien configurado que tengas el sistema.

Buscar en Google cómo conseguir que funcione en Castellano no es tan fácil como parece, y a mí me ha costado un poquito de trabajo… para algo que al final es una chorrada.

Solo tienes que instalar Firefox al sistema tradicional Gentoo:

[root@jeanette:~]# emerge mozilla-firefox

Con esto se instala el programa original, en inglés. Ahora arrancamos el programa con nuestro login favorito, e instalamos la traducción del programa al castellano. Para ello, solo tenemos que acudir a la página Web del Proyecto NAVE, entrar en la sección de descargas, y hacer click con el ratón la extensión de idioma castellano, es decir, el fichero XPI adecuado a la versión de nuestro Firefox. Prestad atención, porque Firefox bloqueará la instalación con una advertencia (motivos de seguridad). Observad la advertencia justo debajo de la barra de marcadores y seguid las instrucciones que se indican para autorizar a que se instalen programas desde ESA página Web. Ahora volved a hacer click en el fichero XPI y ya no pondrá trabas. Una vez instalado, teneis que cerrar Firefox, y el idioma español estará activo la próxima vez que lo inicieis. Cada usuario del sistema es independiente, y deberá instalar la extensión de idioma desde su propio Firefox.

Este truco, de todas formas, está ya obsoleto. Firefox debería funcionar correctamente en castellano con una instalación normal. Pero ahí lo dejo por si acaso.

Tarjeta capturadora de televisión Pinnacle PCTV

Desde el día 27/1/2004, la tarjeta Pinnacle PCTV de color rojo con el chip sintonizador MT2050, ya funciona bajo Linux en mi ordenador. Primero el camino largo (suponiendo que seas un insensato que todavía usa un kernel de la serie 2.4). Para ponerla en marcha con esa antigualla de kernel, yo necesité todo lo siguiente (te lo pongo detallado para que veas la tortura que pasamos los primeros en usarla):

  1. Compilar y poner en marcha el kernel, claro. En mi caso, lo hice con el 2.4.24, pero podría ser cualquier otro. Lo único importante es que la tarjeta solo funcionará con un kernel compilado por tí. Al configurarlo, es muy importante que actives, como módulos (no dentro del kernel) al menos las siguientes opciones (quizás más, dependerá de tu hardware, así que echa un vistazo a las ayudas):
      I2C support -->
        I2C bit-banging interfaces
        I2C device interface
        I2C /proc inteface
      Multimedia devices -->
        Video For Linux
          V4L information in proc filesystem (esto dentro del kernel)
          BT848 Video For Linux
      Sound -->
        BT878 audio dma
        TV card (BT878) mixer support
  2. Bájate el último snapshot de Video4Linux que puedes encontrar en bytesex. Se trata del fichero «video4linux-unafecha.tar.gz». ¿Qué es un snapshot?, te puedes preguntar. Bueno, pues es una especie de borrador, que funciona, pero que el programador NO recomienda, aunque sí pone a disposición de los más osados. Es mucho menos que una Beta, pero mucho más que nada. Si te da problemas, intenta el mismo snapshot que utilicé yo, el del 26 de Enero de 2004. :-)
  3. Este snapshot, lo que hace es compilar módulos de kernel. No necesita configurarse (por ejemplo con una orden «./configure», como ocurre habitualmente). El motivo es que la configuración la toma directamente de /usr/src/linux, de la que se hizo al compilar el kernel. Por eso es tan importante que sea con un kernel compilado o al menos configurado con «make menuconfig»: si no, saltarían todos los «unresolved symbols» y al carajo. Bueno, pues a compilar el snapshot.
    [lacofi@claudia:~]$ su
    password
    [root@claudia:/home/lacofi]# cd /usr/src
    [root@claudia:/usr/src]# tar -xzvf ~/video4linux-20040126.tar.gz
    [root@claudia:/usr/src]# cd video4linux
    [root@claudia:/usr/src/video4linux]# make
  4. Esto empieza a compilar los módulos. Observad que he hecho «make» y no «make install». Efectivamente, solo vamos a necesitar tres ficheros (puede que solo dos de ellos, si me apuras). Así que es preferible no toquetear demasiado los módulos de nuestro magnífico kernel, para cambiarlos por los de un snapshot. De hecho, yo hice un «make install» y me arrepentí bastante (el resultado fue peor). Por eso, solo copiaremos esos tres archivos, los justos para que la cosa funcione. Así que nada, nada, cuando termine de compilar, tenemos que copiar los ficheros tuner.o tda9887.o y tvaudio.o al directorio donde nuestro kernel guarda los suyos.
    [root@claudia:/usr/src/video4linux]# mods=/lib/modules/2.4.24-kaldef
    [root@claudia:/usr/src/video4linux]# video=/kernel/drivers/media/video
    [root@claudia:/usr/src/video4linux]# cp tuner.o $mods$video && \
    > cp tda9887.o $mods$video && \
    > cp tvaudio.o $mods$video
    [root@claudia:/usr/src/video4linux]# modprobe bttv ;; scantv

¿Eh?. ¿Qué me dices?. :-D

Pues si no dices nada, yo te voy a decir otra cosa. Falta el camino rápido: Anda, sé sensato y no te sigas esforzando con los kernel 2.4. La tarjeta pinnacle PCTV está correctamente soportada en cualquier kernel 2.6 medianamente moderno. Así que corre y actualízate al último kernel 2.6 que puedas y ya está. Compílalo activando Video4Linux y BT848, y eso es todo.

Tras actualizar unas librerías, no oigo sonidos de sistema en KDE

Ya está. Ya lo has roto. ;-)

Lo digo en serio, ¿eh?. :-D

A ver, te cuento lo que me pasó a mi. Resulta que me bajé dos programas de base de datos, Knoda y Rekall. Ambos hay que compilarlos, pero tienen unas dependencias bastante puñeteras. Total, que «actualicé» unas cuantas librerías y paquetes (sobre todo del grupo KDE y de la sección «devel»).

Bien, Knoda y Rekall se compilaron, sí. Pero a partir de ahí empezaron a surgir problemas, todos ellos relacionados con el sonido. Los síntomas principales eran estos, todos ellos bastante sorprendentes:

  1. KDE arranca sin el habitual sonido «KDE_Startup.wav».
  2. No se oye absolutamente ningún sonido del sistema (ventanitas al abrirse, ventanitas al cerrarse).
  3. Sin embargo, puedo abrir ir al «menú K» y abrir cualquier programa de audio (noatun, kaboodle…) y escuchar cualquier mp3 y ogg de mi colección sin ningún problema. También puedo ejecutar noatun y kaboodle en ventana de comandos; y funcionan, pero sacan un curioso mensaje de error que dice «mcop warning: user defined signal handler found for SIG_PIPE, overriding».
  4. Curiosamente, ya no puedo arrancar noatun ni kaboodle pulsando los iconos del escritorio. Sale un mensajito que dice que KDEinit no pudo ejecutar «noatun», por ejemplo. Pero si, con el botón derecho del ratón, abro las propiedades del icono, puedo poner como ejecutable «/usr/bin/noatun» en vez de «noatun». Entonces, sí arranca. Pero siguen apareciendo los mensajitos de error «KDEinit no pudo ejecutar «noatun».
  5. Si abro Konqueror y me voy a los directorios donde guardo los mp3 y ogg, ocurre lo mismo. Si pulso en un ogg me salta la misma ventanita de error, solo que dos veces seguidas. Puedo modificar los patrones de MIME para que incluya la ruta «/usr/bin/kaboodle» en vez de «kaboodle» con lo que sí arranca. Pero siguen apareciendo los dos mensajitos de error, uno detrás de otro.
  6. Abro el Centro de Control de KDE y reviso toda la configuración del audio. Está correcta, exactamente igual que estaba la última vez que la modifiqué. Pero, curiosamente, cuando pulso los botones de prueba para escuchar los sonidos asignados a cada evento, no se oye nada.
  7. Abro una ventana de comandos xterm y tecleo un comando «killall artsd». Ejecuto «artsd» en la misma ventana de comandos, con lo que me salen en pantalla todos los mensajes de log. Los log de artsd indican que todo está funcionando bien.
  8. Abro otra ventana de comandos distinta para no interferir con los logs de la primera. En ese otro shell ejecuto un glorioso «artscat /usr/share/sounds/KDE_Startup.wav». El sonido se oye perfectamente y la primera ventana de comandos vomita un log en el que identifica claramente el sonido que estoy escuchando. Lo mismo ocurre cuando ejecuto un «play /usr/share…».
  9. Abro, cierro, maximizo, minimizo y restauro unas cuantas ventanas del escritorio. Los logs de artsd ni se inmutan… es como si no hubiera hecho nada. ¡La leche, artsd funciona perfectamente, el culpable es el KDE, que no consigue comunicarse con el demonio de sonido!.
  10. Salgo de KDE y de todo X Window (o sea me cambio de telinit, vaya, que todo hay que decirlo), me voy a una consola (no un terminal X, sino una verdadera consola). En mi home ejecuto un «rm -Rf .mcop* .DCOP*». Me vuelvo root y ejecuto un «rm -Rf /tmp/*». Rearranco X Windows y que si quiés arroz, Catalina. Que no, que seguimos sin sonidos del sistema.
  11. A la desesperada, creo un usuario llamado «tralarí» y con contraseña «chinpón», para que le instale el escritorio KDE por defecto. Lo mismo mismito. El error es mucho más profundo que eso. No es un fallo de configuración, sino un error del propio KDE, concretamente de lo-que-sea que se encargue de comnunicarle los eventos al demonio de sonido (artsd). La única conclusión lógica es que me lo he cepillado con las últimas «actualizaciones». Que lo he roto, vamos. Después de hecha la prueba, borro el usuario «tralarí», por supuesto. ;-)

¿Y la solución?

Pues deshacer el camino andado es la leche. Porque vete tu a saber cual es la librería dañada, y hay que desinstalar cosas, reactualizar paquetes pero a la inversa (con las versionas antiguas, no las nuevas…). Mi madre, también podría recurrir a las copias de seguridad, pero no me hace ninguna gracia meterme en ese berenjenal por los eventos de sonido, que mira tú lo que me importan. Tiene más importancia lo de Konqueror, no por mi, que me la refanfinfla… pero a mi santa esposa no le gusta la informática, a ella lo que le va es que haciendo «click» se oiga la canción y punto. Pobrecita, y yo haciendo trastadas :-D.

Ya. ¿Y la solución?

Pues la «huida hacia delante», claro. Es un buen momento para actualizar TODO el KDE. Qué demonios, es buen momento para actualizar TODO Woody. Al fin y al cabo, KDE es el escritorio por defecto de María. Y el mio también, que hace tiempo que no toco Window Maker. Además, hace mucho que ha salido ya la versión 3.2

Hala, venga. Nos vamos a /etc/apt/sources.list y cambiamos la línea que dice:

deb http://download.at.kde.org/pub/kde/stable/3.1/Debian stable main

por esta otra:

deb http://download.at.kde.org/pub/kde/stable/3.2/Debian stable main

Y luego los consabidos:

[15:05:21/0][root@claudia:~]# apt-get update ;; apt-get upgrade

Eso sí. Hay librerías rotas (era esperable, ¿verdad?). Así que el upgrade es tormentoso y advierte que hay muchos librerías que han sido «keep back» (dejadas atrás). Algunas de esas librerías se refieren al sistema de sonido de KDE (eeeeh, ¿lo has visto?… te pillé). No pasa nada, cuando «apt-get upgrade» se detiene, hago un «apt-get install» manual contra uno de esos paquetes dejados «keep back». Si esto falla por alguna otra dependencia, hago un «dpkg –remove paquete» contra ella y vuelvo a intentarlo. Después, reintento el «apt-get upgrade» y continúo así una y otra vez, hasta dejar todos los paquetes disponibles a cero.

La pregunta que te estás haciendo ahora es… ¿Solucionó esto el problema?.

Sí. Por completo. X-D

Al arrancar KDE 3.2 sale un mensaje «Could not start KDEinit»

Al logarme para entrar en mi nuevo KDE 3.2 sale un estúpido mensaje que dice «Could not start KDEinit. Check your installation». Y la barra de progreso de KDE se detiene hasta que pulso «Okay». Luego, KDE arranca normalmente y funciona muy bien (y es precioso, además ;-) pero cuando deslogo, aparece un mensaje de crash diciendo que KNotify se ha ido al carajo. Afortunadamente, solo dura unos segundos y luego desaparece sola y se desloga normalmente.

Sorprendente, ¿verdad?. Mensajes de error haciendo referencia a no-se-qué porque lo cierto es que KDE 3.2 funciona a la perfección. :-?

Bien, la verdad es que esto se debe a un bug gordo, gordísimo, en el script /usr/bin/startkde. Es tan gordo y evidente que se merece solo un capón y unas risas, porque es como un matemático que después de una larga fórmula de integrales, escribe en la pizarra 2+2=5.

Vale, pues edita con cualquier editor de textos el archivo /usr/bin/startkde. Alrededor de la línea 164, donde pone:

LD_BIND_NOW=true kdeinit +kcminit +knotify
if test $? -ne 0; then
	# Startup error
	echo 'startkde: Could not start kdeinit. Check your installation.'  1>&2
	xmessage -geometry 500x100 "Could not start kdeinit. Check your installation."
fi

Debe poner (fijaos en las dos primeras líneas):

LD_BIND_NOW=true 
kdeinit +kcminit +knotify
if test $? -ne 0; then
	# Startup error
	echo 'startkde: Could not start kdeinit. Check your installation.'  1>&2
	xmessage -geometry 500x100 "Could not start kdeinit. Check your installation."
fi

¿Habeis visto?. Se les olvidó un <Enter> X-D

Pues ya está. Cambiando eso, el bug está resuelto.

Arrancar una segunda sesión gráfica

Este truco también está obsoleto. La mayoría de las grandes distribuciones Linux incluyen por defecto en el menú principal alguna forma de abrir una segunda sesión gráfica. Pero siempre hay excepciones, claro.

Supongamos que tenemos nuestro escritorio favorito abierto y que hay un programa corriendo que no queremos detener (por ejemplo, estamos bajando un fichero muy grande que no nos interesa cortar). Pero alguien (por ejemplo María) necesita el ordenador precisamente ahora. ¿Podemos iniciar un segundo login gráfico para que pueda entrar en su escritorio?.

Hay muchar formas, por ejemplo ésta: Pulsamos Ctrl-Alt-F1, con lo que nos salimos a una consola. Ahora nos logamos y tecleamos el siguiente comando:

Debian GNU/Linux 3.0 claudia tty1

claudia login: lacofi
Password:
Last login: Wed Sep 10 02:53:12 2003 on :0
Linux claudia 2.4.18 #1 Son Apr 14 09:53 CEST 2002 i686 unknown
You have new mail.
[lacofi@claudia lacofi]$ xinit /usr/bin/wmaker -- :1

Pues ya está. Es así de tonto. Ahora arrancará un segundo escritorio gráfico, y podemos cambiar de uno a otro pulsando Ctrl-Alt-F7 o Ctrl-Alt-F8. Cuando terminemos, solo tenemos que salir del escritorio o, si queremos matarlo, salir a la primera consola (Ctrl-Alt-F1) y pulsar Ctrl-C.

Y si quereis rizar el rizo, podeis automatizarlo todo con este script:

-----------Inicio del script "entrada" -------------
#!/bin/sh

if tty | grep "/dev/tty" ; then
   	ejecuta="si"
else
   	ejecuta="no"
fi

if [ "$1" = "" ]; then
   	case "$UID" in
      	501)
         	escritorio="/usr/bin/wmaker"
         	;;
      	502)
         	escritorio="/usr/bin/startkde"
         	;;
      	0)
         	escritorio="/usr/bin/blackbox"
         	;;
      	*)
         	echo "No se quién eres, no deberias usarme. ;-)"
		ejecuta="no"
         	;;
   	esac
else
   	escritorio="$1"
fi
if [ "$ejecuta" = "si" ]; then
	xinit $escritorio -- :1
   else
   	 echo "Esta función solo arrancará desde una consola,"
	 echo "y solo por lacofi, maria o root."
	 echo "Abortado"
   fi
-----------Final del script "entrada" -------------

Ahora, una vez logados en la consola, solo tenemos que ejecutar el script «entrada». Si no especificamos nada más, el script decidirá, según quién lo ejecute, con qué escritorio arranca. Cada usuario, con su escritorio favorito: por ejemplo yo con Window Maker, María con KDE, y root con Blackbox.

Impresora HP DeskJet 895Cxi

Este truco está obsoleto. La impresora HP DeskJet 895Cxi está soportada por cups, de forma plena, en cualquier Linux medianamente actualizado. Pero puede que aún quede por ahí alguien con un sistema antiguo, ¿quién sabe?.

Esta impresora puede funcionar de varias formas, de hecho la tuve durante mucho tiempo funcionando como una DeskJet 550C, lo que me permitía hacer todo cuanto necesitaba.

En aquel momento no existía ningún driver para esta impresora en Linux. Al principio surgieron diferentes drivers que permitían hacerla funcionar, al menos en parte, pero al final, el que me daba menos problemas era el de la 550C. Luego encontré turboprint, un driver que me permitía algunas cosas más prácticas, como usar el modo «draft» de la impresora (ahorra tinta e imprime a una velocidad endiablada, con una calidad que es suficiente para texto puro).

Solo que Turboprint era un driver comercial, no código abierto. Y pagar por un simple driver para una impresora… me parecía una exageración, la verdad. Así que seguí usando el de la DeskJet 550C, salvo para el modo draft (que no precisa comprar la licencia).

Más tarde, la propia Hewlett Packard sacó un driver linux para esta impresora (y reunió información para ella y para otros dispositivos HP, lo que supone una buena muestra de la profesionalidad de Hewlett Packard). El driver permite hacer impresiones draft, normales y en calidad fotográfica.

El único problema es que la información sobre cómo usar el driver estaba muy dispersa, pero se podría resumir así:

Nos vamos a la página de HP donde tienen el driver Luego nos vamos a la página de linux donde tienen el filtro y pulsamos en el enlace «download PPD». Con esto nos bajamos un fichero que renombramos a «HP-DeskJet_895C-hpijs.ppd». ¿Ya está?.

Bueno, pues ahora hay que instalar el driver:

[lacofi@claudia lacofi]$ tar -xzf hpijs-1.4.1.tar.gz
[lacofi@claudia lacofi]$ cd hpijs-1.4.1
[lacofi@claudia hpijs-1.4.1]$ su
password:
[root@claudia hpijs-1.4.1]# ./configure ; make ; make install

Cuando termine, el driver debería quedar compilado. Lo comprobamos:

[root@claudia hpijs-1.4.1]# exit
[lacofi@claudia hpijs-1.4.1]$ cd
[lacofi@claudia lacofi]$ hpijs -h

Hewlett-Packard Co. Inkjet Server 1.4.1
Copyright (c) 2001-2003, Hewlett-Packard Co.

Como vemos, el driver nos está contestando, así que funciona. Vale. Ahora hay que instalar el filtro.

	[lacofi@claudia lacofi]$ su
	password
	[root@claudia lacofi]# mv HP-DeskJet_895C-hpijs.ppd\
	> /usr/share/cups/model/HP/.
	[root@claudia lacofi]# killall -HUP cupsd

Con esta última orden reiniciamos el servidor CUPS. Ahora abrimos nuestro navegador web y nos vamos a la dirección http://localhost:631 y pulsamos en «Manage Printers».

¿Ya?. Pues ahora pulsamos en «Add printer» y nos pide el nombre de usuario y la contraseña. Nos identificamos como root, claro. :-)

Ahora cubrimos el formulario:

Name: DeskJet_895
Location: /dev/lp0
Description: Impresora local

Y pulsamos en «continue». Desplegamos la lista y elegimos el puerto «Parallel port #1 (HEWLETT-PACKARD DESKJET 895C)». Pulsamos «continue».

En Make, buscamos en la lista y elegimos «HP» y pulsamos «continue».

En Model/Driver buscamos en la lista y elegimos donde pone: «HP DeskJet 895C, Foomatic + hpijs (recommended) (en)» y después pulsamos «continue».

Debería decirnos que nuestra impresora ha sido añadida. :-) Pulsamos en «Printers» y deberíamos verla. Si ahora pulsais en «Configure Printer» podeis elegir la calidad de impresión y otras cosas como el tamaño del papel. También podreis elegirlo cuando imprimais, usando xpp o qtcups como colas de impresión.

Como ya dije antes, este truco está totalmente obsoleto. Hoy en día los drivers de Hewlett Packard están totalmente integrados en las distribuciones linux a través del paquete hplip, que incluye los drivers hpijs en los que está incluida nuestra impresora HP Deskjet 895Cxi. Por cierto, que aún la tengo instalada y funcionando en mi ordenador, y eso que también tengo una excelente HP Deskjet 6840 con conexión WiFi, que es la que usamos habitualmente.

Chequear si tu sistema soporta el euro

En una terminal, teclea el comando «euro-test». Este programita te sacará en pantalla el símbolo del euro y te pedirá que pulses AltGr+e para comprobar si el resultado es dicho símbolo. No hace nada más. Lo sorprendente es que alguien se haya molestado en hacer un programa informático para esto, ¿no?. ;-)

Ya no veo esta aplicación en los repositorios de Gentoo, así que es posible que haya desaparecido del mapa. Pero te juro que existió, y que yo lo he visto con estos ojitos.

Aspell no funciona en castellano, pero sí en inglés

Este problema me salió a mi, y es bastante curioso porque te da un mensaje de error que no te orienta en absoluto. De hecho, te despista.

Intentaba ejecutar aspell con otros programas (concretamente con sylpheed-claws, el lector de correo), como corrector ortográfico, pero me decía que tururú, que no encontraba «el fichero». Probé a ejecutar gaspell me dijo que no encontraba el fichero «/usr/lib/ispell/espa~nol». Sin embargo tanto sylpheed como otros programas que usasen corrector ortográfico, funcionaban sin problemas cuando les decía que usaran el diccionario inglés.

Vale, el siguiente paso fue intentar ejecutar aspell «a mano». El resultado fue el mismo:

	[lacofi@claudia lacofi]$ aspell check fichero_prueba.txt
	Sorry, I can't read the file "/usr/lib/ispell/espa~nol."
	[lacofi@claudia lacofi]$ ls /usr/lib/ispell/espa~nol*
	-rw-r--r--    1 root     164k feb  7  2002 /usr/lib/ispell/espa~nol.aff
	-rw-r--r--    1 root     2.4M feb  7  2002 /usr/lib/ispell/espa~nol.hash
	[lacofi@claudia lacofi]$ ls /usr/lib/ispell/*.
	ls: /usr/lib/ispell/*.: No existe el fichero o el directorio

Imposible. Los ficheros existen, y son perfectamente accesibles. Tampoco se trata de un problema de extensión (que no los encuentre por la extensión «.aff» o «.hash»), puesto que los demás diccionarios también las tienen, incluyendo el inglés (que funciona). Es más, no hay ningún fichero sin extensión en ese directorio así que el diccionario castellano está igual de bien configurado que los demás. Aún más misterioso: si comprobamos el programa «ispell», veremos que  funciona, en castellano y en servocroata, si se lo pides. Entonces, ¿qué falla?.

Pues resulta que el fallo no está ahí. Está aquí:

	[lacofi@claudia lacofi]$ su
	password
	[root@claudia lacofi]# cd /usr/share/pspell
	[root@claudia pspell]# cat es-aspell.pwli
	/usr/lib/ispell/espa~nol
	[root@claudia pspell]# echo /usr/lib/aspell/es > es-aspell.pwli
	[root@claudia pspell]# cat es-aspell.pwli
	/usr/lib/aspell/es
	[root@claudia pspell]# exit
	[lacofi@claudia lacofi]$

Si echais un vistazo al directorio /usr/lib/aspell vereis que es ahí donde están los diccionarios correctos, y que el español se llama «es», no «espa~nol». Una vez cambiado ese fichero, aspell podrá encontrar el diccionario y funcionará sin problemas. Por lo menos, a mí me funciona. ;-)

Firestarter y los dichosos «hits»

Este fue uno de mis mayores quebraderos de cabeza. Si arrancas el cortafuegos «Firestarter», te encontrarás, cada vez que salgas a consola, con que ésta se te llena continuamente de basura, o sea, de salidas log procedentes del dichoso cortafuegos.

Por un lado, no quieres perder firestarter (es cómodo y útil), pero por el otro, la consola se vuelve una casa de locos por culpa de los hits. ¿Qué hacer?.

Pues los hits desaparecen de la consola simplemente tecleando como root el comando:

	[root@claudia lacofi]# dmesg -n1

Si no quieres tener que teclearlo cada vez que enciendes el ordenador, puedes hacer como yo y crear en /etc/rc.boot (o /etc/conf.d o el directorio equivalente en tu distribución) un fichero llamado 01-dmesg, con permisos de lectura y ejecución para root.root y que contenga:

	#! /bin/sh
	#       /etc/rc.boot/01-dmesg
	#       Ajustes para reducir mensajes en consola
	#

	dmesg -n1

Lo que hace esta orden (si consultas «man dmesg») es cancelar todos los mensajes del kernel en consola, excepto los de la clase «kernel panic». Ojo, lo que estás cancelando es la salida por consola, no el registro de los mensajes, que continuarán almacenandose normalmente en los archivos de /var/log. Si quieres eliminar también el registro de los hits en /var/log, tendrás que cambiar el fichero /etc/syslog.conf que está decentemente comentado. Eso sí, hacer esto último significará perder todos los mensajes del grupo warning, por lo que no te lo recomiendo.

Si no te interesa cancelar todos los mensajes del kernel en consola (con dmesg -n1), sino solo los del cortafuegos, puedes utilizar este otro truco: edita el fichero «/etc/firestarter/firewall.sh» y alrededor de la línea 86 encontrarás una entrada que dice así:

	$IPT -A LD -j LOG

Bueno, pues puedes cambiar esa línea y añadir lo que está en cian para dejarla así:

	$IPT -A LD -j LOG --log-level 6

Nuevamente, estás cancelando solo la salida por consola, pero no el almacenamiento de los hits en los ficheros de log. Naturalmente, con esto ya no debería ser necesario usar lo de «dmesg -n1».