1  Installation instructions for the HFS Filesystem for Linux
2  Paul H. Hargrove, hargrove@sccm.Stanford.EDU
3  version 0.95 28 Apr 1997
4
5  This document explains how to compile and install version 0.95 of
6  hfs_fs, the HFS filesystem for Linux.
7
8  11..  SSyysstteemm RReeqquuiirreemmeennttss
9
10  You will need the following to compile and use this release of hfs_fs:
11
12  +o  Kernel version 2.0.1 or newer compiled with modules enabled
13     (CONFIG_MODULES).
14
15  +o  The kernel sources (or at least the header files) available online.
16
17  +o  The module utilities package current for your kernel version and an
18     understanding of how to use it.  (The file
19     Documentation/modules.txt in the kernel source directory provides a
20     brief introduction.)
21
22  22..  IInnssttaallllaattiioonn
23
24  This release of the HFS filesystem is not part of the official kernel
25  distribution.  Therefore, it is compiled as a module and then loaded
26  into the kernel using the module utilities.  Therefore, your kernel
27  must be compiled with CONFIG_MODULES enabled.
28
29  22..11..  CCoommppiilliinngg tthhee llooaaddaabbllee mmoodduullee
30
31  To compile hfs.o you should only need to execute ``make'' in the
32  hfs_fs source directory.
33
34  If gcc complains about not finding a large number of header files with
35  names beginning with ``linux/'' then you probably don't have the
36  kernel header files installed correctly.  Either /usr/include/linux,
37  /usr/include/asm and /usr/include/scsi should be symbolic links to
38  include/linux, include/asm and include/scsi in the kernel source tree
39  for the kernel you wish to use hfs_fs with, or else they should be
40  directories containing the header files for the kernel you wish to use
41  hfs_fs with.
42
43  If gcc complains about not finding linux/version.h, then you will need
44  to run ``make dep'' in the kernel source directory to build it.  Under
45  MkLinux, run ``make include/linux/version.h'' instead.
46
47  If gcc complains about not finding the files linux/config.h or
48  linux/autoconf.h, then you will need to run ``make config'' and ``make
49  dep'' in the kernel source directory to build these two files.
50
51  If you are compiling on a DEC Alpha and receive messages saying
52  assignment from incompatible pointer type when compiling files dir_*.c
53  and file_*.c, then you need to change a single line in the file
54  linux/hfs_fs.h.  Remove the text ``&& !defined(__alpha__)'' from the
55  end of line 217.
56
57  22..22..  IInnssttaalllliinngg tthhee mmoodduullee iinn tthhee mmoodduulleess ddiirreeccttoorryy ((ooppttiioonnaall))
58
59  If you plan to use kerneld to automatically load the module or if you
60  wish to use modprobe or insmod without supplying a complete path to
61  hfs.o, then you will need to copy hfs.o into a directory where the
62  module utilities expect to find it.
63
64  The proper directory may depend slightly on your configuration.
65  However, /lib/modules/default/fs/ is a common one for filesystem
66  modules.  Once hfs.o is in the proper directory you should run depmod
67  -a to update the dependency list used by kerneld and modprobe.
68
69  22..33..  LLooaaddiinngg tthhee mmoodduullee iinnttoo tthhee rruunnnniinngg kkeerrnneell
70
71  There are three ways to accomplish this:
72
73  1. If you are running kerneld and have installed hfs.o in the modules
74     directory then you don't need to issue any commands; the module
75     will be loaded when you attempt to mount an HFS filesystem.
76
77  2. If you are _n_o_t running kerneld then you can load hfs.o manually by
78     running modprobe hfs.o.  If you have not installed hfs.o in one of
79     the standard module directories, then you will need provide a full
80     path to the file hfs.o.
81
82  3. If you have been experiencing kernel crashes with hfs_fs, then you
83     should file a bug report including the names of the functions which
84     the EIP and Stack Trace point into.  To help with this you can ask
85     for relocation map for the module when you load it.  To do this
86     load the module with ``insmod -m hfs.o >loadmap''.  Again, you may
87     need a full path to the file hfs.o if you have not placed it in one
88     of the standard module directories.
89
90  22..44..  UUssiinngg tthhee mmoodduullee wwiitthh vveerrssiioonneedd ssyymmbboollss
91
92  All the interface between the module and the kernel take place through
93  very stable (since the mid-1.3.x kernels) parts of the kernel.  If you
94  enabled versioned symbols (CONFIG_MODVERSIONS) when you compiled your
95  kernel you should often be able to compile this module once and then
96  use it with many kernels newer than the one you compiled it for.
97
98  In any case, it is unlikely that this module will need changes with
99  each new kernel patch; simple recompilation should usually suffice.
100
101  33..  LLeeggaall NNoottiicceess
102
103  33..11..  TThhiiss DDooccuummeenntt
104
105  This document is Copyright (c) 1996, 1997 by Paul H. Hargrove.
106
107  Permission is granted to make and distribute verbatim copies of this
108  document provided the copyright notice and this permission notice are
109  preserved on all copies.
110
111  Permission is granted to copy and distribute modified versions of this
112  document under the conditions for verbatim copies above, provided a
113  notice clearly stating that the document is a modified version is also
114  included in the modified document.
115
116  Permission is granted to copy and distribute translations of this
117  document into another language, under the conditions specified above
118  for modified versions.
119
120  Permission is granted to convert this document into another media
121  under the conditions specified above for modified versions provided
122  the requirement to acknowledge the source document is fulfilled by
123  inclusion of an obvious reference to the source document in the new
124  media. Where there is any doubt as to what defines ``obvious'' the
125  copyright owner reserves the right to decide.
126
127