"Después del juego es antes del juego"
Sepp Herberger

miércoles, 24 de septiembre de 2025

Fijar velocidad de red en puertos de un dispositivo OpenWRT

Tengo un dispositivo OpenWRT actuando de switch de red y, debido a la malidad calidad del cableado de red, he tenido problemas de estabilidad de la conexión, con cortes intermitentes. Analizando el tráfico de red veo que salta entre 100Mbps y 1000Mbps cada cierto tiempo, provocando un microcorte que congela la conexión a la red interna e Internet.

La solución que he encontrado es fijar a velocidad de 100Mbps el puerto concreto donde va la conexión con la red del centro, de manera que no hay ningún tipo de negociación.

Lo primero es saber cual es el nombre del puerto, eso lo hacemos con:
# brctl  show:
bridge name	bridge id		STP enabled	interfaces
br-lan		7fff.6c7220153a30	no		lan4
							            lan2
							            wan
							            lan3
                                        lan1
En mi caso es el puerto "wan", solo hay que mirar las etiquetas que tiene la entrada rj45 donde va la conexión que falla. Lo siguiente es poner un script de autoarranque que fije esa velocidad:
# cat /etc/hotplug.d/iface/99-fix-speed
#!/bin/sh

[ "$ACTION" = ifup ] || exit 0

if [ "$INTERFACE" = "lan" ]; then
    ethtool -s wan speed 100 duplex full autoneg off
fi
Reiniciando el dispositivo vemos si tiene la velocidad correcta con:
# ethtool wan
Las pruebas posteriores me confirman que un este truquito la señal es mucho mas estable y casi no hay microcortes.

miércoles, 10 de septiembre de 2025

Actualizar BIOS desde FreeDOS+USB

Me ha pasado varias veces que actualizando hardware en equipos algo antiguos he tenido que actualizar la BIOS. El problema viene cuando esa actualización necesita usar MS-DOS (no hay forma de actualizar usando Linux, Windows o a través de la propia BIOS) y el equipo no tiene disquetera ni lector de CD (y además y no ya no tengo ni disquetes ni CDs). Otra opción es arracancar un sistema MS.DOS por red usando PXE, pero es demasiado rebuscdao.

En ese caso la solución más sencilla que he encontrado es bajar una imagen de FreeDOS (clon libre de MS-DOS), meter en ella los ficheros necesarios para la actualización y grabarla en un pendrive usando Rufus (Unetbootin me ha dado casi siempre problemas con este tipo de imágenes).

Vamos a ver un ejemplo práctico. Quiero actualizar una placa base Gigabyte GA-H61M-DS2 (rev. 2.0) a la BIOS versión F9. La descargo desde aqui y las descomprimo. Los ficheros son:
Efiflash.exe
h61mds22.f9
autoexec.bat
Ahora descargo la imagen FreeDOS desde aqui: https://freedos.org/download/. Descargamos la imagen FullUSB y descomprimos el .zip extrayendo el fichero FD12FULL.img.

Este fichero contiene dentro una imagen de anrranque FreeDOS. Hay que montarla y meter dentro los 3 ficheros anteriores para que al arrancar podamos disponer de ellos. Como está en un formato de imagen FreeDOS no se monta con un simple "mount -o loop", hay que hacer alguna operación adicional. Lo primero es hacer
# fdisk -l FD14FULL.img
FD14FULL.img1 * 63 2096639 2096577 1023,7M c W95 FAT32 (LBA)
Esto nos dice que dentro hay una partición FAT32 (LBA), que empieza en el sector 63 y como sector tiene normalmente 512 bytes, tenemos que calcular el offset:

offset = 63 * 512 = 32256

Entonces el comando para montar la imagen sería:
# sudo mount -o loop,offset=32256 -t vfat FD14FULL.img /mnt
/mnt es el directorio donde se montará la imagen. Evidentemente se puede cambiar por otro. -t vfat indica que es FAT32. offset le dice a mount en que punto del fichero .img comienza la partición como tal. Si no se indica el comando mount no puede montarla.

Hecho esto podemos acceder en /mnt al contenido de la imagen. Haremos
# cd /mnt
# mkdir BIOSH61M
# cd BIOSH61M
# cp ...../Efiflash.exe .
# cp ...../h61mds22.f9 .
# cp ...../autoexec.bat .
# cd /root
# umount /mnt
Con esto ya tenemos el fichero IMG con el contenido correcto dentro. Desde un Windows y usando Rufus metemos la imagen IMG en un pendrive..



Luego arrancamos en el PC con ese pendrive y se cargará el FreeDOS. Nos preguntará si queremos instalar FreeDOS pero no, cancelamos la instalación y nos lleva al prompt X:\> de los viejos tiempos. Una vez allí hacemos;
CD BIOS...
EFIFLASH.EXE H61MDS22.F9
Dejamos que acabe y listo, ya tenemos la BIOS actualizada...

miércoles, 3 de septiembre de 2025

Downgrade de Mi Fitness (Xiaomi Wear) para exportar rutas a GPX

Eso de que actualicen una aplicación para "Fix some bugs" y aprovechen para quitar funcionalidades sin dar mas explicaciones me revienta. Soy usuario de la aplicación Mi Fitness (Xiaomi Wear) que uso con el reloj Xiaomi SmartBand. Aparte de las funciones normales de estos chismes, el que yo tengo permite grabar una ruta de senderismo y exportarla de forma gráfica (para el postureo) y en formato GPX, para usarla posteriormente con otros programas y webs de senderismo.

En la última actualización, la 3.43.1i (03-08-2025) la opción de exportar a GPX ha desaparecido sin ningún tipo de justificación. Simplemente la han quitado.

Como esto no puede quedar asi, aparte de quejarme y enviar un correo al típico buzón que tienen conectado con /dev/null, me he puesto a buscar una versión previa de la aplicación para instalarla. Al final la versión "3.33.7i (333007) November 5, 2024" me ha servido ya que es bastante moderna y conserva la funcionalidad de exportar a GPX.

Como Google Play no ofrece versiones antiguas de las apk tenemos que usar una tienda alternativa de confianza para ello, como la Aurora Store o Aptoide, que permiten instalar versiones antiguas de las aplicaciónes. Simplemente instalamos el APK de dicha tienda y buscamos la aplicación y versión correcta.

Tambien tengo aquí el apk para descargar e instalar manualmente.

Ahora solo tenemos que marcar la aplicación para que no se actualice automáticamente y decir que no cuando Android nos pregunte de vez en cuando si queremos subir de versión.

Espero que no se vuelva a repetir.