Archivo de la etiqueta: Linux

Instalación DNI electrónico en Debian 5.0 AMD64

Bueno, parece que el DNI electrónico está dando algún que otro problemilla al instalarse… de hecho, no he encontrado equipo ni en Windows ni en Linux que funcione tras haber seguido por completo la guía del gobierno. En este caso, la instalación se va a realizar sobre una Debian 5.0 AMD64, pero para la distribución de 32 bits el procedimiento debería ser parecido. Para empezar, necesitaremos dos ficheros de la web oficial (http://www.dnielectronico.es):

  • Los módulos criptográficos para Debian/AMD64. Se encuentran en el Área de descargas > Sistemas GNU/Linux y MacOS > Software para las distribuciones Linux > opensc-dnie_1.4.6 > Arquitectura_64bits > Debian_Lenny-64bits.
  • El certificado raíz de la policía. Está en Área de descargas > Certificados x509 > AC Raíz y bajamos el certificado sha256.

Una vez que los tengamos, el procedimiento de instalación sería algo así:

  • Lo primero, se descomprime en un directorio temporal el certificado raíz y los módulos criptográficos:
    unzip ACRAIZ-SHA2.zip
    tar -xvf Debian_Lenny_opensc-dnie_1.4.6-2_amd64.deb.tar
  • Instalamos pcscd y libltdl3. Sus dependencias instalarán la mayoría de los paquetes que nos harán falta, y además el lector no parece funcionar sin pcscd (esto NO viene mencionado en la guía de instalación).
    apt-get install pcscd libltdl3
  • Después, borramos (si hubiera) otros módulos de opensc. Esto es muy importante, ya que los paquetes más modernos no funcionarán.
    apt-get --purge remove libopensc2 opensc opensc-dnie
  • Procedemos a la instalación de los módulos criptográficos mediante dpkg.
    dpkg -i libopensc2_0.11.7-7_amd64.deb
    dpkg -i opensc_0.11.7-7_amd64.deb
    dpkg -i opensc-dnie_1.4.6-2_amd64.deb

Después de esto, el lector debería ya estar operativo.  Lo podemos confirmar usando opensc-tool -l (para que nos liste los lectores instalados) y opensc-tool --reader (nos dará el número de serie del DNI electrónico). Si en algún paso da error, es que alguno de los paquetes no está instalado. Los errores que he visto yo han sido causados por no tener instalado pcscd y porque las versiones de opensc no son las debidas (me sigo preguntando por qué no funcionan las más recientes).

Como hemos visto al instalar opensc-dnie, se nos indica que ejecutando cierto programa Firefox estará ya preparado para operar con el lector. Ni caso. Es una mentira más, no me ha funcionado nunca. Los pasos para que Firefox funcione son los siguientes:

  • Instalar el certificado de la policía. Iniciamos Firefox y vamos a Editar > Preferencias > Avanzado > Cifrado > Ver Certificados. Ahí elegimos Autoridades y pulsamos sobre el botón de Importar. Elegimos el fichero .crt que hemos conseguido, marcamos todas las casillas de la ventana que aparece y le damos a Aceptar. En la lista de autoridades debería aparecer una entrada de la DIRECCION GENERAL DE POLICIA. Cerramos el administrador de certificados.
  • Instalar el módulo criptográfico. En la misma pestaña de Cifrado, pulsamos sobre el botón Dispositivos de seguridad y sobre el botón Cargar. En nombre del módulo escribimos DNI electrónico, y en archivo del módulo elegimos /usr/lib/opensc-pkcs11.so (o lo buscamos con el navegador). Aceptamos todo y reiniciamos el navegador.

Si todo ha ido bien, la siguiente vez que vayamos al administrador de certificados nos pedirá el PIN del DNI electrónico. Una vez introducido, podremos ver en la lista de certificados los dos certificados asociados a nuestro DNI. Ya solo quedan los últimos detalles.

Para que todo esto funcione, le hemos suministrado unos paquetes con unas versiones muy concretas de opensc y libopensc2. Cuando actualicemos la distribución, va a intentar actualizar esos paquetes, con lo que el DNI electrónico dejará de funcionar. Para evitarlo, debemos bloquear esos paquetes. Un método como cualquier otro es soltarle estas tres instrucciones:

  • echo libopensc2 hold | dpkg --set-selections
  • echo opensc hold | dpkg --set-selections
  • echo opensc-dnie hold | dpkg --set-selections

Esto evitará que apt-get actualice los paquetes. En caso de que se publiquen nuevas versiones, bastará con bajarlas de la página oficial e instalarlas con dpkg (aunque no sé si al hacerlo se retirará la marca de “hold” de los paquetes).

Anuncios

Compilando parcialmente el kernel de linux

Esta semana he estado maldiciendo un poco mi suerte con los gamepad. Después de la muerte súbita de dos cacharros, he estado haciendo experimentos con la vibración… para darme cuenta de que pocos dispositivos la soportan. Los dispositivos logitech están bastante bien soportados, pero personalmente me parecen blandurrios, y no creo que vuelva a comprar ninguno.

Así que mangoneando un poco en los fuentes del núcleo, vi que hacer la modificación para que mi gamepad estuviera soportado era fácil (al fin y al cabo, hay un fichero que casi los controla… sólo hace falta añadir mis dispositivos). El problema vino después cuando quise compilar mis cambios. Lo que yo quería hacer era:

  • Compilar únicamente los módulos modificados, o la rama correspondiente.
  • Compilar los módulos contra el kernel instalado en mi equipo… un kernel Debian de serie (así mis modificaciones podrían servir para otros equipos sin recompilar).

Los módulos que quería modificar pertenecían a la parte que lleva el HID. El procedimiento que he seguido ha sido el siguiente:

  1. Bajar las fuentes del kernel actual y descomprimirlas
  2. Ir al directorio de las fuentes
  3. Copiar el fichero de configuración del kernel actual (habitualmente en /boot; en mi caso cp /boot/config-2.6.29-2-amd64 .config ).
  4. Copiar la información de símbolos de los módulos ( cp /lib/modules/2.6.29-2/build/Module.symvers . ).
  5. Obtener la versión del núcleo y modificar Makefile para que sea igual a la del instalado.
  6. Preparar la compilación de los módulos (make prepare ;  make prepare_modules)
  7. Compilar los módulos elegidos. Se hace con make M=(modulos)

Hay que tener en cuenta que sólo los pasos 1, 2, 6 y 7 son necesarios si el kernel que se ha compilado es “propio”. Los pasos 3, 4 y 5 son necesarios para asegurarse de que los módulos correrán en el mismo kernel que tiene en ese momento la máquina. Es útil cuando se recompilan módulos en una máquina que no se puede reiniciar, o se compilan módulos para distribuir a otros equipos.

También hay que tener en cuenta que en algún lugar entre el paso 2 y el 3 se deberían haber editado/parcheado los ficheros que queremos modificar. En mi caso, las instrucciones fueron las siguientes (marco a qué paso corresponde cada una):

  • 1) apt-get install linux-source-2.6.30
  • 1) cd /usr/src
  • 1) tar -jxvf  linux-source-2.6.30.tar.bz2
  • 2) cd /usr/src/linux-source-2.6.30
  • 3) cp /boot/config-2.6.30-1-amd64 .
  • 4) cp /lib/modules/2.6.30-1/build/Modules.symvers .
  • 5) uname -r
  • 5) nano Makefile (más acerca de esto abajo)
  • 6) make prepare
  • 6) make prepare_modules
  • 7) make M=drivers/hid

