The 2.4 kernels, like the early 2.6 kernels can mount Iomega REV drives read-only. If write support is needed then several options are available.
The first option is to patch your kernel using either the patch
patches-be.dvd.ram or the obsolete patch
patches-see.rewritable. Both patches are available
on the Downloads page for this project.
Note that the patches-be.dvd.ram tarball contains patches for the stock 2.4.18 and stock 2.4.27 kernel versions. The
patches-see.rewritable tarball contains patches for the 2.4.19-35mdk Mandrake kernel and the stock 2.4.26 kernel. The supplied patches
may (or may not) apply against other 2.4 kernel versions.
The recommended second option is to build and install the rev kernel module and the udffs kernel module (a modified version of Benjamin Fennema's
0.9.8 UDF kernel module) against your current kernel. This option has the advantage that you need not patch your kernel and in all but the most
rare cases will you need to rebuild your kernel. This option also has the advantage that REV support is only included in the kernel when it's
needed (and is thus lower impact on mission critical systems). An install script is supplied that will perform most of the steps needed in order
to make REV work fully with your system.
The entire package is available on the Downloads page for this project.
Detailed instructions and release notes may be found in the README contained in the tarball. For the impatient, the procedure for installing REV
support on systems running 2.4 kernels using the automatic installer is:
Download the linux_2.4_rev_installer file into your
user home directory. Uncompress the tarball using the command:
$ gunzip <linux_2.4_rev_installer-xxx.tar.gz | tar -xv
Be sure to replace the xxx in the command above with the appropriate ending for your current version. Enter the directory containing the
installer and run the installer.
$ cd linux_2.4_rev_installer-xxx
$ ./install
The installer will verify that everything it needs is present on your system and that it can build and install the rev and udffs modules against
your kernel. Assuming everything is good, the installer will ask if you're running one of a number of distributions with known incompatabilities
with the rev and/or udffs kernel modules. Select the appropriate option to tell the installer to work around the incompatabilities. If your
distribution is not listed, or if you're running a stock kernel, select option 0 or press Enter.
If not running as root, the installer will now prompt for a root password. Enter your system's root password on the command line. The installer
will then prepare your kernel source directory (it won't rebuild your kernel, only build dependency data), build the rev and udffs kernel modules,
and install the rev and udffs kernel modules. The installer will then give you the option of having it automatically update your
/etc/modules.conf (or /etc/modules.conf.local) file. Say "y" or "n". After performing this step, the installer will give you
the option of having it automatically update your /etc/fstab file to add mount points for your REV drive. Say "y" or "n". If you say
"n", the installer will create an fstab.example file in the current directory that may be used as a template to update your /etc/fstab
file manually (if desired).
Be sure to read both the README and displayed comments from the installer. Below is a sample session on
a system running SuSE 9.0 for AMD64.
smithpa@smithpalnx3:~/linux_2.4_rev_installer-beta-0.0.1> ./install
REV Installer for Linux 2.4 Kernels, version beta-0.0.1
Verifying all needed files are present...
Verifying kernel version/integrity...
*** Warning: directory /usr/src/linux-2.4.21-102-default not found, assuming
*** /usr/src/linux (which does exist) matches your current kernel.
Verifying presense of /usr/src/linux/.config...
Verifying presense of sr_mod kernel modules...
Verifying presense of insmod, rmmod, modprobe, depmod, and lsmod...
Verifying presence of the gcc compiler & GNU make...
Determining architecture...
Unpacking tarballs and applying patches...
*** Some distributions have made changes to their kernel that require special
*** build options. If your system uses one of the distributions below and
*** your running the supplied kernel, please select the number for your
*** distribution. Otherwise, select 0, or simply press Enter.
***
*** 0) Stock kernel (from http://www.kernel.org)
*** 1) Mandrake 10.0 (Using the 2.4.25-2mdk kernel)
*** 2) Mandrake 9.2 (Using the 2.4.22-10mdk kernel)
*** 3) SuSE 9.0 for AMD64 (Using the 2.4.21-xxx kernel)
*** 4) SuSE 9.0 for ia32 (Using the 2.4.21-xxx kernel)
***
*** Enter number: (0) 3
Building custom Makefile for rev module...
Creating configuration data for UDF filesystem...
*** This installer is not being run as root. For the installer to continue,
*** root privileges are required. Please enter your system's root password
*** below.
***
*** Password:
Creating kernel dependencies (this may take some time)...
Building rev kernel module (as user smithpa)...
Installing rev kernel module (as root)...
Configuring udffs kernel module (as user smithpa)...
Building udffs kernel module (as user smithpa, this may take some time)...
Installing udffs kernel module (as root)...
Updating the system module.dep and map files (as root)...
*** Currently your system is not configured to automatically enable REV support
*** when needed. This script can modify your /etc/modules.conf.local file so
*** that REV support will be enabled when REV drives are mounted.
***
*** Do you want this installer to perform this task ? (Y/n)
Adding entries to modules.conf...
Installing new rev module (as root)...
Installing new udffs module (as root)...
Scanning for installed REV drives...
*** This script can modify your system's /etc/fstab file by adding the lines
*** below so that you can more readily mount your REV drives. The script will
*** also create mount points. Note that USB and other hot-pluggable devices
*** will have mount points that change over time. Therefore, say no (or modify
*** the generated /etc/fstab file when this script finishes) so that mount
*** points for hot-pluggable devices will not be created.
***
*** For reference, the following lines will be added:
*** /dev/hdb /media/rev udffs,iso9660 noauto,user,rw 0 0
***
*** Do you want this installer to perform this task ? (Y/n)
***
*** Your system's /etc/fstab file has been modified. A copy of the original
*** (unmodified) file has been created with the name /etc/fstab.old
Done...
smithpa@smithpalnx3:~/linux_2.4_rev_installer-beta-0.0.1>
Note that you should mount your REV drive using the udffs filesystem and not the udf filesystem. If you
let the installer modify your /etc/fstab file, then you should be able to mount your REV drive using a command such as:
mount /mnt/rev
If running a version of SuSE Linux, use /media/rev instead of /mnt/rev.
Below are notes on using the linux_2.4_rev_installer on some distributions. See the README file for more information.
Fedore Core 1 has multiple configurations for different platforms in the same kernel source directory. Be sure to copy the appropriate
configuration file from the configs subdirectory (/usr/src/linux-2.4/configs) into the kernel's top level directory
(/usr/src/linux-2.4). Be sure that the file is named .config in the kernel's top level directory. Once this is done, run the
install script using the default options.
The supplied 2.4.25-2mdk kernel can not perform a make dep correctly; however, dependencies are already provided in the RPM. The Mandrake
2.4.25-2mdk kernel also has a patch that changes the calling sequence into the sr_do_ioctl function in sr_ioctl. Be sure to select
Mandrake 10.0 distribution (Using the 2.4.25-2mdk kernel) when running the installer, to disable
building of kernel dependencies and to change the calling sequence of this one call in the rev module.
The supplied 2.4.22-10mdk kernel has been patched in a manner similar to the Mandrake 10.0 2.4.25-2mdk kernel. This patch changes the call to
sr_do_ioctl in the rev module so that the module will build on this system. Be sure to select
Mandrake 9.2 distribution (Using the 2.4.22-10mdk kernel) when running the installer to change the calling
sequence of this one call in the rev module.
Like Fedore Core 1, Red Hat 9.0 has multiple configurations for different platforms in the same kernel source directory. Be sure to copy the
appropriate configuration file from the configs subdirectory (/usr/src/linux-2.4/configs) into the kernel's top level directory
(/usr/src/linux-2.4). Be sure that the file is named .config in the kernel's top level directory. Once this is done, run the
install script using the default options.
Some headers have not been included in /lib/modules/.../build/include directory that the rev module needs to build. The installer
performs a hack to the rev module Makefile so that the appropriate headers are pulled directly from the kernel source.
When running the installer, select SuSE 9.0 for ia32 (Using the 2.4.21-xxx kernel), when prompted, to
enable hacks/work-arounds for the bug listed.
Like the i386 version of this distribution, some headers have not been included in /lib/modules/.../build/include directory that the rev
module needs to build. The installer performs a hack to the rev module Makefile so that the appropriate headers are pulled directly from the
kernel source. Also, both the udffs and rev modules must be built with the -mcmodel=kernel option on the GCC command line.
When running the installer, select SuSE 9.0 for AMD64 (Using the 2.4.21-xxx kernel), when prompted, to
enable hacks/work-arounds for the bugs listed.
SuSE 8.0 is built with SCSI removable support built directly into the kernel rather than as a kernel module. The rev module requires that SCSI
removable support be built as a module in order to gain access to some data structures in the sr_mod module (yes, it's an ugly hack). To work
around this issue, rebuild your kernel with your configuration changed so that sr_mod is built as a module. The procedure for doing this is
outlined in section 6 of the README. Once done, the installer should be run with the default options.
Note that the ioctl SG_IO may also be used to issue commands directly to the drive.
|