Networking Palm via PPP through a Linux serial port

If you have a Linux PC on a TCP/IP network, and a Palm device that has a PPP stack, (the Palm Vx, for example), you can reach the internet from the Palm device by connecting it to the PC’s serial port. You can use either a serial cable or a serial port cradle to connect the device to the serial port.

Check your Linux kernel configuration

If you’ve never re-built your kernel, never mind this part. The kernel that was distributed with your system probably has all the appropriate switches turned on.

If you’ve re-built your kernel, you may have to turn on PPP, /proc filesystem support, and IP forwarding. In xconfig, turn on
Networking options/Network packet filtering and
Networking options/IP: Netfilter Configuration/Connection tracking, IP tables support

Configure the Palm device

Use the System->Prefs application to configure the Palm device.

  1. Connection

    Make a new connection, name it something like PPP Serial.

    Connection Method should be Serial to Modem.

    Under Details, Speed you may have to play with, but it should be the same as in the Linux setup. I use 115,200 bps. Flow Ctl should be Automatic.

  2. Network

    Service should be Unix

    Connection should be the new connection you created above.

    Under Details, Connection Type should be PPP
    Query DNS should be off
    Primary DNS should be the IP address of the Address of your network’s Primary DNS Server. Likewise for the Secondary DNS.
    IP Address : Automatic should be off and the address should be a new address for the Palm device on your network. Make sure it’s unique!

Configure Linux

  1. Make link to the appropriate COM port

    ln -s /dev/ttyS0 /dev/palm

  2. Turn on PPP

    Add a line to /etc/inittab:

    palm:2345:respawn:/usr/sbin/pppd /dev/palm 115200 local-host-ip:serial-host-ip proxyarp persist local noauth silent nodetach ms-dns dns-ip

    where
    line-speed is one of the standard line speeds 115200, 57600, 28800 etc. You may have to experiment.
    local-host-ip is the IP address of the Linux box
    serial-host-ip is the IP address of the device on the serial port.
    dns-ip is the IP address of the DNS server.

    Type telinit q to have init re-read the /etc/inittab file.

    Type ps aef | grep pppd to get the process ID of any running ppp daemon

    Type kill -9 pnum where pnum is the process ID of the ppp daemon. The daemon will now restart with the new settings from /etc/inittab.

    At this point, it should be possible to ping the device on the serial port, and to run a Linux telnet session on the device via PPP.

  3. Start IP forwarding

    echo 1 > /proc/sys/net/ipv4/ip_forward

    If you have the Linux kernel source installed, see /usr/src/linux/Documentation/networking/ip-sysctl.txt .

    To turn forwarding on each time the machine boots, edit /etc/sysconfig/network to include a line
    FORWARD_IPV4=true

Start surfing

You can make a PPP connection using System->Prefs, under Network. Most web browsers on the Palm will start up a PPP connection themselves.

Note that you won’t be able to HotSynch your Palm so long as the PPP daemon is running on the serial port. In order to HotSynch again, you’ll have to delete the line from /etc/inittab and run telinit q to free the serial port before you HotSynch again.

Also see
Handspring-Visor mini-HOWTO