Acerca de la edición del fichero Makefile:

El fichero Makefile debe ser editado para que la versión sea idéntica a la de nuestro kernel (o el módulo no se cargará). Esto es importante porque muchas distribuciones (Debian, RedHat y compañía) suelen añadir “sufijos” a sus versiones propias del kernel. El comando uname -r nos dará la versión completa del kernel. En el caso de mi Debian, uname escupió (atentos al coloreado, que es importante):

2.6.30-1-amd64

En esta versión coloreada, podemos ver los tres números principales de versión del kernel (rojo, verde y fucsia) y, sobre todo, la información extra del kernel (azul). Esta es la que varía de distribución a distribución. Al editar Makefile, veremos que comienza con las siguientes líneas:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 30
EXTRAVERSION =
NAME = Man-Eating Seals of Antiquity

Nuestra labor será alterarlas para que la versión coincida completamente. Esto significa dejar el Makefile de esta manera:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 30
EXTRAVERSION = -1-amd64
NAME = Man-Eating Seals of Antiquity

Con esto y un poco de suerte, la compilación parcial debería realizarse correctamente. En caso de que los módulos no carguen, dmesg nos dará una razón (probablemente algún problema con la configuración o versión). Si los módulos se compilan y se insertan bien, pero no se comportan como deberían (vamos, que las modificaciones que se les habían hecho no son buenas), para recompilar habría que repetir únicamente el paso 7.

