Archivo de la Categoría “/usr/share/doc”
A base del “demos la tabarra por una buena causa“, pero también gracias a su buena disposición, la Vicegerencia de TICs ha cumplido con su compromiso y -efectivamente- se pueden firmar las actas de notas en GNU/Linux en esta convocatoria de junio. Son de agradecer la documentación, el programa de instalación automática, y el servicio de soporte; en este sentido, felicitar a Jesus María Alonso del CIG UPV/EHU, programador del instalador en C++, por su rápida respuesta a un acta que ayer se me quedó sin poder firmar, y el tiempo que ha dedicado hoy para su resolución.
Allá por mayo Juanan informaba de que era capaz de firmarlas con Ubuntu 8.04. En estas semanas en la lista de itsas han circulado correos para firmar con la más reciente Kubuntu 10.04 de 64 bits, y Gorka Prieto comentaba que finalmente lo ha conseguido seleccionando el java de Sun en lugar del que tenía (seleccionando esa opción al hacer sudo update-alternatives --all). El caso es que hablando con Gorka, de las dos formas de hacer la instalación, ha seguido la automática (gracias al instalador citado), y a mí no me funcionaba con la que se basa en paquetes de toda la vida, para mi gusto más transparente. El motivo ha sido que hay un bug en el paquete libopensc2 que viene en la lucid 10.04 (ya lo han notificado a Ubuntu), y hay que emplear el de la versión de intrepid o jaunty.
Dejo aquí unas instrucciones abreviadas de todo el proceso:
- Descargar paquete libopensc2 0.11.4-5ubuntu1 según sea i386 o amd64 e instalarlo (kpackagekit,
sudo dpkg -i,…).
- Instalar resto de paquetes necesarios:
sudo apt-get install pcsc-tools pcscd libopenct1 mozilla-opensc sun-java6-plugin
- En caso de tener más versiones de java, seleccionar la de Sun en las preguntas correspondientes al hacer:
sudo update-alternatives --all
- Descargar de la zona de certificados de Izenpe los correspondientes a la CA raíz y CA Personal de Administraciones públicas. Son los 4 ficheros (2 versiones de cada, según fecha de emisión de certificados) de las zonas marcadas en rojo:

- Abrir con el Firefox los 4 ficheros de certificado, e importarlos.
P.D. Iker de Irontec me informa de que Izenpe ha publicado hace poco un instalador para todos los certificados que vale para Firefox y Chrome en Ubuntu y Fedora; Chromium está a falta de resolver un bug para que funcione.
2 Comentarios »
Hasta ahora no he hablado de impresión desde GNU/Linux. La arquitectura incluye bastantes conceptos (lenguajes de impresora, rasterizadores, ficheros ppd, spoolers, CUPS, interfaces,…), y a lo largo del tiempo he ido tomando notas que comparto para quien pueda venirle bien.
Al tema: muchas impresoras multifunción (impresora+fotocopiadora+scanner+fax) en red, cuentan con las funcionalidades de Copias controladas y Auditoría de trabajos. La primera permite establecer quiénes pueden imprimir, fotocopiar, escanear,… pidiendo para ello una identificación de usuario (en base a un código, o a identificador y contraseña), de modo que cuando se usa la máquina para fotocopiar se introduce a través del panel físico de la máquina, y cuando se emplea como impresora en red se configura en las opciones del driver de impresión, sea Windows o GNU/Linux. La auditoría de trabajos o job accounting registra, a partir de lo dicho, el uso que hace cada usuario o departamento: nº de fotocopias, impresiones, escaneos, etc.
¿Cómo funciona internamente la impresión en red con identificación? cuando el PC genera el fichero a enviar por red a la impresora mediante algún protocolo de impresión (puertos tcp 514, 515, 631, 9100), algunas líneas del fichero hacen referencia a sentencias de PCL. Si el lenguaje es PJL un ejemplo puede ser:
@PJL JOB NAME="Sin nombre1"
@PJL SET COLORMODE=MONO
...
@PJL SET USERNAME="1234"
...
En la actualidad, la forma más típica de imprimir desde GNU/Linux está basada en ficheros PPD, los cuales sirven entre otras cosas para:
- Definir las características de la impresora.
- A partir de lo anterior, generar automáticamente el GUI para la selección de opciones.
- Enviar determinadas cadenas (ej. PJL) y opciones a la hora de generar el fichero para la impresora.
Yendo al caso, tengo la multifunción Samsung C8385ND de la foto y hay un problema: si se configura para que funcione con identificación y auditoría, el PPD oficial no sirve porque el fichero generado para enviar a la impresora no es correcto.

