miércoles 4 de noviembre de 2009

KolourPaint: El Paint de Linux

A veces uso capturas de pantalla para explicar alguna cuestión sobre un cuadro de diálogo de una aplicación o una ventana y me gusta marcar y escribir sobre la imagen para añadir comentarios. Hoy necesitaba una aplicación sencilla para hacer ésto, no tenía ninguna a mano y no iba a utilizar gimp para una cosa tan simple.

Buscando un poco en google, encontré justo lo que necesitaba: KolourPaint, una aplicación similar al Paint de Windows, pero con mayor funcionalidad y la posibilidad de abrir gran cantidad de tipos de archivos de imagen.


Lo tenemos tanto en los repositorios de Debian como en los de Ubuntu. Así que podemos instalarlo mediante synaptic o directamente desde un terminal con:

# apt-get install kolourpaint

Una vez instalado, se añadirá una entrada al menú Gráficos.

martes 27 de octubre de 2009

Analizar los logs de access.log de squid

Me he dado cuenta, viendo los reports de sarg, que el mayor consumo de ancho de banda de mi centro se lo llevan las actualizaciones de windows update de los ciclos. Así que, me he puesto a trabajar en intentar reducir ese consumo mediante el proxy-caché squid.

No voy a entrar en detalles de cómo configurar squid porque lo que ahora me interesa es terminar de configurarlo para que cachee lo máximo posible. Aunque intentaré hacerlo en otro artículo, más que nada para recordar cómo monté el proxy, por si necesito hacerlo en otro momento.

Para hacer pruebas, he necesitado analizar los logs del archivo access.log, en el que hay un montón de líneas que al principio pueden parecernos complicadas, pero que cuando nos familiarizamos con ellas entenderemos cómo funciona el cacheo de archivos.

Lo primero que he hecho es hacer pasar el tráfico de una máquina por el proxy. Esto es fácil si tenemos un servidor dhcp en el que hacemos que la puerta de enlace asignada sea la ip del proxy.

Luego, en el proxy he ejecutado el comando tail para que me vaya mostrando lo que se va almacenando en el access.log:

# tail -f /var/log/squid/access.log

Y he comenzado a realizar actualizaciones en la máquina cliente para ver cómo trabaja el proxy.

Al ejecutar el comando, tail -f /var/log/squid/access.log veremos circular por la pantalla una serie de mensajes.

Básicamente, hay 2 tipos de mensajes:
Veamos los mensajes TCP, que son los que nos interesan para estudiar las peticiones que nos llegan por el puerto HTTP y realizar el cacheo:

TCP_ HIT: Hay una copia válida del objeto solicitado en la caché. Por tanto, se servirá el objeto desde la caché.

TCP_MISS: El objeto solicitado no se encontraba en la caché. Por tanto, squid tendrá que descargarlo desde internet.

TCP_REFRESH_HIT: El objeto solicitado estaba en la caché, pero es viejo. Se hace una petición de traer un archivo más nuevo.

TCP_REF_FAIL_HIT: El ojeto solicitado estaba en la caché, pero era viejo. La petición de validación del objeto falló. Por lo tanto se servirá el objeto de la caché.

TCP_REFRESH_MISS: El objeto solicitado estaba en la caché, pero era viejo. Se hizo una petición de trajer un objeto más nuevo y se trajo.

TCP_CLIENT_REFRESH: Este mensaje nos indica que el cliente abre una página que tiene orden de obtener siempre un archivo nuevo.

TCP_CLIENT_REFRESH_MISS: El cliente solicita el refresco de una web determinada, pidiendo una nueva versión.

TCP_IMS_HIT: El cliente ha solicitado una nueva versión de un objeto que estaba cacheado, pero se encuentra que el objeto de la caché aún no estaba caducado, es decir, que ya era lo más nuevo posible.

TCP_IMS_MISS: El cliente solicita nueva copia acerca de un objeto viejo.

TCP_SWAPFAIL: Se cree que el objeto se encuentra en la caché, pero por alguna razón no se puede acceder.

TCP_DENIED: Se deniega el acceso a dicha petición. Veamos las posibles denegaciones:
  • TCP_DENIED/400 indica que la petición tenía una mala sintaxis. El usuario (o un link a una página web) hizo algo mal.
  • TCP_DENIED/401 indica que la página requiere autorización.
  • TCP_DENIED/403 lo más probable es que sea un sitio bloqueado por una de las listas de control de acceso del Squid.
  • TCP_DENIED/407 indica que el proxy está configurado para usar alguna forma de autenticación y esta autenticación está fallando.
Mensajes UDP con los que podemos encontrarnos:Además, veremos también códigos de resultado de la fuente de la página:
Por otra parte, es interesante también observar los mensajes del archivo /var/log/squid/store.log. Si al descargar un archivo por primera vez, hacemos un:

# tail -f /var/log/squid/store.log

Veremos un mensaje con un GET por el que nos damos cuenta de que el archivo va a ser descargado, y cuando el archivo termine de descargarse, veremos un mensaje con un SWAPOUT, que nos indica que el archivo ha sido sacado de la caché para ofrecérselo al cliente.

Si volvemos a descargar el mismo archivo y no hay una versión más nueva en internet, ya no veremos un GET, sino que encontraremos un mensaje de SWAPOUT.

Si queremos ver estadísticas de resultados, recomiendo instalar Calamaris, un generador de informes de la actividad de caché que nos permitirá obtener datos estadísticos de uso de la caché de squid en formato ASCII o HTML.

lunes 28 de septiembre de 2009

Problemas con splash en grub

