[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