Imagen/borrador-avatar.png

Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia ;)

Cómo conectar el PC y el OpenMoko por la red USB

Categorías: Telefonía Móvil | OpenMoko

1. Introducción

Este escrito explica como configurar su PC y su OpenMoko para que puedan conectarse vía el cable USB. Cuando ya se tiene una comunicación efectiva explica como tener un shell remoto (ssh) que más adelante (en otro escrito) servirá para configurar y actualizar de forma más fácil su dispositivo OpenMoko, y finalmente explica como hacer todo esto permanente.

Lo que motiva este escrito es que el documento USB Networking del wiki de OpenMoko supone un conocimiento de redes, pero sobre todo no presenta el material en el orden en que se debe hacer el proceso, sino que más bien en un orden conceptual, lo cual para una persona que no tienen conocimientos en redes constituye un verdadero laberinto que sólo puede ser resuelto con mucho tiempo de prueba y error.

Por lo anterior la estructura de este escrito corresponde al orden en como se configuran las máquinas.

2. Convenciones

En éste se llamará PC al equipo anfitrión, el computador de escritorio o portátil y se llamará OpenMoko al móvil o celular, ya sea el Neo1973 (GTA01) o el FreeRunner (GTA02); es importante esto porque algunos comandos deben digitarse en una u otra máquina. También hay que estar al pendiente que algunos comandos hay que digitarlos como root y otros como usuario normal. En el escrito se dice previamente cual es el caso.

3. Probado en

Este procedimiento ha sido probado en:

4. Pre-requsitos

5. Conectando

Prender el PC, prender el OpenMoko.

Conectar el cable USB al OpenMoko y conectarlo al PC.

Como root en el PC, subir el módulo (aunque en Debian Lenny no es necesario, lo hace automáticamente):

modprobe usbnet

Como root en el PC, configurar el dispositivo usb0 con dirección IP fija:

ifconfig usb0 192.168.0.200 netmask 255.255.255.0

Probar que que tengamos conexión con el OpenMoko cuya dirección IP es 192.168.0.202. Como usuario normal en el PC:

ping 192.168.0.202

Debe salir algo como lo siguiente (oprima ctrl-c para salir del ping):

PING 192.168.0.202 (192.168.0.202) 56(84) bytes of data.
64 bytes from 192.168.0.202: icmp_seq=1 ttl=64 time=1.14 ms
64 bytes from 192.168.0.202: icmp_seq=2 ttl=64 time=1.32 ms
64 bytes from 192.168.0.202: icmp_seq=3 ttl=64 time=1.27 ms
64 bytes from 192.168.0.202: icmp_seq=4 ttl=64 time=1.19 ms
[...]

Si sale lo anterior, listo, ya tenemos conexión con el OpenMoko.

6. Shell remoto

Ahora vamos a entrar remotamente al OpenMoko con un shell, para ello en un usuario normal en el PC:

ssh root@192.168.0.202

Debe salir algo como:

The authenticity of host '192.168.0.202 (192.168.0.202)' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX...
Are you sure you want to continue connecting (yes/no)?

Lo que está al frente de RSA key fingerprint muy seguramente es diferente. A continuación digite la palabra completa yes para aceptar la conexión al OpenMoko. Lo del yes sólo tiene que hacerse la primera vez.

En este momento debe verse algo como:

Warning: Permanently added '192.168.0.202' (RSA) to the list of known hosts.
root@192.168.0.202's password:

En el password oprimir Enter, que es el que trae por omisión el OpenMoko. Debe salir algo como:

root@om-gta02:~# 

Que es el prompt del OpenMoko. En él puede digitar los acostumbrados comandos como ls /usr/bin.

De aquí en adelante cuando el escrito se refiera a OpenMoko es ésta consola a la que se hace referencia.

7. Enrutando por el PC

Para poder hacer que el OpenMoko pueda navegar por Internet o actualizar paquetes una de las formas es enrutar por el PC (otras es por GPRS, la WIFI y hasta el Bluetooth).

Para que el OpenMoko enrute por el PC. En el OpenMoko editar:

vi /etc/network/interfaces

El vi es el editor que trae por omisión el OpenMoko.

Ubique el siguiente texto:

iface usb0 inet static
        address 192.168.0.202
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.200
        up echo nameserver 192.168.0.200 >/etc/resolv.conf

Verifique que en gateway diga:

gateway 192.168.0.200

Para salirse grabando de vi oprima la tecla ESC después dos puntos, la tecla x y Enter.

En el PC, como root, digite:

route add -host 192.168.0.202/32 dev usb0

También en el PC como root, digite:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
iptables -P FORWARD ACCEPT

Lo anterior hace que el iptables pase los paquetes que viene de la red 192.168 a la conexión Internet del PC.

En este momento es bueno probar que está haciendo el pase. En el OpenMoko probar haciendo ping a algún servidor en Internet, por ejemplo a google:

ping 64.233.187.99

Si no sale la respuesta del ping puede ser que esté detrás de un proxy que le está filtrando los paquetes ping.

En ese caso se podría verificar con un navegador, pero no viene instalado ninguno de fábrica :-(

7.1. Dejar el enrutamiento permanente

El anterior enrutamiento se pierde cada vez que se apaga el PC. El dejarlo permanente varía con cada distribución:

7.1.1. Para Debian y sus derivados (por ejemplo Ubuntu)

En el PC, como root, editar /etc/network/interfaces y poner las siguientes líneas al final:

# La conexión con el !OpenMoko

allow-hotplug usb0
iface usb0 inet static
      address 192.168.0.200
      netmask 255.255.255.0
      network 192.168.0.0
      post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
      post-up echo 1 > /proc/sys/net/ipv4/ip_forward
      post-up iptables -P FORWARD ACCEPT

8. Configurar el DNS

Hasta ahora podemos navegar por internet pero sólo con direcciones IP y no por nombres de dominio. Esto es, hay que navegar con 64.233.187.99 en vez de google.com. Para ello hay que configurar el DNS.

Lo primero es tener una dirección de un DNS, sino sabe ninguna puede averiguar la de su proveedor de internet de la siguiente manera. En el PC como usuario normal digite:

cat /etc/resolv.conf

Debe salir algo como:

nameserver 190.157.2.140

Claro, en su caso la dirección debe ser otra, llamaremos a ésta la dirección IP del servidor DNS.

En el OpenMoko editar:

vi /etc/resolv.conf 

Y poner la dirección IP del servidor DNS de la siguiente forma (en vi hay que digitar la i para insertar):

nameserver 190.157.2.140

Ahora grabe y salga. Si no recuerda vi, los comandos son: Tecla ESC, luego dos puntos seguido de la letra x y Enter.

Probar haciendo ping a algo, por ejemplo a google:

ping google.com

Ya sabe, puede si está detrás de un proxi el ping no contestará.

Con lo anterior cada vez que prenda el OpenMoko hay que repetir el procedimiento, para dejarlo permanente está el siguiente procedimiento:

8.1. Dejar el DNS permanente

En el OpenMoko editar:

vi /etc/network/interfaces

Ubicar el siguiente texto:

auto usb0
iface usb0 inet static
        address 192.168.0.202
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.200

Después de gateway añada la siguiente línea, recuerde, ésta dirección es distinta en su caso:

        up echo nameserver 190.157.2.140 >/etc/resolv.conf

Si quiere una guía debe quedar de la siguiente forma:

auto usb0
iface usb0 inet static
        address 192.168.0.202
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.200
        up echo nameserver 190.157.2.140 >/etc/resolv.conf        

Grabe y salga del editor.

9. Para conectarse por nombre al OpenMoko

Para no tener que aprenderse la dirección IP del OpenMoko se puede asignarle un nombre. En el PC y como root edite el archivo /etc/hosts

emacs /etc/hosts

Añada la siguiente línea:

192.168.0.202   OpenMoko

Ahora puede hacer lo siguiente:

ssh root@OpenMoko

Vuelve a salir:

The authenticity of host 'OpenMoko (192.168.0.202)' can't be established.
RSA key fingerprint is XX:XX:XX:XX...
Are you sure you want to continue connecting (yes/no)? yes

digite yes

Y listo entró por nombre a su OpenMoko.

Es de notar que el nombre OpenMoko es arbitrario, puede ser cualquiera.

10. ¿Qué hacer ahora?

Ya teniendo esta configuración puede hacer muchas cosas con su OpenMoko. Una pequeña lista:

11. Que falta

12. Enlaces

OpenMoko/ComoConectarElPcyElOpenMokoPorLaRedUsb (last edited 2008-08-12 13:12:56 by aztlek)