Between a Z and a Linux host.
usb-gadget start
The first step would be to configure the device usb0 in /etc/network/interfaces on your Z.
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
address 192.168.129.10
netmask 255.255.255.0
network 192.168.129.0
gateway 192.168.129.1
usb-gadget already pre-configures usb0 for you, so you can just use the defaults here.
The next step is to configure usb0 on your PC. Again, this is done in /etc/network/interfaces:
iface usb0 inet static
address 192.168.129.1
pointopoint 192.168.129.10
netmask 255.255.255.0
network 192.168.129.0
broadcast 192.168.129.255
The IP of your Zaurus has been set to 192.168.129.10, the IP of your PC (for the USB network only!) has been set to 192.168.129.1.
Run ifup usb0 on both your Zaurus and the PC to bring up the devices.
At this point your Zaurus should be able to ping your PC:
# ping 192.168.129.1
PING 192.168.129.1 (192.168.129.1): 56 data bytes
64 bytes from 192.168.129.1: icmp_seq=0 ttl=64 time=1.3 ms
64 bytes from 192.168.129.1: icmp_seq=1 ttl=64 time=4.1 ms
To allow your Z to connect to the other machines in your local network (LAN), you have to enable IP forwarding on the machine connected to your Z:
echo 1 > /proc/sys/net/ipv4/ip_forward
and use NAT on outgoing connections:
iptables -t nat -A POSTROUTING -s 192.168.129.0/24 -j MASQUERADE
