Autorun en una Raspberry Pi

En esta entrada vamos a configurar Raspbian para que cuando arranque ejecute directamente un programa sin necesitad de ninguna  intervención manual (teclado, ratón pantalla),  en otras palabras vamos a crear un  autorun. Esta configuración de raspbian es necesaria si usamos Raspberry Pi para controlar remotamente un vehículo o robot, un sistema domótico, etc.

Lo primero que debemos comprobar es que el programa se ejecuta correctamente desde el terminal del sistema:

  • Hacer una copia de seguridad de su tarjeta SD
  • Comprobar los permisos del fichero. En LINUX, los permisos se clasifican en tres bloques que muestra con la siguiente secuencia: los del usuario propietario, los de los usuarios de su grupo y los del resto de usaurios. Cada uno de ellos puede: -No tener permiso, R-lectura, W-escritura y X-ejecución.
pi@raspberrypi:~ $ ls -l /home/pi/proyectos/Python/led_balancin.py
-rw-r--r-- 1 pi pi 1041 ene 27 15:49 /home/pi/proyectos/Python/led_balancin.py
  • Dar permisos de ejecución. Así no necesitaremos que lo ejecute el superusuario sudo o el creador del mismo.
pi@raspberrypi:~ $ sudo chmod +x /home/pi/proyectos/Python/led_balancin.py
pi@raspberrypi:~ $ ls -l /home/pi/proyectos/Python/led_balancin.py
-rwxr-xr-x 1 pi pi 1041 ene 27 15:49 /home/pi/proyectos/Python/led_balancin.py
  • Ejecutar el programa por terminal
pi@raspberrypi:~ $ python3 /home/pi/proyectos/Python/led_balancin.py
  • Hacer una copia de seguridad del archivo que vamos a modificar /etc/rc.local 
pi@raspberrypi:/etc $ sudo cp rc.local rc.bak
  • Modificar el archivo añadiendo el comando a ejecutar con & para que no influya en el arranque normal en caso de ser un bucle infinito y posibilitar el acceso a la Raspberry Pi. Puede comprobar el contenido con el comando cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

python3 /home/pi/proyectos/Python/led_balancin.py &

exit 0
  • Cruzar los dedos y  rearrancar la Raspberry pi