Fedora Core 3 ALSA and 2.6.10 Kernels

Bill Moss
January 20, 2005

Introduction

Many FC3 users who recently updated to a 2.6.10 kernel are reporting that sound no longer works. The purpose of this note is to point out that this is a configuration issue that arises because ALSA has added two new sound settings for use with the 2.6.10 kernels. These settings are 'Headphone Jack Sense' and 'Line Jace Sense.' For sound to work properly, these settings must be muted, but they are often not muted when users boot a 2.6.10 system for the first time. How these setting are made, saved, and restored depends on the desktop system and mixer you are using.

K Desktop, KMix

Suppose KDE is configured to control the sound system.

  Start Menu -> Control Center -> Sound & Multimedia 
             -> Sound System -> Enable the sound system

Suppose KMix is running in the system tray.

  Right click the KMix icon in the system tray 
      and select 'Show Mixer Window'
  Output tab: set volumes
  Input tab: set levels
  Switches tab: mute 'Headphone Jack Sense' and 'Line Jack Sense'
  Settings Menu -> Configure KMix... 
                -> Dock into panel
		-> Enable system tray volume control
		-> Restore volumes on login

The 'Restore volumes on login' setting is the key to making these settings stick.

GNOME, Volume Control

Suppose the GNOME Volume Control is running in the Panel.

  Right click the Volume Control icon in the Panel 
      and select 'Open Volume Control'
  Set output volumes and input levels
  Mute 'Headphone Jack Sense' and 'Line Jack Sense'

These GNOME settings will stick.

ALSAMIXER

Assume that the sound system is not being controlled by a desktop system and associated mixer. Sound settings can be made using alsamixer.

  Start alsamixer as root
  Set output volumes and input levels
  Mute 'Headphone Jack Sense' and 'Line Jack Sense'

Make a backup copy of your default settings.

  # alsactl store
  # cp /etc/asound.state /home/username

Look at the file /etc/modprobe.conf and you will see that alsactl restore is executed when your sound driver loads at boot and alsactl store is executed when your sound driver unloads at shutdown. The settings are saved in the file /etc/asound.state.

The Source of the Problem

Suppose a 2.6.9 kernel is updated to a 2.6.10 kernel. The settings 'Headphone Jack Sense' and 'Line Jace Sense' are not available for 2.6.9 kernels. When the 2.6.10 kernel is booted for the first time, these new settings are NOT MUTED, and these unmuted settings will stick until they are changed and stored. If you are using the K desktop system, change them using KMix as indicated above. If you are using GNOME, change them using the Volume Control as indicated above. Otherwise, change them with alsamixer. Warning: If changes are made with alsamixer and some 'other' mixer is in control of your system, changes made using alsamixer will not stick since they will be overwritten by the 'other' mixer.

If this solution Does Not Work

Check out the bug reports at

  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=144742