Messages in this thread | | | Date | Fri, 3 Sep 1999 08:51:35 +0100 | From | BOSZORMENYI Zoltan <> | Subject | cdrom problem(s) |
| |
Hi!
One of my friends complained about when he played MP3s from a cd, the CD drive always spinned down. So when the mp3 player wanted another chunk from the disc the sound stopped until the drive spinned up again. No, I do not want to start the "streaming IO" thread again. :-)
First, we tried to disable the spindown with hdparm but that did not worked, the command succeeded but the drive spinned down even after that.
Next, we experimented with the drive capabilities whether the drive supports setting its speed. The program can be found here: ftp://ftp.externet.hu/pub/people/zboszor/cdprobe.c
Here came the first problem: we tried several kernel versions and some IDE drives: (a RedHat 6.0 shipped) 2.2.5-15, a 2.2.12, 2.3.15 and 2.3.16 and a 16x Toshiba CD-ROM and a 8x <I do not know which vendor> one.
With 2.2.x the capability mask was 0xfff and with 2.3.15 it was 0x3ffff, which are definitely wrong.
The CDC_SELECT_DISC bit should appear only on CD changers, right? And the CDC_SELECT_SPEED bit appears on the 8x CD-ROM which fails to set its speed. :-( (2.3.x was not tested on this drive, yet.)
And the drives are CD-ROMs, not CD-R, not CD-RW and not DVD, so 2.3.15 is plain wrong in reporting capabilities.
With 2.3.16, we got 0x1fef on my drive, which seems to reflect the correct capabilities of the drive.
But with 2.3.16, we have another problem: it does not play audio CDs. Starting CD player applications fail with packet error on a vanilla 2.3.16 and other lines show up in dmesg or on the console:
/dev/cdrom: Wrong medium type cdrom: pid X is buggy! cdrom: open failed.
After applying the posted cdrom fix, we do not get the packet error but those lines do appear.
We tried to recompile cdp against 2.3.16. At first the compilation failed because there is an #include <linux/types.h> line in include/linux/cdrom.h. One of the source files of cdp includes <linux/cdrom.h> and <sys/types.h> and these conflict. Using
#ifdef __KERNEL__ #include <linux/types.h> #endif
in cdrom.h solves the compilation error but the audio CD playing problem remains.
Best regards, Zoltan Boszormenyi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |