LeapFrog Pollux Platform: Internet Access

From eLinux.org
Revision as of 17:11, 8 July 2011 by Jrspruitt (talk | contribs) (Configuring the Host)
Jump to: navigation, search

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

For this tutorial we'll use these IP address.

Host usb0 is assigned 10.0.0.1

Device usb0 is assignged 10.0.0.2

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 Host

$ sudo /etc/init.d/networking restart

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 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!