Vamos con el “hack” para conocer cómo ha de ser ese fichero y que se genere automáticamente:
- En un Windows (en máquina virtual o nativo), se abre el OpenOffice con un fichero cualquiera y se imprime a fichero.
- En un PC con GNU/Linux se imprime por red capturándose lo que envía a la impresora:
tcpdump -i eth0 dst ip_impresora -s0 -w fich
(no vale sólo con imprimir a fichero, pues éste es un postscript sin las sentencias PJL)
- Comparándose ambos ficheros, se encuentran estas líneas que no aparecen en el fichero generado desde de GNU/Linux:
@PJL SET ACCOUNTING_INFORMATION_USERID="1234"
@PJL SET ACCOUNTING_INFORMATION_PASSWORD="1234"
- Se edita el fichero PPD, y puede modificarse ej. la línea que hace referencia a JLCUser User1:
*JCLUser User1/MiUsuario: "@PJL SET USERNAME = <22>1234<220D0A>@PJL SET ACCOUNTING_INFORMATION_USERID=<22>1234<220D0A>@PJL SET ACCOUNTING_INFORMATION_PASSWORD=<22>1234<220D0A>"
(22 es el código ASCII del carácter “)
- Se reinicia CUPS.
Dejo aquí una breve info de ésta y otras multifunción Samsung que vaya encontrando.
1 Comentario »
Me llaman por teléfono varias personas indicando que no reciben correos que otras les mandan desde la misma red local.
Al hacer un mailq en el servidor de correo, veo que el scroll no para. Después hago mailq | tail -n1 y aparece la friolera de:
-- 161561 Kbytes in 50670 Requests.
¿Cómo proceder? Como tiene mucha pinta de spam, lo primero es detener el envío de todo cuanto antes, para que no nos metan en una lista negra:
postsuper -h ALL
Analizando los correos de la cola, ej. con:
mailq |head -n 50 > /tmp/q; emacs /tmp/q
se ve algo así:
264DD12811B1 635 Thu Apr 22 13:23:58 postmaster@W_MX_SERVER.midominio.org
kaceynicolex13@aol.com
280BF12815DA 627 Thu Apr 22 13:23:58 postmaster@W_MX_SERVER.midominio.org
kaceymacey@aol.com
8088112815E1 621 Thu Apr 22 13:23:58 postmaster@W_MX_SERVER.midominio.org
kaceytx@aol.com
7FB63128119D 625 Thu Apr 22 13:23:58 postmaster@W_MX_SERVER.midominio.org
kacflyers@aol.com
...
De donde se deduce que muchos de ellos llevan la marca postmaster@W_MX_SERVER.midominio.org
Para ver el equipo “culpable”, se puede abrir el /var/log/mail.log con un editor y buscar una cadena identificadora de uno de los mensajes de spam, para después seguir la pista hasta ver la conexión y por tanto la IP. Después, se le desconecta bien de forma manual o bien con algún filtro (firewall,…).
¿Cómo borrar los más de cincuenta mil correos de forma rápida?
L=$(mailq | grep postmaster@W_MX_SERVER | awk '{print $1}' | cut -f 1 -d '!' | cut -f 1 -d '*')
for i in $L; do postsuper -d $i; done
(La consideración sobre el ! y * es porque muchos están en hold o ya en envío activo). Vuelvo a hacer un mailq | tail -n1 y ahora sale:
-- 109087 Kbytes in 293 Requests.
Lo cual es mucho más lógico (hay muchos acumulados). Ya sólo queda restaurar los que están en Hold y se supone que son “buenos”: postsuper -H ALL
Estas operaciones de limpieza que no han llevado ni una hora, no hubieran sido factibles con un interface gráfico. Long live the console!

