Story so far - I tried setting it up using a rpi model B with 2 separate wifi adapters and camera but the power requirements of running 2 wifi adapters on the same pi was too great. Kept freezing up but it did work from a networking standpoint.
So I've switched to using an Atheros based chipset wifi adapter as it allows virtual interfaces to be created. So far I've been able to connect from the physical interface (wlan0) to an existing wifi network. I've also been able to create a virtual interface (named wlan1) thanks to some udev magic. I've also got the dhcp server and hostapd up and running so I'm able to connect and get and IP address.
What the problem is, is that I can't figure out the iptables/routing so that when I am connected to wlan1 (virtual) I can still access the internet thru wlan0 (physical).
Any help would be great!
iwconfig output
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
lo no wireless extensions.
eth0 no wireless extensions.
mon.wlan1 IEEE 802.11bgn Mode:Monitor Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
wlan1 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
ifconfig output
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:XXX.XXX.XXX.204 Bcast:XXX.XXX.XXX.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35425 errors:0 dropped:0 overruns:0 frame:0
TX packets:6268 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3941643 (3.7 MiB) TX bytes:987537 (964.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mon.wlan1 Link encap:UNSPEC HWaddr XX-XX-XX-XX-XX-XX-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7932 (7.7 KiB) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:93
inet addr:192.168.2.115 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1587 (1.5 KiB) TX bytes:4505 (4.3 KiB)
wlan1 Link encap:Ethernet HWaddr 02
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/etc/network/interfaces output
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
auto wlan1
iface wlan1 inet static
address 10.0.0.1
netmask 255.255.255.0
pre-up ifconfig wlan1 hw ether 02
hostapd /etc/hostapd/hostapd.conf
up iptables-restore < /etc/iptables.ipv4.nat