/dev/changer
Hi,
Yet another version, fixing some patching problems with Linux Kernel 2.2.14, currently diffed against 2.3.38 Memset is still a pain in the special dark place... but it works... See the source code and the website for the rest of the documentation available. For comments etc, send them to: jeroen@massar.ch or check the website at http://unfix.org/projects/changer
Greets, Jeroen Massar
PS-for-nosy-people: My linux development&server&router box is called heaven (FQDN:heaven.unfix.org). My NT X-Workstation (running only ReflectionX most of the time) is called hell (FQDN:hell.unfix.org). The names have been chosen for the obvious reasons.
Legal Mumbo Jumbo
The code is GPL'ed as attached into the source code.
Description
/dev/changer will allow you to mount all the cd's in your IDE changer(s) at once. thus avoiding the hassle with scripts or other custom software.
Status
The code for /dev/changer can now be considered to be at a stable level.
Currently we only have the following problems:
-
It is a changer so you technically CAN'T access two slots at the same time. Thus whenever you spool two movies, one from slot 0 and the other from slot 3 the /dev/changer code will keep swapping between them every request. It'll get very slow because of this.
I'll work on something like a timer or alike (see the source-code) which will fix this by simply only allowing a slotchange every n seconds and thus effectivly allowing datatransfer from/to that slot for that time.
-
CD's aren't locked whenever I mount them.
See the source code and the website for the rest of the documentation available.
Using/Installing
You'll have to apply the patch to your kernel, then enable either the module or include the driver into the kernel. eg:
root@heaven:/usr/src/local/linux-2.2.4# patch -p1 <changer_19990429.diff
root@heaven:/usr/src/local/linux-2.2.4# make xconfig
root@heaven:/usr/src/local/linux-2.2.4# make-kpkg --revision=42:heaven.2.2.6 binary
root@heaven:/usr/src/local/linux-2.2.4# cd ..
root@heaven:/usr/src/local/# dpkg -i *.deb
line 1: patch the kernel
line 2: configure the kernel (select either CHANGER=module or CHANGER=yes)
line 3: make debian kernel packages, non-debian users could use:
root@machine:/usr/src/local/linux-2.2.4# make dep bzLilo modules modules_install
line 5: install the new kernel
And don't forget to modify your lilo where required... then reboot the newly installed kernel, see your favourite kernel HOWTO...
If you've created a module you'll have to insmod it eg: alias block-major-42 changer
then you should create enough devices for the changer with:
root@heaven:/dev# for i in `seq 255`; do mknod /dev/changer$i b 42 $i; mkdir /cdrom/$i; chown root:cdrom /dev/changer$i /cdrom/$i; done
after you've done that you'll have to mount the slots, just like an ordinary cdrom, eg:
root@heaven:# mount /dev/changer4 /cdrom/4 -t iso9660
you can ofcourse put these into the /etc/fstab.
If you still got any questions do a: vi question; cat question | mail jeroen@massar.ch