Arduino: recuperar un Pro Micro brickeado

No me había pasado nunca, hasta hoy… He “brickeado” mi clónico del Sparkfun Pro Micro al subir un sketch.

Pues bien, si tienes la mala suerte de seleccionar la placa de forma incorrecta, como por ejemplo, seleccionar la versión ATMega32U4 (3,3V / 8MHz), cuando debería ser la ATMega32U4 (5V / 16MHz), brickearás tu placa… Es decir, la dejarás inservible…

Windows entonces te lo desconectará del COM que tenía asignado y te dirá que el dispositivo no funciona correctamente…

Si es este tu caso, prueba a hacer un reset del bootloader, y subir un sketch base seguidamente (uno vacío servirá).

Sigue estos pasos (ojo, requiere algunas pruebas previas, a mi me ha costado dar con la secuencia correcta, que ahora te dejo detallada aquí):

  1. Desconecta tu placa del USB
  2. Desconecta cualquier dispositivo que tengas conectado a sus pins
  3. Conecta un cable entre los pins RST y GND
  4. Enchufa el cable USB (Windows no lo reconocerá en este momento) y esperaremos alrededor de 10s
  5. Desconecta y conecta el cable al pin RST dos veces, dejándolo la segunda vez conectado
  6. Sube el sketch básico 
  7. Una vez compilado, justo cuando diga UPLOADING, desconecta el cable del pin RST, y verifica que el sketch se sube correctamente (parapadearán los led RX/TX)

Ahora ya tienes el sketch cargado y hemos recuperado nuestro Pro Micro.

Desconecta y vuelve a conectar el USB, y valida que ahora sí lo reconoce correctamente Windows…

Espero que os funcione como a mi. Cualquier comentario o duda, ya sabéis, escribid en los comentarios y lo miramos!

 

Saludos,

Jordi

Share Button

Openmediavault 6.9: actualizar Portainer

Muy probablemente a muchos de vosotros os pueda pasar lo que me pasó a mi ayer, y es que tras la última actualización de OMV a la 6.9.10 (puede que anteriores también), la gestión de Docker ya no se hace como servicio a través de las omv-extras, sino que ahora existe un nuevo servicio, llamado Compose, que lo que hace es gestionar todos los Docker de nuestro sistema…

Parece ser que OMV aboga por trabajar sin terceros, cosa que se agradece de sobre manera, pero en este caso, yo estaba muy familiarizado usando Docker mediante Portainer, pero sobre todo, acceder al mismo y actualizarlo desde la antigua pantalla de gestión de Docker de la zona de administración…

Con el nuevo servicio, esta página ya no existe, y no es tan “directo” actualizar Docker y los elementos básicos, como es Portainer. Así que tendremos que hacerlo a mano…

Actualizar Portainer a mano es tan sencillo com hacerlo con cualquier otro contenedor Docker existente… Antes era mas sencillo, parabas, actualizabas y arrancabas…

Pero bueno, no nos pongamos dramáticos… Esto es lo que debéis hacer, rápido y sencillo, desde una consola ssh de vuestro sistema (en mi caso RaspberryPi):

root@openmediavault:~# docker stop portainer
root@openmediavault:~# docker rm portainer
root@openmediavault:~# docker pull portainer/portainer-ce:latest

root@openmediavault:~# docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Què hemos hecho:

  • paramos el contendor actual
  • eliminamos el contenedor actual, porque está construido con una versión antigua
  • volvemos a crear el contenedor, indicando que descargue la última versión de la imagen de portainer community-edition

Tras esto, podemos volver a nuestro navegador y acceder a Portainer normalmente (puerto 9000), y ya lo tendremos actualizado a la última versión.

Espero que os haya podido ayudar. Si hay dudas o tenéis cualquier problema con este procedimiento, podéis dejarme un comentario y lo miramos…

 

Saludos!

Jordi

Share Button

RaspberryPi: instalando Nodejs

En mi mas reciente proyecto, estoy haciendo uso de mi RaspberryPi 3 A+, en el que necesito instalar mi aplicación desarrollada en Node.

Resulta que no es tan sencillo instalar Node en una raspi, pero tampoco es un juego de locos.

Seguid estos pasos:

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install -y ca-certificates curl gnupg
pi@raspberrypi:~ $ sudo mkdir -p /etc/apt/keyrings
pi@raspberrypi:~ $ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
pi@raspberrypi:~ $ NODE_MAJOR=20
pi@raspberrypi:~ $ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install nodejs -y

