Difference between revisions of "LeapFrog Pollux Platform: Internet Access"

From eLinux.org
Jump to: navigation, search
m (moved Didj Network Routing to LeapFrog Pollux Platform: Internet Access: Applies to more than one device now)
Line 1: Line 1:
This page includes steps that describe how to use routing on your host to enable your Didj to access to the wider Internet via the USB connection.
+
== Summary ==
 
+
There are two methods of accessing the internet from your [[LeapFrog_Pollux_Platform| LeapFrog Pollux Platform]] device. While both require hooking up to a host PC, you can either using routing, or bridging to make the connection. Either way nets you the same goal. Some differences are Bridging deals with Layer 2 of the OSI model and and allow DHCP broadcasts, while Routing involves Layer 3.
They have been tested in Ubuntu 8.04 Hardy Heron (2.6.24-26 kernel), and are based on similar instructions for other handheld devices.
 
  
 
'''Prerequisites'''
 
'''Prerequisites'''
  
[[Didj_Enable_Networking| Enable Networking]]
+
For the Didj, it requires you [[Didj_Enable_Networking| Enable Networking]]
  
 
'''Configuring the Host'''
 
'''Configuring the Host'''
  
In this example, we assume that the host has an ethernet connection on ''eth0''. (your own config may be different; for example, you may be using a Wifi adapter. In theory, aside from your LAN specific configuration, the steps outlined below should still work.)
+
In this example, we assume that the host has an ethernet connection on ''eth0''. To check your specific device, run.
 +
 
 +
'' On Host ''
 +
ifconfig
 +
 
 +
You should see eth[X] and lo, X is the number of your ethernet interface.
 +
 
 +
As for the IP addresses used, you could use any reasonable ones you want, for this example we'll use.
  
 
For this example we establish the following assumptions:
 
For this example we establish the following assumptions:
Line 17: Line 23:
 
The host is connected to the gateway as 192.168.0.116 (assigned by DHCP on eth0)
 
The host is connected to the gateway as 192.168.0.116 (assigned by DHCP on eth0)
  
The host is connected to the Didj as 192.168.2.1 (assigned statically to usb0 on host)
+
The host is connected to the Didj as 10.0.0.1 (assigned statically to usb0 on host)
  
The Didj is connected to the host as 192.168.2.100 (assigned statically to usb0 on Didj)
+
The Didj is connected to the host as 10.0.0.2 (assigned statically to usb0 on Didj)
  
 
Configure the host machine's /etc/network/interfaces file as follows:
 
Configure the host machine's /etc/network/interfaces file as follows:
Line 30: Line 36:
 
  auto usb0
 
  auto usb0
 
  iface usb0 inet static
 
  iface usb0 inet static
         address 192.168.2.1
+
         address 10.0.0.1
 
         netmask 255.255.255.0
 
         netmask 255.255.255.0
         up route add -net 192.168.2.0 netmask 255.255.255.0 dev usb0
+
         up route add -net 10.0.0.0 netmask 255.255.255.0 dev usb0
 
         up echo 1 > /proc/sys/net/ipv4/ip_forward
 
         up echo 1 > /proc/sys/net/ipv4/ip_forward
 
         up iptables -P FORWARD ACCEPT
 
         up iptables -P FORWARD ACCEPT
         up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.100
+
         up iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.0.2
         down route del -net 192.168.2.0 netmask 255.255.255.0
+
         down route del -net 10.0.0.0 netmask 255.255.255.0
 
         down echo 0 > /proc/sys/net/ipv4/ip_forward
 
         down echo 0 > /proc/sys/net/ipv4/ip_forward
 
         down iptables -t nat -F POSTROUTING
 
         down iptables -t nat -F POSTROUTING
Line 59: Line 65:
 
On the Didj:
 
On the Didj:
 
<code>
 
<code>
  ifconfig usb0 192.168.2.100 netmask 255.255.255.0
+
  ifconfig usb0 10.0.0.2 netmask 255.255.255.0
 
</code>
 
</code>
  
Line 66: Line 72:
 
On the Didj:
 
On the Didj:
 
<code>
 
<code>
  route add default gw 192.168.2.1 usb0
+
  route add default gw 10.0.0.1 usb0
 
</code>
 
</code>
  

Revision as of 16:44, 8 July 2011

Summary

There are two methods of accessing the internet from your LeapFrog Pollux Platform device. While both require hooking up to a host PC, you can either using routing, or bridging to make the connection. Either way nets you the same goal. Some differences are Bridging deals with Layer 2 of the OSI model and and allow DHCP broadcasts, while Routing involves Layer 3.

Prerequisites

For the Didj, it requires you Enable Networking

Configuring the Host

In this example, we assume that the host has an ethernet connection on eth0. To check your specific device, run.

On Host

ifconfig

You should see eth[X] and lo, X is the number of your ethernet interface.

As for the IP addresses used, you could use any reasonable ones you want, for this example we'll use.

For this example we establish the following assumptions:

The gateway between the local network and the Internet is 192.168.0.1

The host is connected to the gateway as 192.168.0.116 (assigned by DHCP on eth0)

The host is connected to the Didj as 10.0.0.1 (assigned statically to usb0 on host)

The Didj is connected to the host as 10.0.0.2 (assigned statically to usb0 on Didj)

Configure the host machine's /etc/network/interfaces file as follows:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto usb0
iface usb0 inet static
       address 10.0.0.1
       netmask 255.255.255.0
       up route add -net 10.0.0.0 netmask 255.255.255.0 dev usb0
       up echo 1 > /proc/sys/net/ipv4/ip_forward
       up iptables -P FORWARD ACCEPT
       up iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.0.2
       down route del -net 10.0.0.0 netmask 255.255.255.0
       down echo 0 > /proc/sys/net/ipv4/ip_forward
       down iptables -t nat -F POSTROUTING

To apply these new settings:

On the Host:

sudo /etc/init.d/networking restart

(of course, rebooting the host will also work)


Configuring the Didj

If you are using a standard Didj configuration and you have not yet done so, rmmod the g_file_storage kernel module and insmod the g_ether/ko module. (see http://elinux.org/Didj_Networking_HOWTO#Installing_g_ether.ko)

With the USB cable connected to your host, configure an IP address on a different subnet from the rest of your LAN

On the Didj:

ifconfig usb0 10.0.0.2 netmask 255.255.255.0

Next, add a route from your Didj to the host (making it the gateway) using the ip address of the host's usb0 device.

On the Didj:

route add default gw 10.0.0.1 usb0

Finally, add nameservers to your Didj's /etc/resolv.conf file (you can add the lines from this example which uses the OpenDNS servers)

nameserver 208.67.222.222
nameserver 208.61.220.220


At this point, your Didj is connected to the outside world - and a ping or a wget to yahoo or google should work.


Todo

Routing packets from the gateway to the Didj.


References

http://wiki.openmoko.org/wiki/USB_Networking

http://wiki.openzaurus.org/HowTos/USB_Networking_Without_Bridging

Acknowledgments

Thanks to losinggeneration for useful input on this!