domingo, octubre 27

Auto Script en Raspbian

Ya tenemos la configuración en modo modo kiosko con Midori en Raspberry Pi y también el Raspberry Auto Startx | Auto Login ahora si después del inicio del Raspberry Pi necesitáramos ejecutar algún comando...


Script automatico Raspbian


Para eso vamos a crear un script automatico para el Raspberry Pi que se ejecute justo después de hacer el auto login, primero creamos el archivo en el directorio home:

$ nano ~/node.sh

En mi caso yo ejecutare varios comandos en el mismo script por lo tanto lo dejo de la siguiente manera:

#!/bin/bash
echo node.sh : Ejecutando servidor
cd ~/proyectoT
sudo chmod 775 /dev/ttyUSB0
node server-movil.js &

lo hacemos ejecutable:

chmod ugo+x ~/node.sh

Ya que esta creado el script con los comandos que necesites ejecutar procedemos a modificar el siguiente archivo para que se ejecute al inicio.

sudo nano ~/.bashrc

Nos dirigimos al final del archivo y agregamos las siguientes lineas:

# Run node server
echo .bashrc: Ejecutando servidor node.js
bash node.sh

Una vez hecho esto pasamos a reiniciar el Raspberry Pi y esto sucede:

script automatico


Blog escrito por Sául Vázquez Radilla.

Raspberry Pi Auto StartX y Login


Esta entrada es la continuación de la configuración del modo kiosko del Raspberry Pi, para evitar que exista la necesidad de ingresar los datos de usuario al momento de iniciar el Raspberry Pi.


Raspberry Pi Auto Login


Para poder configurar que el Raspberry Pi tenga Auto Login en una terminal ejecutamos el comando de sudo nano /etc/inittab ahora bien he visto que varios blogs dicen que debemos realizar los siguientes pasos:

1. Encontrar la siguiente linea en el archivo de inittab:

   1:2345:respawn:/sbin/getty 115200 tty1

2. Comentar la linea:

   #1:2345:respawn:/sbin/getty 115200 tty1

3. Por ultimo ingresar esta linea justo de bajo de la que se comento:

   1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1

Y guardarlo...


Auto Login en Retropie o Raspbian


Para explicar otra forma de configurar el autologin en retropie o raspbian tengo que decir que yo siempre me quedo estancado en el primer paso de como lo explican los demás blogs, lo que sucede es que nunca encuentro esa linea... la que mas se parece a esa linea seria la siguiente:

1:2345:respawn:/sbin/getty --noclear 38400 tty1

Quizás sea por la distribución que manejo (2013-09-25-wheezy-raspbian), la verdad lo desconozco, comente esa linea:

#1:2345:respawn:/sbin/getty --noclear 38400 tty1

Y justo de bajo de la misma agregue lo siguiente:

1:2345:respawn:/bin/login -f $Usuario </dev/tty1 >/dev/tty1 2>&1

Donde $Usuario es el usuario que te encuentras trabajando en mi caso quedaría así:

1:2345:respawn:/bin/login -f $Usuario </dev/tty1 >/dev/tty1 2>&1

Guardamos los cambios y se reinicia el Raspberry Pi y obtendremos:

retropie autologin

Raspberry Pi Startx (LXDE)


También existe la forma de configurar el Raspberry Pi Startx con LXDE que es lo que hace que inicie automáticamente el modo gráfico del raspberry pi y esto se hace modificando el siguiente archivo con:

sudo nano /etc/rc.local

Se van hacia el final del archivo y justo arriba del exit 0 agregan la siguiente linea:

su -l pi -c startx

raspberry pi autologin


Guardamos y reiniciamos el Raspberry Pi y nos da como resultado, que el Raspberry Pi con Startx ya se encuentra configurado para que se haga un autologin siempre que inicie el Raspberry Pi:

raspberry pi startx

raspberry startx

lxde raspbery pi automaticamente



Blog escrito por Sául Vázquez Radilla.
sábado, octubre 26

Node JS Raspberry Pi


¿Qué es Node JS?


El Node JS es un entorno de programación en la capa del servidor, cabe mencionar que este permite manejar el flujo constante de información para evitar que el Raspberry Pi procese mucha información en proyectos, será muy útil la instalación del Node JS en Raspberry Pi.


