IP stack with TCP and UDP protocols for Arduino, or Linux. More soon.
Requirements for All platforms:
Linux with SLIP
Linux
Linux Hardware Requirements:
Serial port.
To build for Linux ./linux.cfg && make
Arduino
Arduino Hardware Requirements:
Arduino Mega, Mega 2560 or Teensy++ 2.0 from www.PJRC.com
USB host Shield from www.circuitsathome.com
Minimum of 128K external memory-- Rugged circuits, or Andy Brown, or compatible.
TTL USB to Serial adapter for terminal I/O to the AVR on Serial 1
Fat 32 formatted thumb drive or other USB storage device
Software Requirements:
Arduino 1.0.5
https://github.com/xxxajk/Arduino_Makefile_master
https://github.com/xxxajk/xmem2
https://github.com/felis/USB_Host_Shield_2.0
https://github.com/xxxajk/generic_storage
https://github.com/xxxajk/RTClib
https://github.com/xxxajk/xmemUSB
https://github.com/xxxajk/xmemUSBFS
Arduino Setup:
1: Format the thumb drive with fat32 and do NOT set the label so that it may mount as the root drive.
2: On the thumb drive, make a directory named etc
3: Place a copy of the tcp.rc file in the etc directory.
You will also possibly have to edit the tcp.rc file.
Settings details are within the tcp.rc file.
Quick how-to -- connect with SLIP interface on Linux:
1: The commands below need either login as root, su, or use sudo in two different sessions.
2: Choose 2 IPs on a subnet NOT on your LAN. My LAN uses the 192.168.123.0 subnet, so I use 192.168.3.X for SLIP.
3: In terminal 1
slattach -d -p slip -s 9600 /dev/ttyACM0
4: In terminal 2
ifconfig sl0 192.168.3.73 pointopoint 192.168.3.74 up mtu 554
If you can't route packets to the internet, it means you need to enable IP-forwarding and/or IP-masquerade. You can find this information by searching for the usual Linux how-to.