Con esto hemos añadido el repositorio de código de la última versión (al menos en el momento de escribir este post). Eso además, se consigue con la variable de entorno NODE_MAJOR=20 (podéis sustituirla por la versión que deseéis).

Finalmente:

pi@raspberrypi:~ $ node -v
v20.8.0
pi@raspberrypi:~ $ npm -v
10.1.0

Ya tenemos Nodejs en nuestra Raspi.

Un saludo!!!

Share Button

Docker Windows: crecimiento de disco incontrolado

Llevo un par de días creando una imagen de Docker para poder implementar un servidor dedicado de SCS para EST2 y ATS (estad atentos, porque en breve lo publicaré).

En estos días, me he quedado sin disco en el PC de una forma alucinante. “Algún proceso” ha consumido disco de forma descontrolada, unos 40Gb de la noche a la mañana, dejando en rojo el estado del mismo…

He usado WinDirStat, recomendado por el equipo de sistema de la empresa en la que trabajo, y el resultado es el que veis mas arriba… 31Gb sin saber bien bien dónde se han ido…

Hice limpieza en Docker Desktop (Windows), que precisamente tenía ocupado en disco casi 32Gb… pero eso no sirvió de nada. Así que me dispuse a buscar un poco por internet, y encontré el motivo de ese crecimiento de disco desmesurado. Parece ser que la nueva versión de Docker Desktop para Windows permite usar, o bien Hyper-V o WSL (sistema Linux sobre Windows). Pues bien, si no dices nada, el sistema usa WSL por defecto para gestionar las imágenes de Docker, y WSl a su vez, crea un disco virtual dónde almacena toda la caché local que utiliza para la creación de imágenes, etc…

La solución es compactar ese disco duro virtual, de forma que ocupe menos…

Os dejo cómo hacerlo, yo he recuperado 20 de los 31Gb…

Desde PowerShell:

Windows PowerShell
Copyright (C) Microsoft Corporation. Todos los derechos reservados.
Instale la versión más reciente de PowerShell para obtener nuevas características y mejoras. https://aka.ms/PSWindows                                                                                                                           

PS C:\WINDOWS\system32> cd C:\Users\<user>\AppData\Local\Docker\wsl\data
PS C:\Users\<user>\AppData\Local\Docker\wsl\data> wsl --update
Comprobando actualizaciones.
La versión más reciente de Subsistema de Windows para Linux ya está instalada.
C:\Users\<user>\AppData\Local\Docker\wsl\data\
PS C:\Users\<user>\AppData\Local\Docker\wsl\data> optimize-vhd -Path .\ext4.vhdx -Mode full

Lo primero que hacemos es actualizar WSL, por si acaso no tenemos la última versión, y posteriormente usamos el comando optimize-vhd -Path .\ext4.vhdx -Mode full desde el punto de anclaje del disco duro virtual de Docker (lo podéis ver en el código).

De esta forma, cuando acabe, tendréis liberado gran parte del espacio que Docker se ha reservado para sus cosas…

Es recomendable ir haciendo estas cosas muy a menudo, para así liberar a medida que se vaya llenando. Lo otro que también podéis hacer es hacer un system prune, para eliminar datos que ya no necesitéis, pero ese proceso es destructivo, has de estar muy seguro de lo que haces!

Espero que en futuras versiones tanto de WSL como del Docker Desktop se pueda gestionar este tipo de cosas de forma mas sencilla…

Espero haberos ayudado, cualquier casa, me decís! 🙂

 

Jordi 

 

 

Share Button

Related Images:

openmediavault 6: solucionar problemas de conexión samba desde Windows 10

Muy buenas,

Desde hace ya… mucho, demasiado tiempo, voy tras un problema que no me permitía compartir directorios por red desde mi openmediavault con Windows 10 (aunque es extensible a cualquier otra versión).

El error que aparecía es el típico que indica que no tienes permisos para acceder al recurso compartido.

¿Cómo compartir una carpeta correctamente por samba desde openmediavault 6? Es más sencillo de lo que pensaba!

Estos son los pasos para hacerlo de forma abierta (para invitados):

  1. Comparte tu carpeta desde Almacenamiento / Carpetas Compartidas
    • deja los privilegios en blanco
    • en la parta de ACL, has de marcar como propietario root y grupo users, sin marcar ningún otro privilegio de usuario, dando además privilegios de Lectura/Escritura/Eejecución al ususario y grupo, y dejando como Solo lectura al resto (o ninguno)
    • no olvides marcar la opción Recursivo, para que afecte al directorio y todo su contenido
  2. Comparte tus carpetas desde Servicios / SMB/CIFS / Compartidos
    • para cada carpeta que desees compartir por samba, incluye una en este apartado
    • mis opciones para cada una de ellas son:
      • Navegable
      • Se permite invitados
      • Ocultar archivos *.dot
      • Atributos extendidos
      • Guardar atributos DOS

