It's been asked a lot for cloop to be shipped with Cooperative Linux. This will probably happen in some future release. For those who can't wait, I'm detailing what I did to get KNOPPIX v3.8 (just d/led today) to mount in coLinux 2.6.11 (stable & devel). Hope these steps are reproducable enough for other folks.
I did an google search (don't think it was even a google linux search for the terms 2.6 cloop) One of the top links was the following link:
http://ngc891.blogdns.net/index.php?2004/10/19/19-linux-269
I followed this link which has a section on cloop module for an 2.6.9 kernel. Instead of using the source linked to on this page, I went to the directory that source/patch was stored in:
http://ngc891.blogdns.net/kernel/patches/
There I found an even newer version of the cloop code/patch for 2.6.9:
http://ngc891.blogdns.net/kernel/patches/cloop-2.01jp5-snapshot.tar.bz2
This is the one that I used.
I did most of the following as root, as /usr/src wasn't accessible but to root on my development environement/distro.
Ok, having downloaded that I took my freshly built (and installed) colinux-kernel tree and copied to /usr/src/linux
you especially have to have /lib/modules/<kernel-version> insalled.
You NEED a 'compiled' kernel in the /usr/src/linux tree... (i.e. you need a valid .config, an vmlinux and probably lost of object files for various pieces of the kernel)
I then uncompressed the above cloop-2.01jp5 in /usr/src/cloop-2.01jp5
It didn't compile, giving an error about too many arguments to do_generic_file_read
I've prepared a patch of the change I made to fix this problem:
--- ./cloop.c.orig 2005-02-21 00:24:17.000000000 -0600 +++ ./cloop.c.new 2005-05-30 23:01:35.000000000 -0500 @@ -178,7 +178,7 @@ desc.count = size; desc.arg.buf = (char *)&cd; desc.error = 0; - do_generic_file_read(f, &pos, &desc, clo_read_actor, 0); + do_generic_file_read(f, &pos, &desc, clo_read_actor); if (desc.error || desc.written <= 0) { int left = size - desc.written; if (left < 0)
After applying the above patch (and doing various other fix-ups from the failed compile that aren't need if you apply the above patch before compiling) I was able to successfully compile the cloop module and cloop-utils with the following:
make
note from plugwash: if you don't wan't to mess with putting the kernel source in some standard location you can use
make KDIR=/root/linux-2.6.11
where /root/linux-2.6.11 is replaced by where every our colinux patched kernel source is.
Now you can at this point:
make install
- make install needs to be root for sure, and it installs the cloop module to the /lib/modules/<kernel-version> tree, and installs the cloop-utilites too.
- if you don't do make install you need to manually run MAKEDEV.cloop or create the cloop devices by hand
To test it (and verify it worked) I did the following:
insmod cloop.ko mount -t iso9660 /path/to/KNOPPIX_v3.8-EN.iso-file /mnt/point -o loop losetup /dev/cloop1 /mnt/point/KNOPPIX/KNOPPIX mount /dev/cloop1 /mnt/another-point chroot /mnt/another-point
And I was chrooted into an KNOPPIX v3.8 environment, I poked around and everything seemed right, so I exited and umounted everything
umount /mnt/another-point losetup -d /dev/cloop1 umount /mnt/point
Hope this helps others to have success too... Feel free to clean-up this page and improve on it as you see fit.
To actually boot recent Knoppix verisons you'll need to to build unionfs which can be obtained from unionfs-1.0.12a.tar.gz and built against colinux with no changes. booting of knoppix has been achived and an initial tech demo release can be obtained from http://firechief.dyndns.org/conoppix/
MassTranslated on Sun Apr 23 17:35:41 UTC 2006