Inicio

miércoles, abril 29

Preparar equipos linux para trabajar con tarjeta micro:bit [Robótica] en los centros educativos.

Micro:bit es una pequeña tarjeta programable, diseñada por la BBC para facilitar el aprendizaje de programación y robótica. Es un microcontrolador de hardware libre con sensores de luz, movimiento, temperatura, brújula y conectividad Bluetooth/radio, ideal para proyectos IoT (Internet de las Cosas) en educación.

Para poder trabajar con ellas desde los equipos de los centros educativos, con Xubuntu, necesitaremos crearnos algunas reglas en udev, añadir usuario en cuestión al grupo plugdev, etc... y ya de paso crearnos un acceso directo en el escritorio para acceder directamente a la página: https://makecode.microbit.org/

Para añadir la regla en cuestión, desde una consola como usuario administrador, ejecutaríamos el siguiente comando:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", MODE="0666", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/99-microbit.rules > /dev/null

Esto lo único que hace es asignar permisos de lectura/escritura para dispositivos USB (0664) para el ID de proveedor 0d28 (microbit) a los usuarios del grupo plugdev mediante una regla udev.

Seguidamente lo que tendremos que hacer es añadir al usuario del equipo ($USERNAME)  en el grupo udev:

usermod -a -G plugdev $USUARIO

Y por último, solo resta recargar las reglas (como usuario administrador):

udevadm control --reload

udevadm trigger

Si queremos automatizarlo todo y además crear un acceso directo en el escritorio, podemos decargarnos este fichero .zip, lo descomprimimos, y desde dentro de la propia carpeta ejecutamos como root el script: comandos_MicroBit.sh

miércoles, enero 28

Colocar Pantallas en Espejo con comandos.

En el caso que la opción de poner "pantallas en espejo"  desde el entorno gráfico aparezca desactivada, (como ha ocurrido en los portátiles Lenovo que llegaron a los centros de primaria, asociados a los paneles digitales "Dahua", con LC2023) podemos activarla y ponerlas en espejo desde una terminal, ejecutando primero el comando xrandr para ver cuales son las pantallas/monitores que disponemos y sus frecuencias correspondientes:

Ejemplo de salida al ejecutar xrandr:


En el caso de los portátiles, podríamos ejecutar el comando xrandr con las siguientes opciones:

xrandr --output HDMI-A-0 --output eDP --same-as HDMI-A-0

o

xrandr --output HDMI-1 --output eDP-1 --same-as HDMI-1

(los nombres de las salidas gráficas nos los mostrará el comando  xrandr como en el ejemplo de la imagen anterior).

Ejecutado este comando, ya podríamos ir al entorno gráfico y veremos como ya podemos espejar las pantallas y poner la resolución que mejor se ajuste. guardando el perfil.

Esto sería para un caso concreto, si quisiéramos que todos los equipos en esta situación pudieran espejar las pantallas sin que el usuario tuviera que hacer nada, entonces tendríamos que utilizar sripts, colocando uno en /usr/bin/resolucion.sh y otro en /etc/xdg/autostart/Resolucion.desktop (que lo que hará es que se ejecute automáticamente, al iniciar sesión un usuario, el script "resolución.sh").


Conectarse en remoto con entorno gráfico en Debian/Linux 13.

En Xubuntu, al menos hasta la 22.04, para conectarnos a un equipo en remoto y disponer además del entorno gráfico por completo, podíamos hacer lo siguiente:

1. Nos conectábamos en remoto al equipo por ssh y después se ejecutaba el comando: x11vnc -auth guess

2. Una vez hecho lo anterior, desde nuestro equipo o desde donde quisiéramos conectarnos en remoto, ejecutábamos el comando: gvncviewer  IP-equipo-remoto

Y con esto ya teníamos el control remoto del otro equipo con el entorno gráfico incluido.


En Debian/Linux 13  es similar, pero cambiando las opciones del comando x11vc:

1. Nos conectábamos en remoto al equipo por ssh y después se ejecutaba el comando: 

x11vnc -display :0 -auth /run/sddm/xauth_<nombre aleatorio> 

(se puede autocompletar el nombre utilizando el tabulador)


2. Una vez hecho lo anterior, desde nuestro equipo o desde donde quisiéramos conectarnos en remoto, ejecutábamos el comando: gvncviewer  IP-equipo-remoto


martes, enero 27

Test de velocidad en el servidor con comandos.

A). Utilizando speedtest, tenemos varias opciones para medir la velocidad de nuestra conexión:

1. Ejecutar Speedtest.net sin instalación (Recomendado)

Puedes ejecutar el script oficial de speedtest-cli directamente en tu terminal sin necesidad de instalar paquetes permanentemente. Requiere tener Python instalado:

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -

Esto descarga el script de Speedtest y lo ejecuta en memoria para mostrar la latencia (ping), velocidad de bajada y subida

2. Medir velocidad de descarga manualmente

Si solo deseas verificar la velocidad máxima de bajada descargando un archivo de prueba (enviando el contenido a /dev/null para no ocupar espacio), usa este comando:

curl -o /dev/null http://speedtest.sea01.softlayer.com/downloads/test100.zip

Esto descarga un archivo de 100MB y muestra una tabla de progreso con la velocidad promedio en tiempo real

3. Test de respuesta (Latencia y tiempos)

Si lo que buscas es medir cuánto tarda un servidor específico en responder (útil para diagnosticar conexiones lentas a sitios web), puedes usar este formato detallado:

curl -s -o /dev/null -w "Tiempo total: %{time_total}s\nVelocidad de descarga: %{speed_download} B/s\n" https://www.google.com

