#*************************************************************************** # INSTALL - description # ------------------- # copyright : (C) 2003 by Robert Penz # email : robert.penz@outertech.com #*************************************************************************** #*************************************************************************** #* * #* This program is free software; you can redistribute it and/or modify * #* it under the terms of the GNU General Public License as published by * #* the Free Software Foundation; either version 2 of the License, or * #* (at your option) any later version. * #* * #*************************************************************************** The install is quite simple, so that currently there is no automatic install. #*#*#*#*#*# #*# 1 #*# extract the archive, what you apparently already did ;-) #*#*#*#*#*# #*# 2 #*# you need the source of your current running kernel. /lib/modules/`uname -r`/build/include needs to point at it. if you're not sure if it points to the righ kernel just type: ls -la /lib/modules/`uname -r`/build if its the correct kernel source all is ok. ;-) #*#*#*#*#*# #*# 3 #*# make Depending on your config of the gcc, you get non or many warnings, but even if you get some, only one is in the cdemu module. e.g. on a Suse 8.2 with the suse standard kernel source extracted to /usr/src/linux/ (/lib/modules/`uname -r`/build/ points to that) it looks this way. ************************************************************ In file included from /usr/src/linux/include/linux/tqueue.h:19, from /usr/src/linux/include/linux/aio.h:4, from /usr/src/linux/include/linux/fs.h:201, from /usr/src/linux/include/linux/capability.h:17, from /usr/src/linux/include/linux/binfmts.h:5, from /usr/src/linux/include/linux/sched.h:10, from cdemu.c:68: /usr/src/linux/include/asm/system.h: In function `__set_64bit_var': /usr/src/linux/include/asm/system.h:189: warning: dereferencing type-punned pointer will break strict-aliasing rules /usr/src/linux/include/asm/system.h:189: warning: dereferencing type-punned pointer will break strict-aliasing rules In file included from cdemu.c:70: /usr/src/linux/include/linux/file.h: In function `fcheck_files': /usr/src/linux/include/linux/file.h:37: warning: comparison between signed and unsigned /usr/src/linux/include/linux/file.h: In function `fcheck': /usr/src/linux/include/linux/file.h:50: warning: comparison between signed and unsigned /usr/src/linux/include/linux/file.h: In function `__put_unused_fd': /usr/src/linux/include/linux/file.h:62: warning: comparison between signed and unsigned In file included from /usr/src/linux/include/linux/blk.h:4, from cdemu.c:75: /usr/src/linux/include/linux/blkdev.h: In function `blk_queue_bounce': /usr/src/linux/include/linux/blkdev.h:212: warning: comparison between signed and unsigned /usr/src/linux/include/linux/blkdev.h: In function `blk_finished_io': /usr/src/linux/include/linux/blkdev.h:348: warning: comparison between signed and unsigned cdemu.c: In function `ce_findtrack': cdemu.c:241: warning: comparison between signed and unsigned ************************************************************ if you get an error message (not a warning) like cdemu.c: In function `ce_transfer': cdemu.c:***: too few arguments to function `do_generic_file_read' you most likely have a new redhat kernel. you just need to change one line in the module source search for this 2 lines do_generic_file_read(vc->vc_backing_file, &position, &desc, vc_read_actor); and add a ",0" to the second line &desc, vc_read_actor, 0); and as root #*#*#*#*#*# #*# 4 #*# make install #*#*#*#*#*# #*# 5 #*# now we can load the kernel modul just with typing modprobe cdemu no message should be given by this command #*#*#*#*#*# #*# 6 #*# after the install you just need to call cdemu to get the help screen of the userspace program if you're using devfs, then nodes will show up in /dev/cdemu/ automagically. if you're using udev, you might want to add this to /etc/udev/udev.rules: KERNEL="cdemu[0-9]*", NAME="cdemu/%n" otherwise you'll get a bunch of nodes showing up in /dev/ instead of /dev/cdemu/ ps: Any bug reports, comments, feature requests wished.