Coda File System

coda on Compaq iPAQ

From: Christopher J Mason <>
Date: Tue, 26 Sep 2000 14:36:49 -0400

I believe I've managed to get coda to work on the iPAQ.  coda is a network 
filesystem being developed at CMU.  What makes coda interesting for 
handheld computers is that it supports disconnected operations, meaning 
that you don't have to always have a network connection for files to be 
accessible (in contrast to, say, samba or nfs).  It does this by caching 
whole files on the local machine and maintaining a log of changes to those 
files. It has support for re-integrating those changes once file servers 
are available again. It supports the notion of "hoarding" where by you can 
lock files into the cache based on priorities.

I'm not directly involved in coda project; I'm just a fan, if you will.  If 
there are errors in the setup, blame me, not the coda people.  I'm by no 
means a coda guru.

coda is quite powerful; it is also somewhat daunting from a user's 
prospective.  In particular, running a coda server may be quite challenging 
(I don't know; I haven't done it yet; I'll fill in more details when I get 
there).  Caveat emptor.

Coda is also quite large.  Compressed it takes up about 1.3 mB.  I've 
managed to fit into the normal flash partitions, but there's not room for 
much else.

I've compiled coda for the iPAQ and tested it minimally.  Below I've 
included some instructions on how to install coda on your ipaq.  There are 
basically two options currently:

1) use the cramfs images I've created from v0.16-beta by flashing your iPAQ 
with them.

Download the following images
(You'll find md5sum files there as well.)

You'll also need the v0.16-beta kernel from

Flash your ipaq as according to the instructions, substituting the above 
files for those refered to in the installation documentation.  Next, skip 
down to the setup instructions below...

2) create your own cramfs images, adding to them the coda executables and 
the kernel module.  I've created a script which should help with this. 
Probably running this script directly isn't a good idea; but reading it 
should give you a good idea about what needs to be changed.

The script is

You can get the coda executables at

and the kernel module is:

Put this stuff and the script into the same directory, and run the script. 
You should get out the cramfs images above (well, except for some extra 
stuff that I added ;-).


Once you have this stuff installed, and your ipaq booted, you'll need to 
establish IP connectivity to your iPAQ.  You'll need "real" connectivity; 
NAT won't cut it at the moment.  Coda will require specific support from 
NAT servers; I'm investigating this further and will post when I get 

You must then run venus, the coda cache manager:

export PATH=${PATH}:/usr/local/bin
venus -rvmt 3 &

The -rvmt option causes venus to store it's log in malloced memory rather 
than RVM (don't worry about it); RVM doesn't seem to like ramfs file 
systems.  Either way, if you reboot your ipaq while disconnected, you'll 
loose your modifications.  Be careful.  At some future date it would be 
nice to have coda write it's modification log to flash; this doesn't happen 

You should then be able to:

cfs checkservers
cd /coda

If this works, you'll need to setup a coda server, and change the 
configuration file in /usr/coda/etc/coda/venus.conf to point to that server.
(To make this change permanent you'll have to use option 2 above, change 
the server name in init/coda/etc/coda/venus.conf and then mkcramfs and 
flash the init partition.)

For more help on installing and using coda, see:

If you have problems, please let me know.

Have fun,


[Christopher Mason        <> ]
["Don't you see?! We're actors--we're the opposite of people!" -Stoppard]
Received on 2000-09-26 14:36:05