No Hay Comentarios »
Grub es parte del sistema operativo GNU.
De casualidad he visto que había bastantes paquetes relacionados con grub en Debian squeeze, y he querido entender la diferencia de usos. Una distinción importante es según cuál sea la forma de arranque: el grub básico para la mayoría de PCs actuales se basa en la BIOS tradicional. [Paquetes: grub-pc, (grub2 y grub vacíos dependientes del anterior), grub-common.]
No obstante, además de la BIOS histórica, hay otros proyectos en marcha para su reemplazo:
- Open Firmware (estándar IEEE 1275), impulsado por Sun, Apple, IBM. Ej. PowerPC.
[Paquetes: grub-ieee1275]
- EFI, impulsado por Intel. Ej. IntelMac
[Paquetes grub-efi* en distintas variantes según arquitecturas.]
- Coreboot (antes llamado LinuxBIOS), desde la FSF. [Paquetes: grub-coreboot, (grub-linuxbios vacío dependiente del anterior).]
El resto de paquetes son:
- Versiones de grub específicas para depuración, para QEMU, para recuperación.
- Adornos: imágenes gráficas de splash y gestor de las mismas, y un juego de marcianos que corre sin arrancar el sistema operativo.
- Versión antigua (“legacy”).
- Programa para seleccionar gráficamente el S.O. de arranque (grub-pc proporciona un comando semejante, aunque menos visual).
Más info en el wiki.
1 Comentario »
De casualidad he llegado a la revista CODE:FREE, y me he quedado gratamente sorprendido porque es el tipo de herramienta idónea para mostrar el “poderío” del software libre en lo referente a diseño gráfico, de cara a charlas, cursos, etc.
Puede pensarse que la demostración gráfica más espectacular podría estar en el mundo cinematográfico, diciendo que desde hace ya tiempo GNU/Linux se emplea como sistema operativo para granjas de servidores de renderizado, en películas como:
- Avatar (2009)
- The Day the Earth Stood Still (2008)
- Shrek the Third (2007)
- X-Men The Last Stand (2006)
- King Kong (2005)
- Lord of the Rings: Return of the King (2003)
- Star Wars: Episode II – Attack of the Clones (2002)
- Gladiator (2000)
- The Matrix (1999)
- Titanic (1997)
… Pero estas obras NO se han elaborado con free software: ni libre, ni gratis (ver ejemplos), y a veces ni tan siquiera público porque se tratará de software privado, esto es, desarrollado a medida bajo demanda de una empresa usuaria y sólo conocido por ésta.
Volviendo a programas más accesibles en el día a día, cuando se trata de ver hasta dónde dan las herramientas libres al alcance de cualquiera, siempre salen las comparativas con programas privativos que posiblemente serán mejores (entre otros motivos porque tienen mucho más tiempo de recorrido, y porque detrás de los desarrollos hay grandes empresas), ej. el típico Gimp vs Photoshop, o Adobe Premiere vs Cinelerra. Quienes creemos en el software libre estaríamos engañándonos si negáramos las carencias y desventajas actuales en ciertas áreas (ej. edición de video o CAD).
Pero reconociendo lo anterior, la cuestión no es que sean mejores o peores, sino preguntarse “hasta dónde pueden dar de sí”, “cuánto esfuerzo me supone aprenderlas o trabajar con ellas” y “qué necesito para lo que quiero hacer”. Además, las aplicaciones libres tienen un potencial de mejora mucho mayor que las privativas, justamente por ser abiertas y posibilitar su mejora.
La revista CODE:FREE pretende recoger las posibilidades de muy alta calidad en diseño vectorial, raster, edición de fotografías y 3d con programas libres, no sólo de los más conocidos (Inkscape, gimp, blender) sino también de otros (QTPFSGUI, Alchemy, Fyre, Synfig, OCAL = Open Clip Art Library).
En la misma, por cierto maquetada con Scribus, se recogen entre 20 y 40 muestras, indicándose en cada una el programa empleado, el autor y la licencia de uso de la obra. La revista está licenciada como CC (aunque no especifica cuál de las licencias CCs), y por ahora han salido tres ejemplares descargables o visualizables online.
Agradecimientos a Chris, autor de la revista, por este gran trabajo, y como él decía hace dos semanas atención porque se buscan contenidos para el nº 4 de la revista. Por cierto, gracias a su blog he conocido la existencia de este interesante encuentro y sus proyectos asociados, que quizás a alguna artista pueda venirle bien.
Como muestra de la revista aquí se ve uno de los diseños que incluye, hecho con gimp. Artista: rore.

