domingo, octubre 20

Conectarse automaticamente a sakis3g en Raspberry Pi (Script)

Como ya sabemos configurar nuestro módem para ser reconocido con el Raspberry Pi, 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.

Ya teniendo las configuraciones para que nuestro módem sea detectado como módem, 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) datos del presente año 2013.

Recuerdan que en la anterior entrada nosotros dejamos el sakis3g en la carpeta /home/pi/3g ahora 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 que creamos en la anterior entrada:

$ 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 despues 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. 
 
 
Fuente
http://lawrencematthew.wordpress.com/2013/08/07/connect-raspberry-pi-to-a-3g-network-automatically-during-its-boot/