LeapFrog Pollux Platform: Internet Access
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.
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.
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.)
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 192.168.2.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)
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 192.168.2.1 netmask 255.255.255.0 up route add -net 192.168.2.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 192.168.2.100 down route del -net 192.168.2.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 192.168.2.100 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 192.168.2.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 126.96.36.199 nameserver 188.8.131.52
At this point, your Didj is connected to the outside world - and a ping or a wget to yahoo or google should work.
Routing packets from the gateway to the Didj.
Thanks to losinggeneration for useful input on this!