Avatar (2009)
The Day the Earth Stood Still (2008)
Shrek the Third (2007)
X-Men The Last Stand (2006)
King Kong (2005)
Lord of the Rings: Return of the King (2003)
Star Wars: Episode II – Attack of the Clones (2002)
Gladiator (2000)
The Matrix (1999)
Titanic (1997)
No Hay Comentarios »
Tengo algunos ficheros con información personal de los que quiero guardar copias seguras en un disco y un pendrive USB y, sin pretender descubrir la pólvora en este post, voy a aprovechar para conocer un poco las alternativas disponibles.
Respecto al nivel al que hacer la encriptación, una clasificación posible sería:
- Las que son a nivel de disco/partición/sistema de ficheros (aquí una comparativa). Una muy buena tabla es ésta de wikipedia.
- Las que operan sobre ficheros individuales.
Otros criterios para el software concreto serían, ej: en el caso de Linux, si el software está en User space o Kernel space, las funcionalidades adicionales ([des]encriptación, firma, generación de claves, resumen o hash), o los algoritmos empleados.
Juntando la lista de wikipedia por una parte, y por otra haciendo apt-cache search crypt y limpiando el listado que me aparece (librerías, wrappers, GUIs, -dev, -dbg, encriptación hardware,…), recojo en el wiki mis notas.
No hay un criterio claro de cuál es la mejor opción, y voy a probar con encriptación de una partición mediante LUKS. Este método encripta en base a una passphrase (la pide nada menos que 3 veces), y no requiere un fichero físico de llaves privada/pública. Los pasos a seguir son:
1) Particionar el disco USB. En mi caso como tiene 1 Tb y voy a hacer backup de todo mi disco duro, hago 2 particiones de 500 Gb cada una. De este modo podré jugar con copias rotativas.
2) Formatear con LUKS; cambio el sistema de ficheros FAT por defecto a ext3 porque me interesa almacenar los atributos de propietarios de ficheros y algún otro; (tarda más que en FAT porque tiene que crear las tablas de inodos,…):
# luksformat -t ext3 /dev/sdh1
Creating encrypted device on /dev/sdh1...
WARNING!
========
Sobrescribirá los datos en /dev/sdh1 de forma irrevocable.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Orden satisfactoria.
Please enter your passphrase again to verify it
Enter LUKS passphrase:
key slot 0 unlocked.
Orden satisfactoria.
mke2fs ...
A pesar de que da algún aviso de device busy (quizás por estar en dolphin, KDE,…) funciona a la perfección, y si se desconecta y se vuelve a conectar el dispositivo, en Kubuntu 9.10 pide automáticamente el password y ya está listo para usarlo.