Esto proporciona métricas precisas sobre el tiempo de conexión y la velocidad de transferencia de esa solicitud específica

4. Instalación de Speedtest CLI (Vía curl)

Para un uso recurrente con más opciones (como elegir servidores específicos), puedes instalar la herramienta oficial de Ookla mediante curl:

# Configura el repositorio oficial, caso que no apareciera en los repositorios oficiales:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash

# Instala la herramienta

sudo apt-get install speedtest-cli

# Ejecuta el test en una terminal:

speedtest

Y la salida sería:

NOTA: Esta es la versión oficial más estable para entornos profesionales o servidores en 2026

----------------------------------------------------------------------------------------

B). Utilizando curl (que previamente tendremos que instalarlo caso que no estuviera ya instalado: apt install curl ).

  • Si queremos realizar un test rápido con curl desde una terminal, probaremos a descargar un archivo grande (descargarlo pero sin guardarlo) y medir así la velocidad de descarga. Por ejemplo, con el siguiente comando probaríamos la velocidad de descargar para un archivo que pesa 100 MB.

curl -o /dev/null http://speedtest.tele2.net/100MB.zip 

  • Si queremos ver tiempos detallados, se puede usar el comando siguiente para ver latencia y tiempo de conexión (Lookup, Connect, Total):

curl -s -w 'Tiempo Total: %{time_total}s\n' -o /dev/null https://www.google.com

Para medir el tiempo se puede utilizar el siguiente formato:

curl -o /dev/null -s -w "Tiempo total: %{time_total}s\nVelocidad: %{speed_download} MB/s\n" URL_DEL_ARCHIVO. 

NOTA Usando la opción:  -o /dev/null  evitaremos guardar archivos de prueba pesados en nuestro disco. 

Por ejemplo: 

curl -o /dev/null -s -w "Tiempo total: %{time_total}s\nVelocidad: %{speed_download} MB/s\n" http://cachefly.cachefly.net/100mb.test

La salida sería la siguiente:

Tiempo total: 9.870694s

Velocidad: 10623123 MB/s

martes, enero 20

Bloquear Redes Sociales desde Pi-Hole

Podemos bloquear todo lo que tenga que ver con las redes sociales, como por ejemplo Facebook o Tiktok,  añadiendo en el Pi-hole (en los servidores) una expresión regular que se ajuste a los posibles nombres de estos dominios e incluirla en la lista negra.

Ejemplos de estas expresiones regulares serían:

- Para Facebook(\.|^)facebook\.com$

- Para Tiktok:      (\.|^)tiktok\.com$

martes, diciembre 16

Reproducir DVDs originales con Ubuntu 22.04.

Para poder reproducir los DVDs originales, deberemos tener instalado los paquetes: ubuntu-restricted-extras  y libdvd-pkg  y después ejecutar:  dpkg-reconfigure libdvd-pkg

Regenerar el initramfs.

Para regenerar el initramfs usaremos el siguiente comando:     update-initramfs -u

Evitar que en Ubuntu la Interfaz de Red desaparezca en algunas ocasiones.

En determinadas ocasiones puede que algún equipo, puntualmente, no aparezca la interfaz de red. En este caso, podemos reiniciar, arrancar con un kerner anterior y ahora ya si aparecería, pero se puede configurar el /etc/netplan (a partir de Ubuntu 22.04) del siguiente modo para evitar este tipo de problemas:

network:
 version: 2
 renderer: networkd
 ethernets:
   eno1:
     dhcp4: yes
     wakeonlan: true
     dhcp6: no
     optional: true
     ignore-carrier: true

Hay que cambiar "eno1" por la tarjeta de red que tengamos. Las lineas en rojo obligan a que la tarjeta de red esté siempre activa, incluso cuando no hay problemas de señal de red. Si no tenemos esas dos líneas sucede de vez en cuando que no aparece la tarjeta de red.

Por otro lado, gracias a ignore-carrier: true  podemos tener una ip fija puesta y que ésta no desaparezca aunque no se tenga conectado el cable de red.

Configurar arranque de equipos para que realice un chequeo de disco automático y lo intente corregir.

Para que en el proceso de arranque del equipo se haga un chequeo automático del disco y se intente auto-reparar, evitando que se pueda quedar parado en el initramfs y haya que proceder a hacer tu el chequeo a mano, podemos modificar el grub, más concretamente el fichero : /etc/default/grub 

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.mode=force fsck.repair=yes"   

o

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.repair=yes"


Y luego hacer:   update-grub

La ventaja de hacer esto es que se realiza el chequeo en cada arranque y se intenta corregir posibles fallos... el inconveniente es que se ralentiza el proceso de arranque.

Poner una Impresora en Red que sólo está conectada por USB a un equipo (sin wifi y sin able de red).

Para imprimir en una impresora por red cuando ésta SOLO está conectado por USB a otro equipo, o sea, no está conectada directamente a la red por wifi o por cable, lo haremos del siguiente modo:

ipp://IP_del_Ordenador_al_que_está_conectada_la_Impresora:631/printers/Nombre-de-la-Impresora

Por ejemplo:

ipp://172.X.Y.Z:631/printers/KONICA-MINOLTA-C368Series

Pruebas  que se puede realizar:

- Desde el Servidor de Impresión, desde el equipo en el que está conectada por USB la impresora:

cupsctl --share-printers

lpadmin -p  Nombre-de-Impresora  -o  printer-is-shared=true

- Desde el Cliente

lpadmin -p Nombre-de-Impresora -E -v ipp://172.19.110.131/printers/Nombre-de-Impresora -m everywhere