QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1520|回复: 13

ML2.0虚拟光驱cdemu的问题-各位大侠进来探讨探讨!

[复制链接]
发表于 2006-5-29 22:12:23 | 显示全部楼层 |阅读模式
关于虚拟光驱cdemu的问题!--各位大侠进来探讨探讨!

[www.linuxeden.com]
虚拟光驱CDEmu(2006-01-11 14:48:0 版本: 0.7

评价:
软件主页:[cdemu.sourceforge.net]
下载次数:10141
发布人dsj及管理团队可以更新/编辑该软件信息
类别:模拟器 软件大小: 0k
软件简介:这是虚拟光驱的内核模块,加在载后可以虚拟CD光驱,播放cd,但播放svcd,要使用mplayer,支持cue/bin 文件,我没测试过,有兴趣的朋友可以试试。

下载
[www.linuxeden.com]

安装!
make

在ML2.0正常编译。。


使用

使用
cdemu -d /dev/cdemu/0 *.cue

if its a data cd, just mount it.

mount /dev/cdemu/0 /media/cdrom/

To unmount and unload a cd type this:

umount /media/cdrom/ and
cdemu -u /dev/cdemu/0

ps: use cdemu -s to get a list of device and the files connected to them.
mount 的时候
加上
-t auto
或-t iso9660
都无法加载。。。


加上 -o loop 同样不行!


cdemu -s 可以显示已经加载了cue虚拟光驱文件。

但是
mount
却无法成功!


那位大侠有使用的经验,请交流交流!
 楼主| 发表于 2006-5-29 22:12:42 | 显示全部楼层
3.bin格式的虚拟光驱文件使用:

关于cue/bin光盘镜像文件的使用方法
(1).如果镜像是VCD之类的影碟,可以直接用mplayer播放:
mplayer cue://file[] [options]
(2).用bchunk( [he.fi] )转为ISO,这需要占用文件写入的时间:
bchunk file.bin file.cue outputfile
mount -t iso9660 outputfile /mnt/cdrom -o loop
(3).使用cdemu( [cdemu.sourceforge.net] ),这是一个kernel module,比较高效:
cdemu 0 file.cue
mount -t iso9660 /dev/cdemu/0 /mnt/cdrom

可惜出错。。。。
回复

使用道具 举报

 楼主| 发表于 2006-5-29 22:14:03 | 显示全部楼层
(2).用bchunk( [he.fi] )转为ISO,这需要占用文件写入的时间:
bchunk file.bin file.cue outputfile
mount -t iso9660 outputfile /mnt/cdrom -o loop

ok!

晕死了!

bchunk要做转换(浪费时间和空间)!
cdemu编译(或编译后)又有问题!

linux 在虚拟光驱这个问题上就是比windows要麻烦/低效。。。



那位大侠可以解决cdemu的问题阿??
谢了!
回复

使用道具 举报

发表于 2006-5-30 23:13:21 | 显示全部楼层
内核模块,和内核版本关系较大,建议到官方网站下最新版,编译

把提示用文件的形式贴出来。
回复

使用道具 举报

发表于 2006-5-30 23:41:30 | 显示全部楼层
要是新版的magic自带虚拟光驱功能就好了。

现在碰到bin格式的文件就头疼。
回复

使用道具 举报

 楼主| 发表于 2006-5-31 11:20:14 | 显示全部楼层
[quote:f9867ed150="lanzinc"]内核模块,和内核版本关系较大,建议到官方网站下最新版,编译

把提示用文件的形式贴出来。[/quote]

我下载的就是最新版!

ML下面也可以编译!
cue/bin文件也可以正常加载!
cdenu -s
可以显示出已经加载!


就是无法mount!
回复

使用道具 举报

 楼主| 发表于 2006-5-31 11:21:03 | 显示全部楼层
[quote:d9980f3fa7="sunmingming"]要是新版的magic自带虚拟光驱功能就好了。

现在碰到bin格式的文件就头疼。[/quote]


支持这个方向!(一劳永逸)
回复

使用道具 举报

发表于 2006-5-31 12:58:35 | 显示全部楼层
lsmod看看相关的内核模块有没有加载
“cdemu -s 可以显示已经加载了cue虚拟光驱文件”,只是表明cue文件被cdemu加载了

但cdemu的内核模块有没有加载就不知道了。

前面的贴子只说 make ,并没有 make install && reboot  也没有用modprobe加载内核模块。

另外:
The following only support Linux 2.4
0.5.3: cdemu_0.5.3.tar.bz2
0.5.2-alpha: cdemu_0.5.2_alpha.tar.bz2
0.4: virtualcd-0.4.tar.bz2
0.3: virtualcd-0.3.tar.bz2
回复

使用道具 举报

发表于 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.
回复

使用道具 举报

 楼主| 发表于 2006-5-31 15:21:25 | 显示全部楼层
我已经
make  install

如果不运行这一步是
也无法利用
cdemu加载cue/bin文件的!


还有同时已经加载cdemu模块!




lsmod里面就有
cdemu


不加载cdemu也是无法利用
cdemu加载cue/bin文件的!
#*#*#*#*#*#
#*# 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.
确实没有做!
回复

使用道具 举报

 楼主| 发表于 2006-5-31 15:35:32 | 显示全部楼层
如果那位大哥成功了,传授一下经验!
谢谢了!


也谢谢lanzinc的解答!
谢谢sunmingming的支持!
回复

使用道具 举报

发表于 2006-5-31 15:57:10 | 显示全部楼层
我已经在仓库里放了cdemu0.7的rpm包和KCDemu(一个cdemu的K前端,功能较弱,以后有时间扩充下吧),你可以试试。
另外mount的时候用 -t iso9660,如果原始的bin文件是svcd之类的(或者其它一些特殊格式,raw的),不能用cdemu模拟的。
回复

使用道具 举报

 楼主| 发表于 2006-5-31 16:41:05 | 显示全部楼层
多谢色兄!
回复

使用道具 举报

发表于 2006-5-31 19:31:50 | 显示全部楼层
Cddafs is a filesystem driver for Linux. It allows access to CD audio tracks as regular files: raw, AU and WAV. It also provides support for mixed-mode CD disks, which contain data track along with audio track(s).
Cddafs doesn't support ISO9660 filesystem by itself, but it can be used together with isofs driver.

http://www.ii.pw.edu.pl/~borkowsm/cdfs.htm
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-28 12:22 , Processed in 0.074791 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表