Node JS para Raspbian


Antes de iniciar nos dirigimos a la página donde tendremos que descargar el Node JS para Raspbian y copiar la dirección de la ultima versión del node.js

La ultima versión hasta ahora es la v.13 pero la versión de Node JS para Raspbian hasta donde yo se, es la v0.10.17 por lo tanto copias la dirección de esa versión.

Creamos una carpeta con el siguiente comando:

$ sudo mkdir /opt/node

Luego se utiliza la dirección de la ultima versión del node.js que se realizo previamente y ejecutas el siguiente comando:

$ wget http://nodejs.org/dist/v0.10.17/node-v0.10.17-linux-arm-pi.tar.gz 
 
Una vez que se termine de descargar descomprimes el archivo:

$ tar xvzf node-v0.10.17-linux-arm-pi.tar.gz

Ahora copias todo en la carpeta antes creada del /opt/node:

$ sudo cp -r node-v0.10.17-linux-arm.pi.tar.gz/* /opt/node

Añades una variable para el path del node.js de la siguiente manera:

$ sudo nano /etc/profile

Y al final del archivo agregas las siguientes lineas:

PATH="$PATH:/opt/node/bin"

y le cambiamos los permisos de usuario esto sera necesario cuando se quiera ejecutar npm install -g nombrepaquete para instalar algún paquete.

sudo chown -R $Usuario /opt/node

donde $Usuario es el nombre del usuario que tiene el Raspberry Pi en este caso el comando seria asi: sudo chown -R pi /opt/node

Y ahora reiniciamos el Raspberry Pi, una vez que termine el reinicio ejecutamos los comandos:

$ node -v
$ npm -v

para confirmar que se instalaron correctamente como es mi caso:



Instalar Node JS en Raspberry Pi


Ahora para instalar paquetes que llegaras a ocupar en el node.js desde Raspbian primero vamos a crear una carpeta y le daremos permisos de 775:

$ sudo mkdir proyectoT
$ sudo chmod 775 proyectoT

En este ejemplo instalare únicamente el paquete express.io:

$ npm install express


Se obtendrían los paquetes correspondientes y al final tendrás una carpeta con el nombre de node_modulesdonde se encontraran todos los paquetes que instales.



Blog escrito por Sául Vázquez Radilla.
domingo, octubre 20

Raspberry Pi Sakis3g

Sakis3g en Raspberry Pi


Como ya sabemos Raspberry Pi con Modem 3G modelo ZTE MF180, por lo menos con ZTE MF180 ahora vamos a realizar un Script para que se conecte automáticamente y no exista ninguna interacción con el usuario y esto se realiza con el Sakis3g en el Raspberry Pi.

Ya teniendo las configuraciones para que nuestro módem sea detectado, con los programas que se utilizaron, los datos del módem en mi caso el ZTE WCDMA Technologies MSM(19d2:0117) y los datos de tu conexión de APN en mi caso (internet.itelcel.com) con su usuario (wgprs) y su contraseña (wgprs2012).

El sakis3g debemos dejarlo en la carpeta /home/pi/3g y para que nuestro script funcione tenemos que cambiarlo de lugar a la carpeta /opt para darle los permisos necesarios sin que pregunte por la contraseña del usuario ejecutamos los siguientes comandos, ubicándonos primero en la carpeta 3g donde se encuentra el sakis3g:

$ sudo mkdir -p /opt/sakis3g/ 
$ sudo mv sakis3g /opt/sakis3g 
$ sudo chown root:root /opt/sakis3g/sakis3g

$ sudo ln -s /opt/sakis3g/sakis3g /usr/bin

Ahora una vez hecho esto ejecutamos: 

$ sudo visudo

Y agregamos la siguiente linea hasta el final del archivo:

Tu-usuario ALL = NOPASSWD: /opt/sakis3g/sakis3g

En este caso donde dice Tu-usuario,seria el usuario de la Raspberry en mi caso pi, por lo tanto quedaría de la siguiente manera:

pi ALL=NOPASSWD: /opt/sakis3g/sakis3g

Ahora creamos el siguiente archivo:

$ sudo nano /etc/sakis3g.conf

Y dentro del mismo agregamos las siguientes lineas

USBDRIVER="option"
#USBINTERFACE="3"
APN="internet.itelcel.com"
APN_USER="wgprs"
APN_PASS="wgprs2012"
MODEM="19d2:0117"

Modificando los parámetros con respecto a los detalles de tu conexión, una vez guardado el archivo ejecutamos el siguiente comando:

$ /opt/sakis3g/sakis3g --sudo "connect"


Si... y solo si, cuando ejecute este comando le sale lo siguiente:

sudo ./sakis3g connect
Please select USBMODEM variable by using USBMODEM variable, or by enabling interactive mode.
        $ /usr/bin/modem3g/sakis3g --interactive "--sudo" "connect"
Available options are:
0424:9512     BUSNUM=001
0424:ec00     BUSNUM=001
04d9:2519     2.4Ghz reciever
19d2:0117     ZTE WCDMA Technologies MSM
1a40:0201     USB 2.0 Hub [MTT]
1d6b:0002     DWC OTG Controller
Example:
        $ /usr/bin/modem3g/sakis3g USBMODEM="0424:9512"

Entonces tenemos que volver a modificar nuestro sakis3g.conf (sudo nano /etc/sakis3g.conf) y agregamos (esto dependerá de las configuraciones de tu APN, por lo tanto esto puede cambiar), al final mi sakis3g.conf quedo así:

USBDRIVER="option"
#USBINTERFACE="3"
APN="internet.itelcel.com"
APN_USER="wgprs"
APN_PASS="wgprs2012"
USBMODEM="19d2:0117"
OTHER="USBMODEM" 

NOTA!!!: Si le salen mas mensajes como esos corrija los detalles con respecto a las configuraciones de su APN con las opciones que tiene disponibles (que se les presenta en el área de "Available options are:" y una vez corregido esto vuelve a ejecutar el comando:

$ /opt/sakis3g/sakis3g --sudo "connect"

Y aproximadamente la conexión estará lista entre 15 a 20 segundos.







y para desconectarse ejecuta el comando:

$ /opt/sakis3g/sakis3g --sudo "disconnect"



Script para conectarse automáticamente

Ahora creamos el script dentro de la carpeta 
/etc/init.d con el siguiente comando:

$ sudo nano /etc/init.d/autoconnectnet

y agregamos el siguiente código:


#***************************************************
#! /bin/sh
# /etc/init.d/autoconnectnet

### BEGIN INIT INFO
# Provides:          noip
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Simple script to start a program at boot
# Description:       A simple script from .
### END INIT INFO


case "$1" in
  start)
    sleep 10
    echo "connecting via sakis3g"
    # run application you want to start
    /opt/sakis3g/sakis3g --sudo  "connect"
    ;;
  stop)
    echo "dissconnecting via sakis3g"
    # kill application you want to stop
    /opt/sakis3g/sakis3g --sudo  "disconnect"
    ;;
  *)
    echo "Usage: /etc/init.d/autoconnectnet {start|stop}"
    exit 1
    ;;
esac

exit 0
#*********************************************************
 

Ahora le damos los permisos necesarios al 
script de la siguiente manera:
 

$ sudo chmod 755 /etc/init.d/autoconnectnet
 
Ahora que ya tiene los permisos vamos a 
ejecutar este comando:
$ sudo /etc/init.d/autoconnectnet start
 


 
El Raspberry Pi se conectara a la 3g después del sleep 10, 
tiempo que fue seleccionado previamente.

Y para desconectarlo ejecutamos:
 
sudo /etc/init.d/autoconnectnet stop 
 
 
Ahora para que el script sea ejecutado al inicio del Raspberry Pi, 
ejecutamos el siguiente comando:
 
$ sudo update-rc.d autoconnectnet defaults
 
Y si te ocasiona problemas lo puedes remover con el siguiente 
comando:

$ sudo update-rc.d -f  autoconnectnet remove
 
Reiniciamos el Raspberry Pi, con el modem 3g conectado y 
automáticamente nos conectara sin ninguna interacción por 
parte del usuario; todo gracias a la configuración del Sakis3g en el Raspberry Pi 
 




Blog escrito por Sául Vázquez Radilla.