118 lines
5.3 KiB
Plaintext
118 lines
5.3 KiB
Plaintext
This is version 0.12 of ncpfs, a free NetWare client filesystem for
|
|
Linux.
|
|
|
|
I would like to invite you to write documentation. As those whose
|
|
native tongue is English might have noticed, my C is better than my
|
|
English. So I doubt that everything in the man/ subdirectory is
|
|
written very well. Please feel free to send me any comments about
|
|
that.
|
|
|
|
INSTALLATION
|
|
|
|
The installation of ncpfs depends on the kernel version you are
|
|
using. For kernel 1.2, you should simply type 'make' and look at
|
|
what's in the bin/ directory after that. Please be sure that your
|
|
kernel resides in /usr/src/linux, because the file
|
|
kernel-1.2/src/sock.c has to refer directly to it.
|
|
|
|
If you use Kernel 1.3, please be sure that you use at least
|
|
1.3.54. ncpfs does NOT work with any earlier 1.3.x kernel, especially
|
|
not with 1.3.53, although this one has a fs/ncpfs/ subdirectory.
|
|
|
|
If you use Kernel 1.3.54 or later, you might have to recompile your
|
|
kernel. With these kernels, the kernel part of ncpfs is already
|
|
included in the main source tree. If you want to use ncpfs, you should
|
|
say 'y' to 'make config' when you are asked for IPX, and again when it
|
|
asks for ncpfs. After you have rebooted with the new kernel, 'cat
|
|
/proc/filesystems' should show you a line saying that the kernel knows
|
|
ncpfs.
|
|
|
|
With Kernel 1.3.54 or later you also have to modify the Makefile in the
|
|
directory you found this README in. Please see the Makefile for the
|
|
necessary modifications. Then typing 'make' should work with no
|
|
problem.
|
|
|
|
|
|
USING NCPFS
|
|
|
|
Please note that your IPX system has to be configured correctly. If
|
|
you want to take the 'Plug-and-Play' route, you can simply say
|
|
'ipx_configure --auto_interface=on --auto_primary=on'. If ncpmount
|
|
does not work immediately, you should wait for about 1 minute and try
|
|
again. In that period, an IPX packet should have passed by and your
|
|
network interface should have configured itself automatically.
|
|
|
|
If all that does not work and you want to do the configuration by
|
|
hand, note that there has to be a route to the internal network of
|
|
your server. Please see the file util/start_ipx for an example.
|
|
|
|
I use tools written by Greg Page, Caldera. I hope I did not do too
|
|
much harm to their business. For your convenience I included the
|
|
contents of the file ipx.tar made available by Caldera.
|
|
|
|
My main source of information is a book written in german by Manfred
|
|
Hill and Ralf Zessin, "Netzwerkprogrammierung in C", IWT Verlag GmbH,
|
|
1995, ISBN 3-88322-491-X. It contains quite a lot of typographical and
|
|
other errors, but I find it very valuable as an introduction to NCP
|
|
programming. If you know about the concepts and possibilities of NCP,
|
|
Ralph Brown's interrupt list becomes much more readable. It's much
|
|
easier to find undocumented information if you know what to look for!
|
|
|
|
For the curious: the files ncplib.[ch] are a library that makes it
|
|
possible to send NCP requests to the server over a mounted
|
|
directory. I use it to keep the encryption stuff out of the kernel by
|
|
logging in from user space. Look at the file ncptest.c for other
|
|
possible uses. I use ncptest to check my assumptions about the widely
|
|
undocumented NetWare Core Protocol. Maybe this is the beginning of a
|
|
free NetWare API for Linux! I would be happy to receive your comments
|
|
on this.
|
|
|
|
|
|
THANKS
|
|
|
|
I do not want to leave those unmentioned, who have helped me with
|
|
ncpfs.
|
|
|
|
The most enthusiastic user and tester is certainly Uwe Bonnes
|
|
<bon@elektron.ikp.physik.th-darmstadt.de>. Up to now he's the only one
|
|
who has contributed something, namely manpages and corretions to
|
|
existing manpages.
|
|
|
|
Ales Dyrak has written lwared, which was the initial start for ncpfs.
|
|
|
|
Alan Cox has found some bugs I would probably never have found.
|
|
|
|
|
|
LIMITATIONS (compare these with smbfs :-)
|
|
|
|
The limitations ncpfs has are the natural limitations of the NCP
|
|
protocol, which was designed with MS-DOS based PCs in mind. The first
|
|
limitation is the lack of uid, gid and permission information per
|
|
file. You have to assign those values once for a complete mounted
|
|
directory.
|
|
|
|
The second limitation is just as annoying as the first: You cannot
|
|
re-export a ncp-mounted directory by nfs. It is not possible because
|
|
the NFS protocol defines access to files through unique file handles,
|
|
which can be mapped to the device and inode numbers in unix NFS
|
|
servers. NCP does not have unique numbers per file, you only have the
|
|
path name. I implemented a caching scheme for inode numbers, which
|
|
gives unique inode numbers for every open file in the system. This is
|
|
just sufficient for local use of the files, because you can tell when
|
|
an inode number can be discarded. With NFS the situation is
|
|
different. You can never know when the client will access the file-id
|
|
you offered, so you would have to cache the inode numbers
|
|
indefinitely long. I think this should not be done in kernel mode, as
|
|
it would require an unlimited amount of RAM.
|
|
|
|
Those who looked at the kernel code a bit closer will have found out
|
|
that the last section is a little white lie. As I found out after the
|
|
first version of ncpfs, NetWare does indeed offer something like inode
|
|
numbers, although are only unique per volume. So one way to make ncpfs
|
|
re-exportable by nfs is to allocate a superblock per volume and show
|
|
the inode numbers to the user. I was just too lazy to do this
|
|
yet. Maybe once we will force Novell to make NetWare NFS
|
|
affordable... ;-)
|
|
|
|
Have fun with ncpfs!
|