Cuando guardes los cambios y los confirmes, podrás navegar a través de todos estos recursos desde la conexión a redes de tu Windows, sin errores de permisos!

Si deseas vetar al usuario / grupo de cada recurso, es decir, no hacerlo disponible para invitados (te pedirá credenciales cada vez que te conectes, muy útil para directorios sensibles o de usuarios), recuerda marcar NO en el apartado de Permitir invitados, y previamente deberás haber dado permisos de Lectura/Escritura/Ejecución (o aquellos que te interesen) sobre la carpeta al usuario y grupo que te convenga (pero no cambies el propietario, ahí reside el problema de SMB con openmediavault!).

Espero haberos ayudado, pero si hay dudas o problemas, me decís, y lo miramos 🙂

Saludos!!!

 

Share Button

openmediavault 6: Docker

Vamos a profundizar en algo que a mi, especialmente, me encanta de este entorno tan completo como es OMV6. Se trata de instalar Docker, y toda una serie de herramientas periféricas, que harán de nuestro equipo un dispositivo realmente interesante.

Muchos me preguntaréis, ¿pero OMV no es un entorno de gestión NAS? Por qué instalas cosas que realmente no tienen nada que ver con ello, antes incluso de crear y administrar recursos de almacenamiento, discos, etc…

La respuesta es muy sencilla, porque el potencial que nos da Docker, por ejemplo, y otros recursos de OMV van mas allá de configurar un simple sistema de archivos, o de usuarios (que si, haremos más adelante).

Como decía, vamos a instalar Docker y todas las herramientas periféricas, ofrecidas por el equipo de omv-extras.

Continue reading ‘openmediavault 6: Docker’ »

Share Button

openmediavault 6: configurando NUT

Una vez ya tenemos nuestra instancia de OMV funcionando en nuestra RaspberryPi, el siguiente punto que me dispongo a realizar es el de instalar nuestro sistema SAI, componente extremadamente importante en cualquier instalación de un sistema NAS o similar. Recordemos que una pérdida de tensión es lo peor que nos puede pasar en un servidor, y OMV es eso mismo, un servidor de ficheros, entre otras muchas cosas, y posiblemente de material muy importante…

 

En esta ocasión volveré a utilizar NUT, como no podría ser de otra forma. NUT, para los que no lo conozcáis, es un conjunto de drivers y software libre de control de SAIs/UPS. Es muy buen sistema y lo mejor es que tiene una gran comunidad a sus espaldas.

Volviendo al tema SAI. En mi caso, los que ya me conocéis, sabéis que tengo un Salicru SPSOne 900VA, que ya he utilizado en anteriores ocasiones, y es el que instalaremos de nuevo en esta ocasión en openmediavault 6 (podéis ver diferentes entradas relacionadas con NUT si usáis mi buscador, pero en especial hay una en el que lo he configurado en concreto para openmediavault 5, y que no va a ser muy distinto a lo que hoy os muestro).

Continue reading ‘openmediavault 6: configurando NUT’ »

Share Button

Tutoriales: instalar openmediavault en RaspberryPi

Como ya muchos sabéis, soy amante de la RaspberryPi, y suelo probar muchas cosas, aunque normalmente con poca transcendencia, porque nunca acabo muchos de mis proyectos… lo hago simplemente, por jugar y aprender.

Pero hay algo que sí me llamó la atención hace mucho tiempo: openmediavault.

Podríamos decir que me he convertido en fan de esta gran herramienta. ¿Y por qué?

  • gestión visual de muchos recursos de la pi
  • gestión de usuarios, y grupos
  • gestión de almacenamiento y acceso en la red, NAS
  • posibilidad de personalizar mucho mucho todo lo anterior
  • y lo que más me gusta: soporte Docker
    • levanto contenedores fácilmente
    • pruebo cosas y si fallan, las borro
    • me he montado una suite local de broadcasting multimedia, de vídeos y fotos, etc…

Y muchas cosas mas!!!

He publicado un mini tutorial, el primero de varios espero, sobre cómo instalar OMV sobre una RaspberryPi 4.

Si os hace aprender o simplemente, saber qué es esto del OMV un poquito mas, podéis seguir mi tutorial y a ver qué os parece: Instalando openmediavault en una RaspberryPi

Ya me diréis qué os parece.

 