Haciendo lsmod puedo comprobar cómo están:
aes_generic
aes_x86_64
cbc
cryptd
dm_crypt
sha256_generic
Al repetir el formateo para la segunda partición y conectarlo, por algún motivo no hace el montaje correctamente en el dolphin, pero probando a hacer este par de líneas de comandos sí que se ven ambas particiones en dolphin:
sudo cryptsetup luksOpen /dev/sdh1 XX
sudo cryptsetup luksOpen /dev/sdh2 YY
(Se obvia la de sudo mount /dev/mapper/XX /media/disk1). Para cerrarlo sería:
sudo umount /media/disk
sudo cryptsetup luksClose XX
Si se quiere ver el estado hacer sudo cryptsetup status XX
Por indicar algún dato más, me ha tardado 3 h y 20 min en copiar unos 300 Gb al disco usb. Para la próxima, como usaré rsync y el grueso de la información no cambia demasiado, será mucho más rápido.
That’s all, folks!
No Hay Comentarios »
Windows virtualization by means of VirtualBox is not something innovative at all nowadays, but here I want to tell a story of an added item: that when you switch on a PC with GNU/Linux, it automatically starts in the Windows virtual machine without any other OS look, and when exiting from Windows the computer turns off.
Why this configuration? let’s suppose these requirements:
- R1: users can’t or don’t want to use GNU/Linux, and they must be in Windows.
- R2: users must not have “interferences” in the sense of seeing a Linux graphical login screen or menus.
- R3: it’s neccesary to control the machines by means of GNU commands, e. g. rsync for backups.
- R4: from time to time it’s recommendable to reinstall Windows, cause you know the system goes full of “UFO-ware” and everything goes slower.
- R5: there are not plenty of computers so it’s not so urgent to use something like clonezilla or fog.
Apart from cygwin, appropriate for R3, I find VirtualBox good for all R1, R2, R3, R4, R5. Experimenting with this choice, this can be a procedure: once prepared a Windows master virtual machine (VM) image for VirtualBox, and when Ubuntu is installed in each PC, the VM must be imported (manually or automatically). After that, to cover R2 it can be used VBoxSDL and the instructions left in this post. To attach the USB devices to the VM with no manual operation read this other post.
In my result reached at the present time with VirtualBox 3.1, there are some problems:
- No fully operating CDs/DVDs in the VM: sometimes CD tray doesn’t open, only experimental writing and no way to have some audio/video media. Read the this chapter of the manual (surely it’ll change in the future) about these questions.
- If you connect some usb devices like a NTFS formatted hard disk, it’s not easy to access the filesystem (it could be used pmount or manipulated /etc/fstab to add the new device without being root, and mount in a VM shared folder).
Maybe in the future this VirtualBox configuration will be fully operating. I hope so.

No Hay Comentarios »
Si se tiene arrancada una máquina virtual (en adelante VM) con VirtualBox, en la cual se haya configurado un filtro USB adecuado (o incluso uno vacío que permita todo USB), al conectar un dispositivo USB (pendrive, disco externo) es necesario ir al menú Dispositivos>Dispositivos USB y seleccionar el recién conectado para que habilitarlo en la VM.
Pero si una VM se arranca mediante VBoxSDL dicho menú no existe, y entonces no es posible que la VM vea el nuevo dispositivo. ¿Solución? Emplear udev y hacer que el nuevo dispositivo se conecte a la VM en ejecución.
Para ello, hay que crear una nueva regla ej. el fichero /etc/udev/rules.d/90-usb-virtualbox.rules con este contenido:
SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/local/sbin/usb-virtualbox.sh"
De este modo, al conectar (“add”) un dispositivo “usb”, se lanza el programa indicado pasándole la información por variables de entorno. Respecto al script /usr/local/sbin/usb-virtualbox.sh (que habrá de ser ejecutable), sería:
#!/bin/bash
U=usuario_de_la_vm
A=$(env | grep DEVPATH | cut -f 5-6 -d /)
S=$(su $U -c "VBoxManage list usbhost" | grep "$A" | awk '{print $2}' )
su $U -c "VBoxManage controlvm nombre_de_la_VM usbattach $S"
Ojo: si la VM es Windows y tras conectar un disco externo USB aparece un icono en la bandeja de sistema indicando que hay un dispositivo conectado, pero no se ve el contenido en el explorador de archivos, la causa puede ser que el sistema de ficheros del disco sea ext3, y en este caso habría que emplear un software como Ext2Fsd (es GPL).
No Hay Comentarios »
Me ha tocado hacer una configuración con estos requisitos:
- Al iniciar el PC con Linux, se lanza automáticamente una aplicación gráfica SDL sin hacer login gráfico (display manager), ni arrancar un gestor de escritorios ni de ventanas.
- Al cerrar dicha aplicación gráfica, el PC se apaga.
- Durante la ejecución de la aplicación gráfica ha de ser posible acceder a una consola en modo texto, tanto en el PC físico como a través de ssh.

