Archivo de la etiqueta: Linux

Arreglar una doble conversión a UTF-8

Esta es una de esas entradas de recordatorio para cuando me haga falta otra vez, y además, que le pueda servir a alguien más.

Ayer, a mis amigos de Fanboy.es les cerraron el chiringuito por consumo excesivo de recursos, y por el mensaje del administrador del hosting, tenía toda la pinta de ser culpa de algún plugin que están usando en WordPress.

Anoche, después de que les reactivaran el servicio, me puse a actualizarles el WP y el muy puñetero la cagó al actualizar la BB.DD., porque empezaron a salir caracteres extraños en lugar de las tildes, como si la página estuviese codificada en Latin1, y los datos en UTF-8.

Esta mañana me he puesto a mirar y resulta que lo que había pasado es que el actualizador había convertido a UTF-8 las tablas que ya estaban en UTF-8, así que ahora los caracteres que debían ocupar 2 bytes (los acentuados), estaban ocupando 4 bytes.

Por ejemplo: la palabra «próximo» estaba así «próximo»:

00000000 70 72 c3 83 c2 b3 78 69 6d 6f 0a |pr....ximo.|

Así que lo que he hecho ha sido hacer una copia de seguridad de la BB.DD. y ponerme a buscar cómo «volver atrás» en esa conversión. Buscando un poco por internet, he encontrado esta página, e inspirándome en lo que cuentan ahí, he hecho la conversión de esta forma:

sed -e 's/\xc3\x83\xc2\(.*\)/\xC3\1/g' -e 's/\xC3\x82\xC2\(.*\)/\xC2\1/g' -e 's/\xc3\xa2\xc2\x80\xc2\(.*\)/\xe2\x80\1/g' fanboyes_blog.sql > fanboyes_blog_utf8.sql

Ya sólo quedaba importar ese fichero de nuevo en la BB.DD… Et voilà!, ¡todo funcionando perfectamente! :-)

Una vez más, trabajar con Linux y herramientas GNU me ha ayudado a solucionar un problema… ;)

Wake On LAN, Realtek 8169 y Linux

Llevo unas horitas intentando hacer que mi ordenador arranque usando el Wake-On-LAN, pero ya lo he solucionado.

Lo curioso del tema es que si arrancaba Windows XP y apagaba el ordenador, el arranque usando etherwake funcionaba perfectamente; pero si arrancaba Linux y apagaba, no podía volver a encenderlo usando este método.

Después de volverme loco usando ethtool para configurar el WoL en la tarjeta de red, no conseguí nada. De todas formas, pongo por aquí lo necesario para activar el WoL en un dispositivo en Linux:

ethtool -s eth0 wol g

Al final, resulta que el driver del kernel para esta tarjeta tiene un bug que hace que no informe a la BIOS de que es capaz de encender al sistema cuando apagas el ordenador.

El hack que hay hasta la fecha es hacer que el programa que prepara el ordenador para el apagado no «desconfigure» los dispositivos de red, así que al menos en Debian y derivados, tenéis que editar el fichero /etc/init.d/halt.

Buscar la llamada al programa halt y eliminar el parámetro -i, que es el que le dice que «desconfigure» los dispositivos de red:


log_action_msg "Will now halt"
sleep 1
# halt -d -f -i $poweroff $hddown
# Parche para que funcione el Wake-On-LAN
halt -d -f $poweroff $hddown

Después de eso, ya me funciona perfectamente y puedo encender mi ordenador desde el router Linksys con Kamikaze. :-)

Drivers de ATI para Linux: una porquería

Logo ATI LinuxComo ya comenté el año pasado, me cambié de ordenador después de muchos años. Al final pillé un Core2Duo E6600 con 2GB de RAM y un disco duro de 400GB SATAII. La tarjeta gráfica es una ATI Radeon X1650 Pro con sistema de refrigeración Silent Pipe II (Heat pipe) para evitarme otro ventilador y así tener menos ruido. No es una tarjeta puntera ni mucho menos, pero para lo que yo hago, me sobra.

En realidad estoy muy contento con él, es un pepino, la virtualización va perfecta y como no uso el ordenador para jugar, la verdad es que tengo la sensación de que aquí hay ordenador para por lo menos otros 7 años… Aumentando la memoria y el disco duro, claro… :D

Pero con quien estoy cabreado es con ATI, porque llevo unos días observando que el indicador de temperatura de la tarjeta gráfica me sube a entre 32 y 34 grados centígrados cuando estoy usando Linux, pero sin usar compiz, ni juegos, ni nada… sólo navegando con Firefox y poco más. Resumiendo: nada que implique que la tarjeta gráfica tenga que trabajar demasiado. Sin embargo, arranco Windows XP y empieza a bajar la temperatura hasta mantenerse en 26 grados.

He actualizado los drivers para Linux a la última versión y nada, igual. Y encima, los drivers que estoy usando en Windows son de hace casi un año.

Luego me he puesto a buscar un poco y por lo visto no soy el único al que le pasa esto. Definitivamente, ATI tiene que ponerse las pilas y sacar unos drivers para Linux en condiciones.

Nota: Puede que las temperaturas reales sean más altas, porque estoy usando el sensor que trae la caja del ordenador, pero para este caso da lo mismo, lo importante es la diferencia de temperatura.

Configuración de OpenWrt Kamikaze en modo Cliente y AP a la vez

Desde hace unos tres años vengo usando un router Linksys WRT54G flasheado con el firmware OpenWrt. Lo uso para conectarme como cliente de otro punto de acceso que me provee la conexión a Internet.

También tengo otro Linksys WRT54GS que lo usaba más que nada para cacharrear y como centralita de VoIP usando Asterisk.

Bien, pues el otro día este último sufrió, digamos, una de mis terribles metidas de manos y no arrancaba, así que aproveché para probar la nueva versión de OpenWrt, a la que han llamado Kamikaze (versión 7.07 en el momento de escribir esto).

Sigue leyendo

Análisis de un programa

Hace un porrón de años… pero muchos, muchos… cuando estábamos por Fidonet, nos dió por currarnos nuestro propio editor de mensajes para Linux.

Quedamos en una cafetería que ya no existe y empezamos con el análisis…

Sin duda, los mejores análisis de programas se hacen en las servilletas de bar… :D. Esta me la guardé de recuerdo… ;)

Análisis de un programa

Por cierto, el que reconozca su letra que levante la mano… :D