Next Previous Contents

## 8. Installing and Configuring a Coda Client

A Coda client can be run on any workstation that has kernel support for Coda in its kernel. This chapter assumes the chapter on Configuring Kernels for use with Coda has been read. It contains valuable information for building a kernel if a pre-built kernel with Coda support (or loadable coda kernel modules) cannot be used. Supported UNIX™-like platforms are currently Linux, FreeBSD and NetBSD.

## 8.1 Installing and Configuring the Coda Client Binaries and Documentation

We currently provide binary distributions of the Coda client software for Red Hat Linux (i386 and Sparc), FreeBSD and NetBSD (i386). Red Hat Linux's rpm package format is supported. NetBSD 1.3.X and FreeBSD package format are supported as well. Please consult the `INSTALL.<platform>` available on ftp://ftp.coda.cs.cmu.edu/pub/coda`/<platform>` for the current version of Coda and for last minute updates which possibly have not made their way into the manual. To install the binaries for each platform, the following instructions apply:

For Linux

  Obtain: ftp://ftp.coda.cs.cmu.edu/pub/coda/linux/i386/

  - `coda-debug-module-<kernel_version>-<coda_release>.i386.rpm`
  - `coda-debug-clients-<kernel_version>-<coda_release>.i386.rpm`
  - `coda-doc-<coda_release>.i386.rpm`

  NOTE: We provide a binary glibc (GNU C library) version of Coda for Red Hat 5.X and higher. Coda has run successfully on other versions of Linux and with different C libraries too.

  To install the binary and documentation packages, do:

  - `rpm -Uvh coda-module-<kernel_version>-<coda_release>.i386.rpm`
  - `rpm -Uvh coda-debug-clients-<kernel_version>-<coda_release>.i386.rpm`

  - `rpm -Uvh coda-doc-<coda_release>.i386.rpm`

FreeBSD and NetBSD:

  For FreeBSD, obtain: ftp://ftp.coda.cs.cmu.edu/pub/coda/freebsd/`<OS-RELEASE>/i386/`

  For NetBSD, obtain: ftp://ftp.coda.cs.cmu.edu/pub/coda/netbsd/`<OS-RELEASE>/i386/`

  Once the binary and documentation packages have been obtained, the following will install them:

  - `pkg_add coda-clients-<OS_RELEASE>-<coda_release>/`
  - `tar zxfc coda-doc-<coda_release>.tgz -C /usr/share`

  Please make sure the correct path for your platform is set in your environmental PATH variable:

For Linux:

  Coda installs in the standard /usr tree:

  > `

  >     /usr/sbin
  >     /usr/bin

  > `

For FreeBSD:

  Coda installs in the /usr/local tree:

  > `

  >     /usr/local/sbin
  >     /usr/local/bin

  > `

  which is not usually part of the FreeBSD path search, particularly for the root account. Please make sure this is part of your seach PATH.

NetBSD:

  Please note the NetBSD has elected to create a new tree to install NetBSD packages into (NetBSD uses `/usr/pkg` instead of `/usr/local`). Coda creates package based on this `/usr/pkg` tree. Please make sure this tree is in your search path as the /usr/pkg is not part of the default PATH settings under NetBSD.

Once the binaries and documentation are installed, configuration of Venus is identical for all platforms when `venus-setup` is used. To run the script, type:

> `

>     venus-setup <comma,seperated,list,of,servers> <cache_size_in_kilobytes>

> `

. For example,

> `

>     venus-setup micky,minnie,goofy 40000

> `

will setup up `venus` to look for the set of servers micky, minnie and goofy and configure Venus to use 40MB of disk space for caching. This information is kept in `/usr/coda/etc/vstab`.

NOTE:At least one Coda server must be specified and the minimum cache size is 10MB ( `10000` ).

This script not only creates `/usr/coda` and the necessary sub-directories, but creates `/usr/coda/etc/vstab`, and adds necessary Coda port numbers to `/etc/services`.

To start venus for the first time, become root and issue the following commands:

> `

>     # venus -init &
>     # xterm -e tail -f /usr/coda/etc/console &

> `

The last command allows you to monitor Venus as it reports messages to `/usr/coda/etc/console`.

## 8.2 Upgrading from a previous Release

If you are upgrading Coda from a previous release, do not run `venus-setup` again! Simply obtain the packages for your platform as indicated above. Then, shutdown venus by becoming root and issue the following command:

> `

>     # vutil -shutdown

> `

Next, install the binary packages following the installation instructions above. Make sure you have the appropriate kernel for *BSD systems or the correct module for Linux systems. The `INSTALL.<platform>` document available from the ftp site will contain relevant notes about upgrading the kernel for *BSD systems and the module for Linux systems. INSTALL.<platform> will provide necessary advice on which kernel to use with a provided Coda release.

Also, the Chapter on Installing and Configuring a kernel for use with Coda has information on configuring and building a kernel kernel (or loadable module) if a pre-build kernel or module won't work for the target platform.

Once the new binaries are installed and the any necessary kernel updates are completed, you need to start the new venus for the first time by becoming root and typing:

> `

>     # venus -init &

> `

The <-init> flag is used to re-initialize the `/usr/coda/venus.cache/`.

## 8.3 Configuration Changes made by venus-setup

This section describes the changes that must be made to various configuration files. Samples of the files are contained in Appendix XXX.

### /usr/coda/etc/vstab

Create a `vstab` file in `/usr/coda/etc` to contain the Coda file system table information. The contents of this file are explained in the man page `vstab(5)`.

### /etc/rc.*

To automatically start Venus at boot time, the script `rc.venus` is provided in `/usr/local/etc` for FreeBSD systems and `/usr/pkg/etc` for NetBSD. `venus.init` is provided for Red Hat Linux in `/etc/rc.d/init.d`.

Linux uses should create the following symbolic link if it doesn't already exist:

> `

>     ln -sf /etc/rc.d/init.d/venus.init /etc/rc.d/

> `

This will allow `init` to process the file and start Venus at boot time on Red Hat Linux systems.

*BSD systems should append the following line to `/etc/rc.local`:

For FreeBSD:

  > `

  >     if [ -f /usr/local/etc/rc.venus ]; then
  >             . /usr/local/etc/rc.venus
  >     fi

  > `

For NetBSD:

  > `

  >     if [ -f /usr/pkg/etc/rc.venus ]; then
  >             . /usr/pkg/etc/rc.venus
  >     fi

  > `

### /etc/services

The following port numbers are added to `/etc/services` by `venus-setup`:

> `

>     coda_opcons     1355/udp                        # Coda opcons
>     coda_auth       1357/udp                        # Coda auth
>     coda_udpsrv     1359/udp                        # Coda udpsrv
>     coda_filesrv    1361/udp                        # Coda filesrv
>     coda_venus      1363/udp                        # Coda venus
>     coda_backup     1407/tcp                        # coda backup service
>     codacon         1423/tcp        venus.cmu       # Coda Console
>     coda_aux1       1431/tcp                        # coda auxiliary service
>     coda_aux1       1431/udp                        # coda auxiliary service
>     coda_aux2       1433/tcp                        # coda auxiliary service
>     coda_aux2       1433/udp                        # coda auxiliary service
>     coda_aux3       1435/tcp                        # coda auxiliary service
>     coda_aux3       1435/udp                        # coda auxiliary service

> `

### /dev/cfs0

The following major and minor numbers are used for the various platforms:

- Character-special with Major 67 and minor 0 for Linux

  > `

  >     # mknod /dev/cfs0 c 67 0

  > `

- Character-special with Major 93 and minor 0 for FreeBSD

  > `

  >     # mknod /dev/cfs0 c 93 0

  > `

- Character-special with Major 46 and minor 0 for NetBSD 1.2

  > `

  >     # mknod /dev/cfs0 c 46 0

  > `

- Character-special with Major 51 and minor 0 for NetBSD 1.3

  > `

  >     # mknod /dev/cfs0 c 51 0

  > `

Please be sure to check the `INSTALL.<platform>` to make sure these numbers have not changed. For Linux and FreeBSD, the above numbers are officially registered. Coda on NetBSD at present does not have formally registered major device numbers so these are subject to change from release to release.

## 8.4 Where Data and Configuration Information is Stored

- `/usr/coda/etc` Coda configuration files critical for Venus startup.
- `/usr/coda/venus.cache` Cached copies of Coda files.
- `/usr/coda/spool` Save CMLs from aborted reintegrations.
- `/usr/coda/tmp` Temporary hoard related files.
- `/etc/services` Various port numbers used by Coda for client and server communication.

Next Previous Contents