Ticket #51 (closed defect: fixed)

Opened 5 years ago

Last modified 3 years ago

module-hal-detect does not work with linux kernel 2.6.20

Reported by: slomo Owned by: lennart
Milestone: Component: module-detect
Keywords: Cc:

Description

Hi, module-hal-detect of pulseaudio 0.9.5 does not work at all with linux kernel 2.6.20. It fails to detect any sound devices on startup and prevents pulseaudio from starting. 2.6.19 on the same machine with all other software not touched works fine, using module-detect on 2.6.20 and 2.6.19 works fine too. I can confirm this on 4 machines with completely different hardware.

Bye

Attachments

lshal.txt Download (84.9 KB) - added by slomo 5 years ago.
lshal output on one of those machines
cards.txt Download (221 bytes) - added by slomo 5 years ago.
/proc/asound/cards content on the same machine
alsa-sysfs-fix-2.6.20-rc5.txt Download (0.7 KB) - added by xiphmont 5 years ago.
Patch to fix ALSA sysfs device symlink population
alsa-sysfs-fix-2.6.20-rc5-updated.txt Download (1.3 KB) - added by xiphmont 5 years ago.

Change History

Changed 5 years ago by slomo

lshal output on one of those machines

Changed 5 years ago by slomo

/proc/asound/cards content on the same machine

Changed 5 years ago by xiphmont

Patch to fix ALSA sysfs device symlink population

Changed 5 years ago by xiphmont

  • status changed from new to closed
  • resolution set to fixed

The bug is not in Pulse or hald. This is a kernel bug caused by ALSA attempting to move to a new version of device creation routines for sysfs. The /sys/class/sound/[node]device symlinks are all pointing to the incorrect places.

The attached patch corrects the kernel bug. It has also been submitted upstream.

Monty

Changed 5 years ago by xiphmont

[Further digging after feedback from kernel team reveals....]

The above patch is part of the story, as it turns out.

First of all, an updated patch is attached; it corrects the device entries for all the unit types, not just the pcm and control devices.

Second additional piece of information: The kernel bug only appears if CONFIG_SYSFS_DEPRECATED is set in the kernel .config, which it is by default. If this define is not set, /sys/class/sound follows a new structure introduced in 2.6.20-rcX kernels and HAL is not, in fact, capable of handling this new format. I'm working on a hald patch as well.

For now, applying the updated kernel patch and defining CONFIG_SYSFS_DEPRECATED will allow Pulse to work with 2.6.20 by fixing a legitimate bug in the kernel. Even once HAL is updated, the above kernel patch will be needed unless CONFIG_SYSFS_DEPRECATED is unset *and* a new hal is used.

Don't you wish kernel stability meant something?

Monty

Changed 5 years ago by xiphmont

Note: See TracTickets for help on using tickets.