Before Christmas I decided to replace Slackware Linux :-) by Debian 2.1
:-( in the hope that Debian would be easier to upgrade in the future.
Among the things that no longer work properly now is audio CD playing.
I tried all the CD player packages available for Debian 2.1. Most of
them didn't give me a single note. Workman only plays the first note of
each track when I klick on one of the track number buttons. After the
first half second: silence. The only player that accepts doing some work
for me is xmcd. That's the same program that I also used with Slackware
before. But even xmcd no longer works as well as it used to. The "next
track" / "previous track" buttons don't work and the playlist is
ignored, i. e. tracks excluded from it are still played. When I click
"previous track" quickly several times xmcd crashes and the music
continues to play.
When I start xmcd with the "-debug" option I get messages like this one:
IOCTL: CDROM_DRIVE_STATUS arg=0x7fffffff ret=-1
CD audio: ioctl error on /dev/hdc: cmd=CDROM_DRIVE_STATUS errno=1
The hardware is the same as it was under Slackware and the kernel
version (2.0.38) and configuration are the same, too. The mixer I use is
Tkmixer and the kernel is patched with Thorsten Knabe's AD1816 sound
driver module. The CDROM drive is recognized by the kernel at boot time
and I can read data CDs. The only obvious difference is that the
Slackware version I used was still libc5-based.
I spent the last few weeks of my life trying to figure out the reasons
for my problems. I removed the Debian packages with lesstif and
installed the statically linked Motif version of xmcd from Ti Kan's web
site instead. This resulted in some of the controls behaving a bit more
sensibly, but the basic problems are still there. So lesstif is
obviously not to blame.
I also found out that "next/prev track" work allright when there is no
database entry for the CD. So the problem seems to be associated with
CDDB, or the passing of information from the CD database to the drive.
Could anyone tell me what's going on or what I should do next to isolate
Thanks in advance for your help.
P.S. When investigating this matter I discovered that I had two copies
of the kernel header files on my machine: one under /usr/include/linux
and one under /usr/src/linux/include/linux. Why?