Siempre he tenido una imagen de fondo en grub, pero de un tiempo a esta parte, con las actualizaciones, dejó de aparecer. Me he puesto a buscar algo de información y he encontrado cuál es el problema.

La entrada que cargaba la imagen de grub es la siguiente:
splashimage=(hd0,3)/boot/grub/splashimages/calavera.xpm.gz

Por lo visto, ahora, para que se cargue la imagen de splash, dicha imagen tiene que llamarse splash.xpm.gz.

Lo que he hecho es crear en /boot/grub/ un enlace a la imagen del directorio /boot/grub/splashimages/ que quiero cargar, llamándola splash.xpm.gz. Por ejemplo:
ln -s /boot/grub/splashimages/calavera.xpm.gz /boot/grub/splash.xpm.gz

Después he cambiado la entrada que carga el splash en grub por:
splashimage=(hd0,3)/boot/grub/splash.xpm.gz

Y listo. Vuelvo a tener imagen de splash en grub.

jueves 24 de septiembre de 2009

mkisofs: Crear iso

Podemos crear un iso de un directorio utilizando el programa mkisofs.
de la siguiente manera:

# mkisofs -o archivo.iso /directorio

Y si queremos crear el iso de un directorio que arranque con grub, añadiremos un directorio /boot al directorio de la imagen con un grub y el fichero stage2_eltorito dentro de boot/grub/.

Si tenemos debian y un kernel de 64 bits, encontraremos el fichero stage2_eltorito en el directorio:

/usr/lib/grub/x86_64-pc/

Y si nuestro kernel es de 32 bits, el fichero estará en:

/usr/lib/grub/i386-pc/

Una vez listo el directorio del que vayamos a crear el fichero iso, ejecutaremos el comando mkisofs.

Veamos un ejemplo: Imaginemos que tenemos un directorio llamado cd, a partir del que vamos a crear un iso llamado cd_boot.iso con una etiqueta de disco: etiqueta:

# mkisofs -V etiqueta -no-iso-translate -U -nobak -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o cd_boot.iso cd

Para rematar, una vez creado el archivo iso, podemos crear su hash md5. De este modo, si alguien quiere descargarlo, podrá comprobar que la descarga es correcta y el archivo no ha sido manipulado:

# md5sum archivo.iso > archivo.iso.md5

Una vez creado el hash md5 y almacenado en un archivo, podemos comprobar

md5sum -c archivo.iso.md5 si el hash md5 del archivo coincide con el del fichero descargado de la siguiente manera:

# md5sum -c cd_boot.iso.md5

Si al ejecutar este comando, obtenemos un mensaje como el siguiente, sabemos que hemos descargado el archivo perfectamente:

cd_boot.iso: La suma coincide

Error al ejecutar Trinity Rescue Kit: trk not found on cd

Hace mucho tiempo que no escribo nada en el blog por falta de tiempo. Pero aprovechando que me preguntaron por este error al ejecutar Trinity Rescue Kit, lo escribo en este artículo ahora que recuerdo a qué se debía cuando me sucedió a mí.

El problema de que nos aparezca el siguiente error: trk not found on cd en Trinity Rescue Kit v3 está habitualmente en que el disco debe tener como etiqueta: TRK_3.3.

Y si tenemos montado TRK en una partición de un disco externo, por ejemplo, tendremos que etiquetar la partición como TRK_3.3. Además de que la partición sea la cuarta del disco.

lunes 6 de julio de 2009

Cambiar IP pública del router Comtrend en JDownloader

JDownloader es una aplicación multiplataforma hecha en java que sirve para descargar desde sitios tipo rapidshare, megaupload, etc...

Para los que usen JDownloader y tengan un router Comtrend, es posible renovar automáticamente la IP pública de nuestro router, escribiendo el siguiente conjunto de instrucciones en el apartado de configuración que se muestra en la imagen:

[[[HSRC]]]
[[[STEP]]]
[[[REQUEST]]]
GET /rebootinfo.cgi HTTP/1.1
Host: %%%routerip%%%
Authorization: Basic %%%basicauth%%%
[[[/REQUEST]]]
[[[/STEP]]]
[[[/HSRC]]]


sábado 4 de julio de 2009

Actualizar BIOS del EEEPC 701

Es posible actualizar de una forma sencilla la BIOS de nuestro eeepc utilizando un pendrive formateado en FAT16.

Para actualizar la bios, lo primero que haremos será buscar en la web de soporte de Asus la última versión disponible y descargarla:
http://support.asus.com/download/download.aspx?SLanguage=es-ES

Imaginemos que hemos descargado la última versión disponible: 701-ASUS-1302.zip

Descomprimimos el fichero:

# unzip 701-ASUS.1302.zip

Al descomprimirlo, tendremos el fichero con la nueva BIOS. En el ejemplo:

701-ASUS-1302.ROM

Lo renombramos para que tenga el nombre 701.ROM:

# mv 701-ASUS-1302.ROM 701.ROM

Y lo copiamos al pendrive. Es importante que el pendrive esté formateado en FAT16. Al menos a mí no me ha funcionado teniéndolo formateado en FAT32.

Una vez que tenemos el fichero 701.ROM en el pendrive, apagaremos nuestro EEEPC 701, conectaremos el pendrive y lo encenderemos. Cuando comience a encenderse, pulsaremos Alt+F2 para iniciar la herramienta de actualización de la BIOS. Ésta herramienta buscará el fichero 701.ROM en el pendrive y actualizará su bios.
Importante: No interrumpir el proceso y asegurarse de que el portátil tiene la batería cargada. Lo mejor es tener carga en la batería y al mismo tiempo mantenerlo conectado a la red eléctrica, por si acaso.