|
发表于 2006-5-31 13:11:00
|
显示全部楼层
安装是按照下面做的吗?
#***************************************************************************
# INSTALL - description
# -------------------
# copyright : (C) 2003 by Robert Penz
# email : [email protected]
#***************************************************************************
#***************************************************************************
#* *
#* 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 module just with typing
modprobe cdemu
no message should be given by this command
for you Debian users (maybe others), you might have to run `update-modules` first
#*#*#*#*#*#
#*# 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/rules.d/99cdemu:
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. |
|