Things to do with a Palm V, Chunky-Style RATIONALE TO STOP PEOPLE ASKING 1) Because I can. If that's not a good enough excuse, then nothing really should be. 2) I currently don't have a monitor on my computer at home [seriously]. With this, I can still browse the web, talk to my computer, and read e-mail. So you have a Palm Vx, and you want a sanitised easy version of what everyone on the web says you can do with it? [note: I only say "Palm Vx" because that's what I have; it should work with pretty much any of these handheld devices with not a lot of creativity.] First. You need to get it connected to something useful. On your main machine: Make sure it's connected to a serial port. I'm using ttyS0 here, but you switch that to whatever you are using. Symlink the relevant port to pilot, /a la/ ln -s /dev/ttyS0 /dev/pilot Then, edit /etc/ppp/options.pilot to say: proxyarp local persist noauth silent nodetach ms-dns "10.0.0.8" Where 10.0.0.8 is the address of your DNS server [duh] Also on your machine, then run /usr/sbin/pppd pilot 115200 :10.0.0.245 Where 10.0.0.245 is the address you're assigning to the palm. A brief note about Name Lookups; if your machine isn't capable of looking itself up for whatever reason, you'll need to put your main machine's IP address before the : as well as the palm's IP after it. I use the IP of eth0 as the effective number before the :, and the Palm is also on the same subnet. I'm stealing IPs from the subnet to do this, but life is tons easier. You'll know you're having this problem by watching pppd when you crank it up. The error is pretty clear. If you don't have a suitable DNS server set up to do lookups for anything else, you can just leave out the ms-dns line. Then you'll have to connect to thing via IP address. On the Palm: Go to Prefs/Connection/Direct Serial, and ensure that the Speed is set to 115200 and that the Flow Ctl is set to Automatic Go to Prefs/Network, and select UUNet. Leave the username & password blank, and ensure that the Connection says "Direct Serial" Suck-it-and-see At this point, if you click on "connect" on the palm while pppd is still running on the main machine, you should have a connection up. As it comes in the box, this is as much use as a chocolate teaport. The PalmV, for example, supports not-an-awful-lot of interesting connection type things. So let's start off with the most important one: SSH. TopGun SSH (http://online.offshore.com.ai/~iang/TGssh/) has done nothing but impress me, except it won't remember passwords - which could be considered a good thing, I guess. Upload by doing something on your main machine akin to [you'll have to turn off pppd]: pilot-xfer -i {BNLib,DESLib,IDEALib,MDLib,RANDLib,RSALib,SHALib, \ TGLoginLib,TGssh}.prc And try sshing to your machine once you've turned pppd back on again [you're running an SSH server, right?]. Just leave the connection as it was before - the Palm will automatically connect to the last used ppp connection as soon as you try to crank up a TCP app. For web access, I'm pretty empressed with Eudora Internet Suite, http://www.eudora.com/internetsuite/ Note that if you only need install the components you need. Notably, if you don't need SSL [you already have SSH for secure e-mail, remember?] or e-mail [you already have SSH for secure e-mail, remember?], you only need install the EudoraWeb_2.1.prc package. And note; I found that it went several orders of magnitude faster when I took out the two pacakges I'm not using. And, for bonus points, turn the cache off. I only discovered by accident that the cache is what's causing it to break after loading about 4k of stuff. Just turn the cache completely off, and save space as well as fixing a showstopper of a bug. OK. All is good. But you can't SSH or webbily onwards. ie, You can't just tell TopGun SSH to connect to icculus.org - you need to SSH to your machine, then SSH to icculus.org from a shell on there. Forwarding suitable connections Assuming you already have a suitable kernel build [something I've covered before], and you have the internet available suitably on eth0, you can just do the following [as root] on your main machine: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo "1" > /proc/sys/net/ipv4/ip_forward [thanks, Beardy] And it should allow you. If you're on a ppp connection already, and so the Palm is coming up as ppp1, you just need to change the above "eth0" to "ppp0". By "avilable suitably", I mean, if you type in a web address, you end up at the web site. Without going through a proxy. Other free /a la/ beer humbly recommended connectivity apps: PhaethonH VT100 [serial terminal software] http://icculus.org/~phaethon/PalmOS/vt100/ patience [it's connectivity. deal with it] http://www.xfree86.org/~keithp/pilot/pilot.html TopGun SSH [ssh] http://online.offshore.com.ai/~iang/TGssh/ Eudora [Web & E-mail] http://www.eudora.com/internetsuite/download/ Extra notes Most importantly, This is HIDEOUSLY insecure. Adding authentication is a fairly trivial exercise, but fundamentally, you're onto a loser. There's absolutely nothing you can really do to make this more secure, and considering this maturely: By the time someone can connect their Palm to the back of your machine, they're within reach of the damn machine. Connections are also being masqueraded back to the Palm. Luckily, it's useless & not running any services. If you choose to start anything that allows connections back in, you're on your own. It's trivial to DoS the palm, I can do it with something like "ping -f". That's what you get when you're only on a 20MHz processor with a TCP stack optimised for just one app at a time. Moving onwards & upwards[ish] from serial http://www.expnet.com/product.nsf/p/PowerSync-5 I bought one of these. How sweet. Power /and/ serial. After a little prompting from Greg KH [thanks!], it turns out the relevant kernel module is pl2303. Just crank up all the usual USB core stuff, then modprobe pl2303. It grabs the device, and magically "just works". You need to change the symlink /dev/pilot to point to your new USB serial device, but other than that everything is the same. Example [if you're using devfs] ln -sf /dev/usb/tty/0 /dev/pilot [if you're not] ln -sf /dev/ttyUSB0 /dev/pilot And everything else should be the same. No need to even change any config files or command lines! After all this, you still must turn off ppp to hotsync. "pilot-xfer -b" expects you to have /dev/pilot as your pilot serial device. Which, to be frank, is pretty annoying; "su - -c 'killall pppd';pilot-xfer -b stuff;ppppalm". So. We fix it. Go into hotsync on the palm, and on the menu at the top, go to: Modem sync prefs and set "Network" LANSync prefs and set "LANSync" Primary PC Setup and set the IP of the machine you're hotsyncing to [ignore the other two fields, even the PC Name which doesn't say it's optional] Then, assuming all else is still working, if you select "local" in the hotsync app, it hotsyncs using the serial, and if you set it to "modem", it'll attempt to hotsync with the PC over the currently active [or default] ppp connection. Schweet. On the PC, you need to tell pilot-xfer to use the port "net:any" to get it to use relevant things... export PILOTPORT or use the "pilot-xfer -p" option. You'll also probably need to start the program "pi-csd", to accept certain types of hotsync voodoo. If you want a little more security [as if someone wants to, in a clandestine fashion, network-hotsync FROM their palm to your machine...], you can set PILOTPORT to be "net:10.0.0.31" or whatever a suitable IP addy might be. And all is good. Note that the hotsync app if you push the button on the cradle will only ever try to hotsync over serial [grrrr], so you need to go into the hotsync app to sync over ppp. Ho, hum. But all of this means that I now can just plug the palm in when I arrive at home/work and all connection stuff automagically works. Which is nice. If you look on my configs page http://icculus.org/~chunky/configs, you'll find a couple of scripts I'm currently using to do stuff. Gary (-;