Entries in February 2012
Preparar un Alix para exposiciones: Automatizando (Parte 2)
29 February 2012
Vamos a seguir preparando nuestra Alix. En la última entrega explicamos cómo instalar un servidor gráfico y un escritorio.
Ahora, lo siguiente es ver cómo automatizar ciertas tareas. Recordad que el objetivo es tener este dispositivo de cara al público, por lo que es muy importante que todo esté automatizado. La mayor restricción es que no habrá teclado ni ratón disponible, sólo una pantalla.
Autoarranque de aplicaciones en LXDE
29 February 2012
Hace unos días escribía sobre cómo instalar LXDE sobre Debian e iniciar sesión de forma automática. Ahora voy a tratar de explicar cómo podemos automatizar el arranque de aplicaciones a la hora de cargar el escritorio.
Montando particiones de una imagen de disco duro
26 February 2012
Hace un rato escribía cómo realizar copias de seguridad en una CompactFlash en un fichero de imagen. En alguna ocasión puede ser interesante montar esta imagen para extraer o copiar información. Al no tratarse de una imagen de una partición (es decir, no contiene directamente un sistema de ficheros), es necesario hacer alguna filigrana para poder montar la partición.
Copias de seguridad de CompactFlash
26 February 2012
Estos días he estado trabajando bastante con Alix y conté cómo hacer una instalación de Debian en una CompactFlash. Evidentemente, una vez que la imagen esté lista, el paso lógico es hacer una copia por si es necesario restaurarla en otra tarjeta de memoria.
Para ello, he utilizado dd. Esta herramienta viene en todas las distribuciones de Linux y nos permite hacer lecturas raw sobre dispositivos de bloques. Para ello, sólo hay que decirle de dónde tiene que leer (if - input file) y dónde tiene que escribir (of - output file).
Si no se especifica el número de bloques que se quieren copiar (count), por defecto se copia el fichero completo (tened en cuenta que el Linux, los dispositivos se tratan como ficheros). Además, se puede indicar el tamaño del bloque (bs - block size), para optimizar la velocidad de copia.
Volviendo al tema, para realizar una copia bastará con ejecutar lo siguiente:
$ sudo dd if=/dev/sdc of=Alix.1D.Debian-20120226.img bs=4096
Esto realiza la copia de todo el contenido del dispositivo sdc (en mi caso es el de la CompactFlash) en el fichero Alix.1D.Debian-20120226.img, usando un tamaño de bloque de 4KB.
Para restaurar la copia de la imagen en la tarjeta, es tan sencillo como intercambiar if y of:
$ sudo dd of=/dev/sdc if=Alix.1D.Debian-20120226.img bs=4096
Validación de NIFs y CIFs en Python 3
24 February 2012
Flashear con Arduino IDE en Ubuntu
17 February 2012
Si intentamos programar con Arduino en Ubuntu y nos encontramos con un error similar a este "Serial port COM1 not found. Did you select the right one from the Tools>Serial Port menu ?". Lo más posible es que no tengamos permisos para acceder al USB como usuario normal. Para solucionar esto podemos crear una regla udev:
$ sudo gedit /etc/udev/rules.d/98-ftdi.rules
y añadimos la siguiente linea:
SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="ttyUSB%n"
Y por último, recargamos las reglas de udev:
$ sudo udevadm control --reload-rules
Activar autologin sin necesidad de XDM, GDM, KDM, etc.
16 February 2012
Usualmente, las distribuciones de Linux utilizan un Display Manager, como pueden ser XDM, GDM ó KDM.
Vamos a editar el fichero /etc/rc.local y añadiremos al final la siguiente línea:
su - user -c startx
donde user es el usuario que arrancará la sesión gráfica.
Para desactivar el arranque automático, bastará con comentar o borrar la línea anterior.
Nota importante
Vamos a entender lo que está pasando aquí. Básicamente, con el método anterior antes de que se llegue a llamar a la consola tty1, "startx" es llamado por rc.local. Así que, básicamente mientras estés en el escritorio no estará disponible la consola de inicio de sesión tty1 (la que se obtiene al pulsar Ctrl-Alt-F1).
Para poder acceder a la consola, habrá que cerrar sesión en el escritorio en cuestión y tendremos acceso a tty1. Podremos volver a acceder al entorno gráfico ejecutando "startx" una vez logueados.
Preparar un Alix para exposiciones: Servidor X (Parte 1)
16 February 2012
Estos días he posteado acerca de cómo instalar y configurar Debian en cualquier Alix. Hoy me voy a centrar en un modelo particular Alix.1D, el cuál trae salida VGA, lo cuál lo hace especialmente atractivo para realizar pequeñas exposiciones, pases de diapositivas, museos, etc.
Para ello, partiendo de una instalación básica como la que ya se ha comentado, en esta serie de artículos trataré de describir muchos de los aspectos que se pueden tener en cuenta.
Hacer una petición a un WebService con curl
15 February 2012
Para comprobar rápidamente si un WebService está funcionando podemos utilizar el comando curl para hacer una petición y obtener la respuesta.
Para ello:
$ curl -d @request.xml http://localhost/soap/service
donde request.xml es el fichero que contiene la petición SOAP.
Actualización: 16/02/2012 0:44
Se me olvidó poner las cabeceras que son necesarias para que todo funcione:
$ curl -d @request.xml -H "SOAPAction: http://localhost/soap/service/action" -H "Content-Type: text/xml; charset=UTF-8" http://localhost/soap/service
Invalid MIT-MAGIC-COOKIE-1 key
14 February 2012
Haciendo unas pruebas con el servidor X he me encontrado con un mensaje misterioso error: Invalid MIT-MAGIC-COOKIE-1 key. Para solucionarlo he borrado los archivos .Xauthority de mi directorio personal.
rm ~/.Xauthority*
Instalación de Debian sobre Alix: kernel y gestor de arranque (Parte 2)
14 February 2012
Ayer contaba como podemos hacer una instalación básica de Debian sobre Alix. En concreto, faltó la instalación de un kernel y un gestor de arranque para tener un sistema operativo funcional. Cada uno puede elegir el software y las versiones que quiera. Yo en mi caso particular voy a utilizar la versión estable de linux para 486 y Grub2.
Proteger la edición de Grub2 con password
14 February 2012
En ciertos equipos son importantes algunas medidas de seguridad. En este caso voy a explicar cómo podemos proteger partes del arranque mediante contraseña. Podemos enfocarlo desde distintos puntos de vista:
- Edición de las entradas del menú: no se puede editar ninguna entrada sin contraseña
- Protección de arranque: no se puede arrancar una o varias entradas del menú sin contraseña
Edición de las entradas
Este caso es el más sencillo. Simplemente hay que editar el fichero /etc/grub.d/00_header y añadimos al final lo siguiente:
cat << EOF
set superusers="user"
password user 1234
EOF
Ahora, cada vez que alguien intente editar una entrada del menú, tendrá que autenticarse. Es importante tener en cuenta que estos usuarios no tienen nada que ver con los usuarios del sistema.
Protección de arranque
Aquí es posible realizar distintos tipos de configuraciones, debido a que suelen existir varias entradas en cada instalación. Por ejemplo, supongamos que queremos proteger todas las entradas de Linux, pero no nos importan el resto del sistemas operativos instalados. Para ello editaremos el fichero /etc/grub.d/10_linux sustituyendo la siguiente línea
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
por
printf "menuentry '${title}' ${CLASS} --users user {\n" "${os}" "${version}"
Si se quieren proteger todas las entradas, será necesario editar todos los ficheros que hay en /etc/grub.d/.
Actualizando los cambios
No se debe modificar nunca directamente el fichero /boot/grub/grub.cfg, ya que en la versión 2 de Grub éste se genera automáticamente a través del fichero /etc/default/grub y los que hay en /etc/grub.d/.
Para terminar, vamos a regenerar el fichero /boot/grub/grub.cfg:
$ sudo update-grub2
Instalación de Debian sobre Alix: Sistema base (Parte 1)
13 February 2012
Alix es un pequeño PC empotrado que utiliza procesadores AMD Geode LX. Estos equipos son muy pequeños y no se calientan, por lo que no es necesaria refrigeración externa (ni siquiera un ventilador). La limitación de la mayoría de los dispositivos Alix es la falta de salida VGA y el dispositivo de almacenamiento: CompactFlash. Por tanto, la instalación típica se hace desde un PC en la tarjeta de memoria y luego Debian arrancará desde la tarjeta de memoria una vez colocada en Alix.
OnlyGL
2 February 2012
Últimamente he estado bastante liado, entre el trabajo, la carrera y el máster apenas tengo tiempo para escribir.
Como resultado de unas prácticas de una asignatura, Diseño Asistido por Computador, he desarrollado un pequeño Framework en Python con OpenGL cuyo objetivo es desarrollar escenas 3D de forma rápida y sencilla. En unas pocas líneas de código podemos ver los resultados rápidamente.
He liberado el código fuente del Framework y está disponible en GitHub: OnlyGL. Aunque en principio no tengo intención de seguir evolucionando OnlyGL, acepto sugerencias y no tengo problema en invertir algún tiempo si alguien está interesado en algo concreto.
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
