[paranoia-dev] CDROMVOL problem on Xbox dvd drives
Michael Steil
mist at c64.org
Fri Aug 8 04:21:06 PDT 2003
Hi!
((I sent an email to this mailing list yesterday and it never appeared,
and Mozilla didn't save it. :-(
So I'm writing it again, this time shorter. Perhaps the old email shows
up again some time...))
I'm Michael Steil from Xbox Linux. Linux is running very well on the
Xbox, but there is a problem with cdparanoia.
One of the drives Microsoft ships with the Xbox, the Thomson one, gives
an error when you try to "play" an audio CD or send any commands
related to this. The reason is simple: The drive has no analog or
digital audio out line anyway.
Unfortunately, cdparanoia III "pings" the drive by reading the audio
volume:
----------
/* Test for presence of a cdrom by pinging with the 'CDROMVOLREAD'
ioctl() */
int ioctl_ping_cdrom(int fd){
struct cdrom_volctrl volctl;
if (ioctl(fd, CDROMVOLREAD, &volctl))
return(1); /* failure */
return(0);
/* success! */
}
----------
if(ioctl_ping_cdrom(fd)){
idmessage(messagedest,messages,"\t\tDevice %s is not a
CDROM",device);
[...]
----------
So cdparanoia assumes that every IDE drive that has an audio volume is
a CD-ROM drive. And it assumes that every CD-ROM drive has an audio
volume. The Thomson DVD in the Xbox might be the first drive for which
this is not true. It can rip audio CDs without any problem, still
cdparanoia refuses to detect it.
We patched the Linux kernel so that the CDROMVOLREAD ioctl never gives
an error, but this is no clean solution. I think cdparanoia should be
changed.
What about the CDROM_GET_CAPABILITY ioctl instead? Every drive is
supposed to support it, even if it cannot play audio, so it should
return > 1 on all CD-ROM drives. By the way, the Thomson drive returns
0x38110, the 0x100 part meaning it cannot "play" CDDA - which thus is a
legitimate feature of a CD-ROM drive!
I would be happy to change it in the source.
What are your opinions?
Michael
<p>--- >8 ----
List archives: http://www.xiph.org/archives/
Paranoia homepage: http://www.xiph.org/paranoia/
To unsubscribe from this list, send mail to 'paranoia-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Paranoia-dev
mailing list