Problem with pc/internal speaker/beep

Dear all,

I am having trouble getting my internal speaker to work on openSuSE 11.2. These are the symptoms and my experiences to date. Any help would be gratefully appreciated.

When I boot my machine the internal speaker emits a beep. On my other machines, I get a similar sound when I press Escape in vi (in command mode). It is this beep from the internal speaker that I am having trouble with.

Looking around on the web I see that it is reported that the module snd-hda-intel can interfere with the internal speaker. When I unload this module using rmmod, I do get the beep from the internal speaker. When I reload it, the beep does not sound. Some of the reports seem to attribute the problem to a configuration option for the sound module called “digital beep” that needs to be enabled.

Using “make -C O=pwd cloneconfig” on my kernel sources, I see that the option CONFIG_SND_HDA_INPUT_BEEP is set to y.

Also affected are things like printf ( “\a” ) and sending Control-G to “cat” or “cat > /dev/console”.

My question is this: what do I need to do get the internal speaker to sound while at the same time retaining the full capabilities of the sound system?


After a lot of unsuccessful tries and research on the net, I found a workaround that works for me. The problem seems to be that ‘snd_hda_intel’ is loaded after ‘pcspkr’. I discovered that if I remove ‘pcspkr’ and reload it, the beep will go going directly to the pc-speaker, while the normal sound still works as usual (active speakers).

(as root)
> modprobe -r pcspkr
> modprobe pcspkr

This way, ‘pcspkr’ will be on top of ‘snd_hda_intel’

I just discovered this. Don’t know how to change the order (first snd_hda_intel then pcspkr) in the system itself (anybody?). But for now I will just put those 2 lines into /etc/init.d/boot.local of my system (opensuse 11.2).

Hope this works for you as well.