Howdy.
So call me crazy but I'm trying to get coda to work as a client on a
diskless machine (it happens to be an ARM based handheld called the iPAQ).
I've got everything compiled and installed, and libraries seem to be setup
in the right places. I've run venus-setup and it creates and edits some
files (actually that's a lie, I've edited most of them by hand to have the
right stuff in them because they're read only, see below).
However, when I run venus for the first time I get the following output
(also copied to the console file in /usr/coda):
(none):/usr/coda# venus&
[1] 287
(none):/usr/coda# Coda Venus, version 5.3.8
Date: Mon 09/18/2000
22:53:45 /usr/coda/LOG size is 165699 bytes
rvm_create_log failed
22:53:45 Recov_InitRVM: RVM_INIT failed (RVM_EIO)
[1]+ Exit 255 venus
Now if I do:
(none):/usr/coda# ls -l LOG
-rw------- 1 root root 166912 Sep 18 22:53 LOG
If I cat the file, it's some header stuff:
:-C\RVM Interface Version 1.3 7 Mar 1994RVM Log Version 1.4 Oct 17, 1997
RVM :
Followed by some binary garbage and then a bunch of blank space which I
assume are nulls.
The only other data point I can offer is this, which I find kind of odd:
(none):/usr/coda# du -s LOG
0 LOG
This is all happening on linux kernel 2.4.0-test8-rmk2-np1.
Basically my layout is the following:
/ is a read-only file system (cramfs if you must know)
/coda is just a directory in a read only file system
/usr is also a read only file system.
/usr/coda -> /mnt/ramfs/coda which is a ramfs file system
/etc also happens to live in ramfs.
/dev also happens to live in ramfs and
/dev/cfs0 exists.
(none):/dev# ls -l cfs0
crwxrwxrwx 1 root root 67, 0 Dec 31 1969 cfs0
(none):/dev# lsmod
Module Size Used by
coda 52352 0 (autoclean)
...
I know it's probably some kind of bug having to do with ramfs but I'm not
sure what and I don't really even know where to start. I'd really like to
get this to work, but it seems like I'm going to need your help. I've
looked through the source for the functions:
log_t *make_log(log_dev_name,retval)
rvm_return_t rvm_create_log(rvm_options,log_len,mode)
static void Recov_InitRVM()
and haven't seen anything that obviously looks like it should fail.
I've tried inserting printfs into rvm_create_log() at each of the places
where RVM_EIO is returned, but I'm not having any luck.
Also, and probably unrelatedly, I notice in your example configuration file
you say the minimum cache size is 2048. This isn't true. Coda complains
about the size of the log being too small if you actually try to run venus
with the log size set to 2048. I'm using 5120 and it doesn't complain (at
least about that).
I'd appreciate any help you could give. I think coda would be perfect for
this kind of device, and I'm willing to try to debug this.
-c
[Christopher Mason <[EMAIL PROTECTED]> http://ash.rem.cmu.edu/ ]
["Don't you see?! We're actors--we're the opposite of people!" -Stoppard]