Qué hacer con las memorias USB “obsoletas”

Como decía en otro post, las memorias USB no son un invento nuevo, y creo que todos hemos tenido unas cuantas ya. Algunas las hemos ido “jubilando”, debido a que 256 megas no son gran cosa hoy en día, o eso nos parece. También nos encontramos de vez en cuando con alguien que nos regala una memoria publicitaria, que no suele destacar por su gran capacidad. Como no es cuestión de llevar encima varias memorias USB, el futuro de estas suele ser coger polvo en un cajón olvidado.

Pues la verdad… es que hay cositas muy interesantes que se pueden hacer con estas memorias. Podemos llevar nuestro navegador favorito, usarlas como herramientas de diagnóstico o llevarnos alguna distribución Linux. O convertirla en una asesina de placas madre… todo es posible. Mis recomendaciones:

  • Damn Small Linux: Una de las distribuciones Linux con escritorio más pequeñas que existen. Sus autores proclaman que jamás crecerán más allá de los 50 megas. Tiene herramientas para hacer el trabajo de oficina normal y navegación. Requiere una memoria de 64 megas, recomiendo una de 128 (para tener espacio para datos).
  • Puppy Linux: Otra minidistribución Linux. Personalmente, la veo más completa y fácil de usar que DSL; y es fácilmente ampliable. El mínimo serían 128 megas, pero recomiendo al menos una memoria de 256 megas.
  • GeeXboX: Una distribución Linux especializada. Más bien es un completo mediacenter que cabe en sólo 32 megas.
  • Hiren’s Boot CD: Un completo CD con herramientas para particionado, clonado, diagnóstico, información de hardware, antivirus… casi todo lo que un técnico puede necesitar está aquí. Lo bueno es que se puede instalar en una memoria USB. Lo malo es que los programas no son del todo legales, así que la página no ofrece el link de descarga (pero no es difícil de conseguir). Por ahora necesita 128 megas, pero yo recomendaría 256 por dos razones: así podemos llevar las actualizaciones del antivirus y además, está muy próximo a superar los 128 megas.
  • Ultimate BootCD: La alternativa legal al Hiren’s Boot CD. Algo menos completo, pero debería permitir hacer diagnósticos y clones sin problemas.
  • Aplicaciones portables: A diferencia de los anteriores, este no es un “producto terminado”, ni arranca desde el USB. Son una serie de aplicaciones gratuitas para Windows, que se pueden ejecutar desde una memoria USB sin instalarlas o “dejar huellas” en el sistema. El mínimo serían 256 megas para llevarte un navegador, correo electrónico y alguna otra tontería. A partir de ahí… con una memoria de 1 Gb puedes llevarte programas como para hacer cualquier cosa que necesites.

Al margen de estas sugerencias, hay más aplicaciones portables (como Total Commander, no incluída en PortableApps por ser de pago); aplicaciones “reconvertidas” a portables como EasyRecovery Pro y Everest (pero no son muy legales); y más mini distribuciones Linux que podrían instalarse en USB. También se podría instalar una distribución Linux “completa”, pero esto suele necesitar memorias bastante grandes (recomiendo un mínimo de 4 Gb). También hay procedimiento para instalar un Windows XP… si tienes una memoria suficientemente grande.

Por último, una advertencia: huid como de la peste de las memorias U3. En teoría, son memorias en las que “de fábrica” se pueden instalar fácilmente aplicaciones portables. En la práctica, tienen varios inconvenientes: el estándar U3 parece estar muerto, las aplicaciones dejan “huellas” (entradas en el registro), no es fácil quitarse de encima el menú de las apliaciones y encima son bastante más caras.

DownloadHelper para Firefox… ¿campaña anti Microsoft?

No puedo resistir a escribir sobre esto… me ha hecho bastante gracia tropezar con ello en mi Firefox.

DownloadHelper es una extensión para Firefox que permite descargar los vídeos incrustados en la web. Permite descargar vídeos de un montón de sitios, normales y calentitos, aunque falla en algunos otros (por ejemplo, MTV Music, donde está el archivo de vídeos de la MTV). Se actualiza con bastante frecuencia, añadiendo nuevos sitios y métodos de detección para descargar más y mejor.

Con esta extensión, también podremos obtener links para descargar vídeos con otros gestores de descargas (pero cuidado, los links sólo suelen funcionar el mismo día). El único problema es que descarga los vídeos como ficheros FLV. Este problema no es tan grave si tenemos en cuenta que hay programas como FLV Player o el VLC media player que permiten ver estos vídeos sin problemas.

La solución “oficial”, sin embargo, es utilizar la propia extensión para convertir estos vídeos en AVI, mpeg o cualquier otra cosa más “utilizable”. ¿Cómo se hace? Muy fácil, en Firefox, vamos al menú Herramientas > DownloadHelper > Preferencias y en la pestaña Conversión, marcamos “Conversión habilitada”.

Si tenemos Windows, necesitaremos descargar ConvertHelper, una utilidad que permitirá convertir los vídeos. Si tenemos MacOS X o Linux, deberemos instalar los paquetes ffmpeg o mencoder.

Los vídeos producidos por ConvertHelper llevan un logotipo en una de las esquinas. Si queremos que no salga, hay que pagar 18?`? por registrarse. Lo gracioso es que los usuarios de Linux y MacOS X no usan ConvertHelper, y no les sale el logotipo. De hecho, si se miran las instrucciones de conversión desde un ordenador con Linux, sale un aviso recalcando que los usuarios de Linux no deben registrarse, ya que ellos no tienen ninguna restricción.

Conclusión: Si tienes Windows pasas por caja, si tienes Linux o MacOS X es gratis.

Tanz der Vampire (lo mismo, pero en Linux)

Durante las pruebas de Stepmania, lo tuve que instalar en Linux para comprobar si el problema del adaptador (no se puede usar arriba/abajo a la vez) eran los drivers de Windows o el adaptador en sí. Tanto el binario como el código fuente de Stepmania se pueden descargar desde la página del juego (ver enlaces en el artículo anterior), pero ponerlo en marcha en Linux puede no ser tan sencillo como parece.

Para instalarlo, sólo hay que bajar el binario y descomprimirlo en alguna parte:

  • tar -zxvf StepMania-3.9a-linux.tar.gz

Cuando quise ponerlo en marcha, Stepmania me dió tres problemas:

  • Stepmania requiere soporte de Direct Rendering. En mi caso, lo probé en un portátil con tarjeta gráfica i815. Esta tarjeta sólo usa Direct Rendering en los modos de video de 16 bits. En el caso de usuarios de ATI y nVidia, quizás sea necesario descargar los drivers oficiales (aunque probablemente los drivers open source también soporten Direct Rendering). Se puede comprobar si está activado mirando la salida del comando glxinfo.
  • El problema de los ejes. Este problema sólo se produce con adaptadores de consola a PC, y las soluciones se discutieron en el post anterior. Lo único destacable es que existe una solución única para Linux, que es parchear el driver de joystick del núcleo.
  • Stepmania se lleva a patadas con KDE. Bueno, el problema no es de KDE, sino de las tarjetas de sonido. En mi caso, la tarjeta de sonido no tiene soporte para varios canales por hardware. ¿Cuál es el problema? Que dos procesos no pueden acceder al sonido a la vez. En el caso de KDE, KDE arranca el demonio artsd para proveer de sonido a sus aplicaciones, lo que impide que otras aplicaciones no integradas en KDE (Stepmania, claro) puedan sacar sonido. Para este problema hay tres soluciones: “tocar” el fichero Stepmania.ini y cambiar el driver de sonido, matar arts antes de jugar o ejecutar Stepmania mediante artsdsp (artsdsp ./Stepmania). El programa artsdsp es una especie de entorno que deja usar a los programas los dispositivos /etc/dsp. Esta es la solución que me ha funcionado a mí.

Todo está perfectamente documentado en inglés en los siguientes documentos:

  • Hacks para pads en Linux: Aquí están algunas modificaciones que pueden hacerse para que cualquier adaptador funcione correctamente en Linux.
  • FAQ de Stepmania para Linux: Soluciones a los problemas más frecuentes (como el mencionado problema de KDE).
  • Pad de baile USB: Gracias a yS, del foro de Meristation, por indicarme un pad de baile que funciona conectado directamente al USB, sin adaptadores ni nada. Usar pads USB te quita muchos problemas… para empezar el de los ejes.

NOTA: El problema de Stepmania con KDE viene derivado de la tarjeta de sonido, que es cutre a rabiar. Una tarjeta con varios canales por hardware (Una SB Live!, por ejemplo) debería funcionar sin problemas. Más que nada lo menciono porque al parecer hay fanáticos de Gnome que están a la que saltan…