USB audio takes over other devices on boot

Lennart Poettering mzerqung at 0pointer.de
Mon Sep 17 23:43:11 UTC 2007


On Sat, 15.09.07 09:59, Konstantin Ryabitsev (icon at fedoraproject.org) wrote:

Hi!

> Since there isn't a mic input jack on Mac Mini, I have to use a USB
> headset. If I leave it plugged in when booting, the HDA Intel onboard
> device doesn't even show up any more in my ALSA device selector --
> only USB audio devices are present. So, I have to remember to unplug
> the headset before booting, in order for the onboard audio to still
> show up and work (we like music).
> 
> I don't think this is desired behaviour -- both devices appear to work
> correctly when I plug in the USB headset after the boot.
> 
> I'm not sure if this is the same as
> https://bugzilla.redhat.com/show_bug.cgi?id=219023, but the symptoms
> do seem similar.
> 
> Can anyone confirm with other devices? This is on F7.

This is probably caused by /etc/modprobe.conf fragments that
system-config-sound writes. Those fragments are written to make the
binding between audio device and ALSA device index stabl. However,
they cause problems when an audio device is later plugged in that was
not plugged when s-c-s was first run.

So, as far as I understood the problem: s-c-s finds your first sound
card, decides it should get index 0 assigned. Hence it writes a
fragment which enforces this mapping. Now, on next bootup a new device
is around, which is configured by the kernel before the already known
one. Because it has no modprobe.conf fragment it gets an index
assigned automatically. The first one that is free happens to be 0, so
it get's that index assigned. Next the already known sound card gets
configured by the kernel. The modprobe.conf fragment is used, which
assigns it index 0 -- which however is already taken at this
point. And thus the "main" device is not configured and thus doesn't
appear anymore.

So, what's the fix for this? 

A quick fix would be to simply remove that modprobe.conf fragment in
question.

For Fedora the right fix is probably to remove s-c-s from firstboot,
so that the fragment is not written anymore. It's obsolete now,
anyway.

Of course, that way we lose the fixed alsa device indexes. But, in --
my opinion -- that was a bad idea anyway. Sound cards should be
identified by a device path, like the HAL device string. PulseAudio
always uses HAL device strings for identification of sound
cards. Since we moved to PA now, this problem thus goes away.

This all is an educated guess. Haven't checked if the above
recommendations actually fix your problem. Please report back!

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4




More information about the fedora-devel-list mailing list