3ENGINE

Programación y otros cachivaches

Archivo

Página 2/104

Tecnologia

Copia de seguridad de una tarjeta SD


Cómo hacer una copia de seguridad

Cuando tenemos creado en una tarjeta SD el sistema operativo para una Raspberry Pi o una Orange Pi (entre otras) es conveniente realizar copias de seguridad de la tarjeta SD para evitarnos futuros problemas, como por ejemplo que la tarjeta SD falle.

Una de la aplicaciones mas utilizadas es Win32 Disk Imager. Esta aplicación crea una copia de seguridad completa de la tarjeta SD a un fichero .img. Una vez instalada, insertamos la tarjeta SD en el ordenador. Indicamos donde queremos guardar la imagen, la letra de la unidad que identifica la tarjeta SD y click en el boton read.

Cómo restaurar la copia de seguridad de una tarjeta SD

Para hacer esto, necesitamos una aplicación como etcher. Esta aplicación permite grabar imagenes en una tarjeta SD. Una vez instalada abrimos la aplicación, seleccionamos la imagen, la unidad donde hemos insertado la tarjeta SD y flasheamos.

Tambien puedes utilizar Win32 Disk Imager para restaurar tu copia de seguridad:




Tecnologia

Orange pi: control automático de un ventilador


Hola! a continuación un pequeño tutorial de cómo añadir un pequeño ventilador a un orange pi para mantener a raya la temperatura del procesador. Dependiendo del uso que le vayas a dar a tu Orange Pi, puede ser necesario añadirle un pequeño ventilador. Si sólo quieres que se encienda el ventilador cuando la temperatura del procesador suba, sigue leyendo

Conectar ventilador a la Orange Pi

Vamos a hacer uso de una de las GPIO de la Orange Pi para enviar una señal al ventilador y otros dos pines para alimentarlo. El esquema es el siguiente:

Hay esquemas mas sofisticados. Yo he elegido el mas sencillo. Sólo nesitamos un transistor de baja potencia NPN. Por ejemplo un 2N2222 y una resistencia de 1K (aprox). Utilizo el GPIO 7 para enviar la señal para activar/desactivar el ventilador, pero por supuesto se puede usar el GPIO que querais. Yo tengo una Orange Pi Zero. Aqui teneis el conexionado

Y asi quedaria una vez instalado

Programación del ventilador

Primero hay que comprobar si funciona el comando gpio. Nos conectamos por ssh y tecleamos lo siguiente:

Sino reconoce gpio entonces aqui las instrucciones para instalarlo.

El siguente paso es crear una carpeta que se llame Fan y dentro de la carpeta crear un fichero fancontrol.sh con permisos de ejecución (chmod +x fancontrol.sh) que contendrá el siguiente script:

#!/bin/bash

echo "Pres CTRL+C to stop..."
gpio mode 7 out

for (( ; ; ))
do

   temperature=$(< /sys/devices/virtual/thermal/thermal_zone0/temp)
   gpio=$(gpio read 7)

   if [ $gpio -eq "0" ]
   then
     if [ $temperature -gt 67000 ]
     then
       echo "temperature: $temperature > FAN ON"
       gpio write 7 1
     fi
   else
     if [ $temperature -lt 49000 ]
     then
       echo "temperature: $temperature > FAN OFF"
       gpio write 7 0
     fi
   fi

   sleep 10s
done

Este script lo que hace es obtener cada 10 segundos la temperatura del procesador. Si excede los 67ºC envia una señal de encendido por el GPIO 7. Cuando la temperatura baja de los 49ºC envia una señal de apagado.

Crear un servicio

Por último queremos que este script corra siempre en el sistema. Necesitamos instalar el script como servicio. En este link explico cómo hacer esto.

El primer paso es crear un fichero en /etc/systemd/system con extensión .service

cd /etc/systemd/system/
touch fancontrol.service

Con el siguiente contenido.

[Unit]
Description=FanControl
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=5
User=root
ExecStart=/root/Fan/fancontrol.sh

[Install]
WantedBy=multi-user.target

Y por último registramos y arrancamos el servicio

systemctl enable fancontrol.service
systemctl start fancontrol.service

Averiguar el estado del servicio

Para averiguar el estado del servicio y comprobar cuando se arranca y para el ventilador, podemos hacer uso de systemctl status.




Tecnologia

Cómo deshabilitar la política del mismo origen en Chrome


Como medida de seguridad los navegadores web tienen un mecanismo que impiden acceder a datos de otras páginas web cuando el origen (protocolo, host y puerto ) no coinciden.

A continuación detallo los pasos para deshabilitar la política del mismo origin en Chrome, o lo que es lo mismo, cómo activar CORS (Cross-Origin Resource Sharing).

Paso 1: Localizar los binarios de Chrome

Si tienes acceso directo en tu escritorio, simplemente haz clic derecho y selecciona «Propiedades». El campo Target/Destino contiene la ruta completa al binario.

Sino tienes acceso directo, y el acceso directo está anclado a la barra de tareas, entonces click derecho en Chrome, luego de nuevo click derecho en Chrome en el menu y por último click izquierdo en «Propiedades».

Paso 2: Ejecutar Chrome desde linea de comando para desactivar la política del mismo origen

Abre un consola. Y ejecuta el siguiente comando, sustituyendo la ruta a Chrome por la obtenida en el apartado anterior. Fijate que tendrás que pasarle la ruta a una carpeta donde Chrome guardará sus archivos temporales.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:/carpeta_temporal"

Extra

En Linux usa uno de los dos siguientes comandos. El primero si tienes instalado Chrome o el segundo si tienes instalado Chromium:

google-chrome --disable-web-security --user-data-dir="/tmp/carpeta_temporal" 
chromium-browser --disable-web-security --user-data-dir="/tmp/carpeta_temporal"



Tecnologia

Cómo instalar y gestionar servicios en Ubuntu


Ubuntu, como la mayoria de sistema operativos, tiene servicios (tambien llamados daemons) que se ejecuta en segundo plano y que el sistema operativo se encarga de iniciar automaticamente al arrancar. Te muestro cómo puedes crear, iniciar, detener y reiniciar un servicio de Ubuntu.

Listado de servicios en Ubuntu

El comando service te muestra la lista completa de servicios

Administrar un servicio Ubuntu

systemd es un conjunto de servicios de administración de sistema, y herramientas que permiten interactuar con el núcleo de sistema operativo. La orden mas usada para conocer y controlar es systemctl. A continuación muestro los comandos mas comunes.

Arrancar un servicio

sudo systemctl start <nombre_del_servicio>

Parar un servicio

sudo systemctl stop <nombre_del_servicio>

Reiniciar un servicio

sudo systemctl restart <nombre_del_servicio> 

Averiguar estado de un servicio

sudo systemctl status <nombre_del_servicio>

Crear un servicio en Ubuntu

Vamos a crear un servicio llamado helloworld. El primer paso es crear un fichero en /etc/systemd/system con extensión .service

cd /etc/systemd/system/
touch helloworld.service

Editamos el fichero

[Unit]
Description=Ejemplo
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=dmiro
ExecStart=/usr/bin/env python3 /path/to/sample.py

[Install]
WantedBy=multi-user.target

Si necesitas mas información, consulta la documentacion oficial de systemd

Y por último, registramos e iniciamos el servicio

systemctl enable helloworld.service
systemctl start helloworld.service