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