Saludos!

Jordi

Share Button

Related Images:

Configurar SSH y WiFi en RaspberryPi sin monitor (otro método)

El pasado 7 de mayo de 2020 publiqué una de las entradas que más he usado en todo este tiempo de juegos con la RasPi, la de Configurar SSH y WiFi en RaspberryPi sin monitor. Yes que para mí es vital poder hacerlo, porque plancho muchas veces imágenes del sistema operativo Raspbian en mi microsd, para testear y desarrollar, y siempre es en formato consola, incluso versiones lite, para que ocupen lo mínimo posible, y así poder dedicar mas espacio y tiempo al desarrollo…

Bien, pues no hace mucho me enteré de que el “quemador” de imágenes oficial de RaspberryPi, el Raspberry Pi Imager, nos permite configurar de saque todo esto que necesitamos, simplemente modificando las propiedades de configuración del proceso de planchado…

Una vez instalado, lo ejecutamos…

Seleccionamos la imagen que queremos grabar (en mi caso la RASPBERRY PI  OS LITE (64b)), el medio de almacenamiento destino (en mi caso SDXC CARD) y finalmente, presionamos sobre el icono de Propiedades

Le diremos que queremos activar SSH, en mi caso, con password de usuario (podríamos usar una clave pública también):

 

Posteriormente, le indicamos que queremos configurar nuestro SSID de WiFi:

 

Y le damos a guardar SAVE

El último paso ya es grabar la imagen con el botón WRITE, y cuando acabemos tendremos nuestra SD lista para ponerla en la RasPi y acceder mediante wifi por SSH, con el usuario deseado (OJO! A mi me ha obligado a informar el usuario, yo lo he dejado como estaba por defecho, pi/raspeberry).

¿Os ha funcionado? Fácil, verdad???

Ya me diréis…

 

Un saludo!

Jordi

Share Button

Related Images:

Configurar Nut en Openmediavault 5

Muy buenas,

Hoy me disponía a hacer una actualización de mi tutorial a cerca de la administración de mi SAI Salicru SPS One 900VA con Nut (podéis verlo aquí), cuando me he dado cuenta de que al activarlo desde el panel de administración de Openmediavault, fallaba la actualización del servicio “monit” (el gestor de monitorización).

Pues bien, el problema es que “parece” como si la configuración del daemon de Nut para Openmediavault no estuviera del todo bien tuneado. Entonces, al guardar los cambios en nuestra configuración de UPS nos lanza un error bastante catastrófico, que indica que es imposible iniciar el servicio, y no podemos continuar.

Como os comentaba, bastará con actualizar un fichero que es el que le indica a monit cómo debe arrancar el servicio de Nut en nuestro sistema (es muy parecido a mi tutorial, pero capado y en formato gráfico).

Para solucionarlo, deberéis modificar el fichero: /srv/salt/omv/deploy/monit/services/files/nut.j2

De modo que os quede algo como:

{%- if nut_config.mode != 'netclient' %}
check process nut-server with matching upsd
    group nut
    start program = "/bin/systemctl start nut-server"
    stop program = "/bin/systemctl stop nut-server"
    mode active
{%- if email_config.enable | to_bool and not notification_config.enable | to_bool %}
    noalert {{ email_config.primaryemail }}
{%- endif %}
{%- endif %}
check process nut-monitor with matching upsmon
    group nut
    start program = "/bin/systemctl start nut-monitor"
    stop program = "/bin/systemctl stop nut-monitor"
    mode active
{%- if email_config.enable | to_bool and not notification_config.enable | to_bool %}
    noalert {{ email_config.primaryemail }}
{%- endif %}

{%- if nut_config.mode != 'netclient' %}
check program nut-upsc-{{ nut_config.upsname }} with path "/bin/upsc {{ nut_config.upsname }}"
    group nut
    start program = "/sbin/upsdrvctl start"
    if status != 0 for 2 cycles then restart
{%- endif %}

Si comparáis con vuestro fichero, lo que deberéis modificar es:

  • línea 21: cambiar /usr/bin/upsc por /bin/upsc
  • línea 22: cambiar /usr/sbin/upsdrvctl por /sbin/upsdrvctl

Como decía, el motivo es que el ejecutable de nuestro driver se encuentra en otra carpeta distinta a la que se espera, y será imposible arrancar el servicio de monitoreo.

Una vez modificado, guardamos y podemos volver a aplicar los cambios en nuestra configuración de Nut en Openmediavault:

 

Espero que os haya servido de ayuda 😉

 

Saludos,

Jordi

Share Button