I have been working towards getting vpnc runing on my SL-6000, and
I've run into a show-stopper. I'm looking for advice. The problem
I'm having is in getting the tun.o module working.

First I set up a gcc 2.95 cross compiler that seems to work fine. I've
been able to compile some simple arm apps no problem.

Then I found the embedix kernel source that matches the SL-6000 version:

linux-2.4.18-rmk7-pxa3-embedix-sl6000-20040311-rom1_11.bz2

(The only difference is that I see that my z has ROM 1.12 rather than
1.11.)

Using the kernel source I compiled the tun.o module and put it on the
zaurus. I have no problem modprobing it ... everything seems to go
fine. To generate the device files I do:

mkdir /dev/net
mknod /dev/net/tun c 10 200

After all this, when vpnc tries to read the device I get:

vpnc: reading `/dev/net/tun': File descriptor in bad state
(Same problem if I just do a "cat /dev/net/tun")

This is the same problem I had when trying to use other tun.o modules
that did not exactly match the kernel I am running.

Does anyone have any advice for how I go about solving this? Would it have anything to do with getting the kernel configuration right?

Thanks,
Terry