Audio CD issue -- most everything but noise ASUS M4A89TD mobo

Polytropon freebsd at
Thu May 31 22:16:31 UTC 2012

On Thu, 31 May 2012 14:43:27 -0600, Gary Aitken wrote:
> On 05/31/12 12:56, Polytropon wrote:
> > Still, there _is_ a way of a workaround which is so ugly and
> > partially stupid that I fear to mention it.
> > 
> > You need a cable, 2 x 3.5mm stereo jack, which you connect
> > from the front connector of the CD drive to the line-in
> > connector on the back of your machine (the main baord's
> > line-in connector, typically colored light blue).
> > 
> > I didn't say anything! :-)
> Quality sucks though.

Impedance and level mismatch would be the typical reason
for this. But basically, it's not _much_ worse than using
an internal analog connection.

> > Okay, this means the mixer doesn't even have a CD audio
> > mixer channel. If I remember correctly, this channel is
> > directly associated to the internal audio connector which
> > is _not_ present in your system.
> You mean a cd mixer channel for digital audio only shows up
> if there is a physical analog audio input???

Oh god, I hope not!

> If that's the problem, is there any way to force it?

I really have no idea how digital audio output is actually
represented in the mixer. The "mixer" program will allow
you to manipulate the levels of channels that are reported
by the mixer driver (which in turn accesses the sound
hardware); if the "sound card" doesn't report to have
CD audio, the corresponding item won't be available.

Additionally, I'm not sure if "forcing" a CD audio
output (no idea how, maybe by changing the driver's
source code?) could affect digital CD audio because
even though they serve the same purpose, they are
not related "in wires".

> Otherwise, I'm doa without some kind of kernal patch?
> It's hard to imagine no-one else has had this problem...

As I said, that topic has been on this list before.
A possible way would be to use cdparanoia or something
like that to extract the data digitally, and then play
it; "then" also means "in a pipe". No real solution,
I admit.

> > The /dev/cd0 device is the "SCSI translated" device which does
> > perform the same purpose as /dev/acd0, except that it's not
> > using the ATAPI "command set", but the SCSI "command set".
> > 
> > See "man 4 cd" and "man 4 acd" for comparison.
> No acd in 9.0.  But I see what you're saying.

Correct - the ATAPI subsystem has been merged into the
"new" system where /dev/cd0 is used. Still there seem
to be problems regarding cdcontrol (which accesses the
ATAPI "command set", if I remember correctly), as well
as the direct access to audio CD tracks, such as the
formerly present /dev/acd0t01 = track 1.

> > You can also check the content of /dev/sndstat..
> >       % cat /dev/sndstat 
> 	FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386)
> 	Installed devices:
> 	pcm0: <HDA VIA VT1708_8 PCM #0 Analog> (play/rec) default
> 	pcm1: <HDA VIA VT1708_8 PCM #1 Analog> (rec)
> 	pcm2: <HDA VIA VT1708_8 PCM #2 Digital> (play).
> %cat /dev/sndstat
> FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
> Installed devices:
> pcm0: <HDA ATI R6xx HDMI PCM #0 HDMI> (play)
> pcm1: <HDA Realtek ALC892 PCM #0 Analog> (play/rec) default
> pcm2: <HDA Realtek ALC892 PCM #1 Analog> (play/rec)
> pcm3: <HDA Realtek ALC892 PCM #2 Digital> (play)
> pcm4: <HDA Realtek ALC892 PCM #3 Digital> (play)

Do you maybe also have multiple mixer devices associated?
	% ls /dev/mixer*

and you can see their individual states with 

	% mixer -f /dev/mixer0
	% mixer -f /dev/mixer1
	% mixer -f /dev/mixer2

and so on.

> I presume the "...Analog> (rec)" on yours is the missing analog input.

There are in fact several analog input channels, such as the
microphone (3.5mm mono connector) and line in (3.5mm stereo
connector). Additionally there are connectors on the front
of the box. In other cases where I've seen such configurations,
they correspond to different mixer channels or even to
different mixers.

I'm _not_ sure I've seen an internal CD audio connector in
this particular machine, at least I'm not intendedly using one.

For comparison, I have 3 mixer devices with those entries:

	% mixer -f /dev/mixer0
	Mixer vol      is currently set to  95:95
	Mixer pcm      is currently set to  50:50
	Mixer line     is currently set to   0:0
	Mixer mic      is currently set to   0:0
	Mixer cd       is currently set to   0:0   <=== shoule be the one
	Mixer rec      is currently set to   0:0
	Mixer igain    is currently set to   0:0
	Mixer monitor  is currently set to   0:0
	Recording source: mic

	% mixer -f /dev/mixer1
	Mixer rec      is currently set to  75:75
	Mixer monitor  is currently set to  75:75
	Recording source: monitor

	% mixer -f /dev/mixer2
	Mixer vol      is currently set to  75:75
	Mixer pcm      is currently set to  75:75

> Hmmm.  Neither mine nor yours shows any "...Digital> (rec).
> Should I expect one if things were working properly?
> Probably not, if the inclusion of cd is just triggered by the analog input,
> and the card doesn't actually have a physical digital input.

The CD audio digital output should go "through" the (P)ATA
cable (40/80 pin flat wire) or the SATA connector (if it's
a newer one. I really have no imagination how this works.

> >> From the manpage: "The snd_atiixp bridge driver allows the
> > generic audio driver, sound(4), to attach to ATI IXP audio
> > devices." Not sure if that applies. Do you have an ATI IXP
> > audio device?
> Don't think so.  No "ixp" in dmesg
> The two audio dmesg entries are
> hdac0: <ATI (Unknown) High Definition Audio Controller> mem 0xfe9bc000-0xfe9bfff
> hdac1: <ATI SB600 High Definition Audio Controller> mem 0xfe6f8000-0xfe6fbfff ir
> I think the first one is the main one, and the second one is a
> secondary hd output.  

I think this is possible. The manual "man 4 snd_hda" explicitely
mentions your ATI SB600 device.

For comparison:

	% dmesg | grep ^hda
	hdac0: <VIA VT8251/8237A High Definition Audio Controller>
		mem 0xbfffc000-0xbfffffff at device 1.0 on pci128
	hdac0: HDA Driver Revision: 20100226_0142
	hdac0: [ITHREAD]
	hdac0: HDA Codec #0: VIA VT1708_8

	% dmesg | grep ^pcm
	pcm0: <HDA VIA VT1708_8 PCM #0 Analog> at cad 0 nid 1 on hdac0
	pcm1: <HDA VIA VT1708_8 PCM #1 Analog> at cad 0 nid 1 on hdac0
	pcm2: <HDA VIA VT1708_8 PCM #2 Digital> at cad 0 nid 1 on hdac0

Mine also uses the snd_hda driver. But I'm on 8.2-STABLE here.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list