Solución:
- Elegir la versión de Linux e instalarla: aunque quizás sería más lógico ir a una Debian, por comodidad de disponibilidad de drivers recientes me voy a una Ubuntu 9.10 Karmic de 64 bits.
- Hacer que no se inicie el gdm: en /etc/default/grub incluir text en la línea de GRUB_CMDLINE_LINUX_DEFAULT, ej:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text" y después hacer sudo update-grub
- Login automático a una de las consolas de texto: instalar mingetty y cambiar en
/etc/init/tty1.conf (en Karmic ya no hay /etc/inittab sino upstart):
#exec /sbin/getty -8 38400 tty1
exec /sbin/mingetty --autologin usuarioXX --noclear tty1
- Lanzamiento automático de la aplicación sólo en una terminal: añadir al ~/.bash_login para del usuarioXX:
if [ $(tty) = "/dev/tty1" ] ; then
xinit aplicacion_grafica -- :1
sudo /sbin/poweroff
fi
Con lo anterior, se consiguen que sólo se inicie en el caso de haber hecho login en tty1. Además sería posible hacer Ctrl-Alt-F2, Ctrl-Alt-F3,… y ssh (en este caso se crea una pseudoterminal).
- Apagado automático: para que usuarioXX pueda llamar a poweroff, añadir al final de /etc/sudoers la línea:
usuarioXX ALL=(root) NOPASSWD:/sbin/poweroff
4 Comentarios »
Me han preguntado cómo convertir una presentación a video, y aunque lo que aquí documentaré no es exactamente la respuesta a eso, he recordado que el bueno de txipi publicó un post relacionado con presentaciones de slideshare (de aquí el “[Más]“), y he decidido intentar mejorarlo para llegar a un bash script que a partir de una URL de slideshare genere un pdf o un video.
El método que planteaba txipi se basaba en usar un script para capturar pantallazos. Pues bien, con esta base, he usado el paquete swftools que incluye el comando swfrender para convertir un swf a imagen.
Por otra parte, su propuesta también empleaba dos extensiones para firefox (GreaseMonkey y Download them All). Estudiando el código html de una página de slideshare, y comparando con el resultado de las URLs que aparecen en la ventana popup que ofrece el Download them All, he deducido alguna sintaxis de cómo encontrar los nombres de las distintas páginas generadas en s3.amazonaws.com.
Por tanto, el script que he escrito valdrá mientras slideshare mantenga esa sintaxis (lo he probado en 3 presentaciones y ha funcionado). Si no, a adaptarlo de nuevo.
Como bonus al script de txipi, incluyo una línea para convertir las imágenes a fichero de video mediante mencoder.
#!/bin/bash
echo "+++ Mila esker, txipi"
URL="http://www.slideshare.net/danitxu/software-libre-para-una-ciudadana-libre"
F=fichero.tmp
wget "$URL" -O "$F"
L=$(grep "meta href" $F | sed -e 's/\(.*\)http:\/\/\(.*\)\/\(.*\)thumbnail?\(.*\)/\3/')
N=$(grep '"totalSlides":' $F | sed -e 's/\(.*\)"totalSlides":\(.*\),"player\(.*\)/\2/'|cut -f 1 -d ,)
echo $L $N
for i in $(seq 1 $N); do
F="$L"slide-"$i".swf
j=$(printf "%03d" $i)
wget http://s3.amazonaws.com/slideshare/$F -O slide"$j".swf
swfrender slide"$j".swf -o slide"$j".png
rm slide"$j".swf
done
#convert slide*png slides.pdf
#0.3 segundos en cada slide
mencoder mf://*.png -mf fps=0.3:type=png -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o salida.avi -ffourcc DX50

En esto consiste la magia del software libre: uno hizo un programa y publicó el código fuente y permitió mejorarlo, otro tuvo una necesidad de usar un programa que hiciera cosas parecidas pero distintas y habló con alguien, ese alguien vio el código original y buscó hasta encontrar la modificación, y otros usaron la versión mejorada. A ver si alguien se anima a montar un servicio web en plan slideshare2all.net a partir de lo de arriba.
Long life to Free Software
No Hay Comentarios »
|