CDemu is a kernel module for Linux. It is designed to simulate a CD drive + CD with just simple cue/bin files, which are pretty common in the Windows world.
You can use it to watch an SVCD or mount the data track of an bin/cue. However, for watching an SVCD, we would recommend MPlayer which can play bin/cue images directly with the patch a friend and I made for it (more under History).
Status:
- Using CDemu on multi user systems should be safe now. Any user can mount an image in an empty CDemu slot while only the user (and root) can unmount a slot that is already in use.
- Many users have reported SMP issues (varying from lock ups to very poor performance). We've had an user send us a threading patch to avoid locking issues, but it is 2.4-centric. So, before it can be added to CVS, it needs to be generalized to support 2.4 and 2.6. Unfortunately, none of the CDemu developers have access to SMP systems so the best testing we can do involves 'it looks good' :). CDemu-0.6 final should resolve these issues.
- Looking ahead: CDemu was first created to support bin/cue images. Ideally, we'd like to be able to support Nero (.nrg), Disc Juggler (.cdi), Clone CD (.ccd), etc... Anyone with spare time and spare patches would be appreciated.
Installation:
The install is quite simple:
extract the archive (release tarball):
$ tar -jxvf cdemu-.tar.bz2
checkout the code from cvs:
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/cdemu co -P cdemu
you need the source of your current running kernel.
/lib/modules/$(shell uname -r)/build/include needs to point at it.
build the module:
$ make
install the module and user space utilities:
$ sudo make install
now simply load the kernel module:
$ sudo modprobe cdemu
(no message should be displayed after running modprobe)
to load a bin/cue image:
$ cdemu 0 image.cue
$ mount /dev/cdemu/0 /mnt/cdrom
(some things may be different on your system, YMMV)
for more information, please review the help output:
$ cdemu -h
Product's homepage
What's New in This Release: [ read full changelog ]
· The dbus and gconf bindings have been switched out with newer GDBus and Gsettings, which is part of the New GiO framework in GObject.
· The Gnome client was switched from GTK2 bindings to GTK3 using the new pygobject introspective binding.
· There's been a major code cleanup as well.
· This release has partial CSS support, bash completion, parser fixes, and analyzer gfx fixes, and is probably python3 ready.