Bug 225221

Summary: Kernel module "INPUT_PCSPKR" not compiled as a module.
Product: [openSUSE] openSUSE 11.1 Reporter: Sanne Grinovero <sanne>
Component: KernelAssignee: Takashi Iwai <tiwai>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Enhancement    
Priority: P5 - None CC: forgotten_fbKqKvv6Lf, tiwai
Version: Beta 4   
Target Milestone: RC 1   
Hardware: All   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Sanne Grinovero 2006-12-01 10:24:27 UTC
Since opensuse 10.2 is the kernel support for the PC-Speaker is built in the kernel, before it was installed as a module (symbol INPUT_PCSPKR).
   Having this as a module permitted us to blacklist it, as using a lot of laptops in the same office all those "beeps" where quite annoying. Now I have to rebuild my own kernel, losing automatic update features from the distro and much time.
  Please leave it as module (as before), or don't include it at all ;-)
Comment 1 Greg Kroah-Hartman 2006-12-14 18:56:26 UTC
Why do you need this driver as a module?  What problems is it causing built in?
Comment 2 Sanne Grinovero 2006-12-17 14:47:12 UTC
It isn't causing any problem, it is just annoying. A Lot. I really have to disable it where I work as it is disturbing other people.
I wouldn't bother you if it wasn't a serious concern, I hope you understand this little problem can be a big problem for some people.
Comment 3 Lars Marowsky-Bree 2007-01-09 18:56:24 UTC
Uhm, the CONFIG_INPUT_PCSPKR option has been statically compiled in since at least 2003. ;-)
Comment 4 Greg Kroah-Hartman 2007-01-27 18:45:10 UTC
*** Bug 239636 has been marked as a duplicate of this bug. ***
Comment 5 Steven Lawrance 2007-06-10 15:41:18 UTC
I'd like to also have this compiled in as a module. Other distros make this a module, making it easy to turn it off via module blacklisting on those systems.

Up until several months ago, I used an IBM ThinkPad that had a master mute button that also turned off the PC speaker. As a result, I didn't mind if the PC speaker driver was on, and I actually wanted to hear beeps when it was not muted.

Now I have a Dell Latitude D620 from work, and the mute button does not mute the PC speaker :-(. I had to compile the kernel to exclude PC speaker support. The PC speaker on this Dell Latitude is extremely loud! :-(

As an alternative, I suppose that it could be possible to expose the PC speaker's enabled/disabled status as an ALSA mixer in the kernel. Some sound chips already do that from the sound chip's perspective, though having this capability exposed from the PC speaker's perspective could be interesting. Should that be filed as a child to this item as a feature request?
Comment 6 Steven Lawrance 2007-06-10 15:50:29 UTC
Ahh.. Shortly after adding that comment, I came across http://gentoo-wiki.com/HOWTO_Virtual_PC_Speaker, which provides PC speaker services through the sound card. There's also supposedly a way to turn off the PC speaker by adding a line to /etc/inputrc as mentioned at http://gentoo-wiki.com/TIP_NoBeep#Forever . Those sound like better solutions than making the PC speaker a module, so I'll try out the /etc/inputrc strategy with the standard openSUSE kernel.
Comment 7 Karrer Joachim 2007-10-18 09:44:37 UTC
Hi Lars

The solution Steven has mentioned, is not suitable in all cases.

You (rather Greg) asked: "Why do you need this driver as a module?"

Let me ask: Why must the driver be compiled in static?

It's really frustrating:
- getting a kernel-update from OpenSuse also retrieving the sources
- only changing the PCSPKR-flag in .config 
- having a one to three hours recompilation
only not to have the annoying BEEP. 

All in all it's about 5 hours to get a kernel-update installed and working.


So the only thing I'd beg you do:
Change a 'Y' to an 'M'.
I suppose the pcspkr-module would be loaded if not configured otherwise, isn't it?

Is there really so much work behind it?

Comment 8 Steven Lawrance 2007-10-19 06:52:26 UTC
Another possibility can be to disconnect the PC speaker from the mainboard, though this might be tricker for laptops, especially if it's a work laptop instead of your own. I once did this to a Novell NetWare server back in 1999 that had beeped one too many times in the office, and I disconnected its PC speaker while it was on, too!

Perhaps it might be time to start up a "beepless" yum/Yast repository to host precompiled kernels and updates for the latest kernels with PCSPKR as a module. This can probably be built automatically using a script or something. My server is not on a fast connection, though the online openSUSE build service might be a possibility..
Comment 9 Sanne Grinovero 2007-10-22 08:26:26 UTC
I'm still bothered with this problem, I would like to stress now that many people in my office stay away of this "beeping system" and get a very stressfull idea of linux.
There are many ways to disable it:
* reconfigure the kernel
* configuring bash to not beep (thanks a lot Lawrance for the howto link)
* unplugging the pc speaker

Still they are not good solutions:
* people can't always mod theyr hardware
* not everybody likes to make "techy patches" to their system

I really think there should be an easy way to disable it, or even better to have it disabled by default. I don't know anybody relying on their pc speaker for any purpose other than having the mainboard complain the hardware isn't plugged in correctly: I think the time is come OS'es should drop pc-speaker support.

I didn't ever hear windows vista beeping, maybe it does for really critical situations. So a good solution could be to keep the pc-speaker module compiled as you like but have bash configured to "nobeep" by default.
Comment 10 Pascal Bleser 2008-06-22 20:34:19 UTC
Reopening the bug (and moving to 11.0 as it's still present there):
* I think there were a few valid reasons for having pcspkr as a module
* Could someone at least give a proper reason why it shouldn't be a module ?
Comment 11 Takashi Iwai 2008-07-07 12:44:57 UTC
I don't see any big reason to make it module, so I'm basically for it.  Even as a module, the driver will be loaded automatically via udev.

The only problem would be the case if beep were needed in initrd, but I don't think it's a fatal problem, too.
Comment 12 Pascal Bleser 2008-07-07 22:57:37 UTC
(In reply to comment #11 from Takashi Iwai)
> I don't see any big reason to make it module, so I'm basically for it.  Even as
> a module, the driver will be loaded automatically via udev.

Unless it's blacklisted, which is what other distributions do (as a way to disable the PC speaker).

(did you mean "to make it a module" or "not to make it a module" ?)

> The only problem would be the case if beep were needed in initrd, but I don't
> think it's a fatal problem, too.
Comment 13 Forgotten User fbKqKvv6Lf 2008-07-24 23:42:16 UTC
I voted for this bug, it's extremely annoying on my Dell Inspiron 6400 Laptop, there is (almost?) no way to disable it, and there have been various topic on the openSUSE forums:
http://forums.opensuse.org/hardware/386850-beeping-insanity.html
http://forums.opensuse.org/hardware/386136-sound-disable-pc-motherboard-speaker.html

I just can't figure out the reason why anyone *needs* this to be compiled into the kernel? What in the world is it good for?
Comment 14 Takashi Iwai 2008-08-19 13:06:59 UTC
Fixed on kernel CVS now.  11.1 kernel will be with CONFIG_INPUT_PCSPKR=m.
Comment 15 Forgotten User fbKqKvv6Lf 2008-08-19 20:05:16 UTC
Wonderful. Many thanks, you just took the last reason of not running openSUSE on my laptop away :), I will be upgrading to 11.1 as soon as I have the chance. I'm glad that even minor (major) enhancements like this have a chance of being voted through.
Comment 16 Forgotten User fbKqKvv6Lf 2008-11-06 10:02:49 UTC
I'm running the openSUSE 11.1 Beta 4 Live CD now which has kernel 2.6.27.4-2-default and it seems to me the problem is still there.

I completely muted my speakers using KMix, yet when I press CTRL+ALT+BACKSPACE I still get the extremely loud system beep. As you might say "you're not supposed to press that combination of keys in the first place", well I'm also experiencing the same issue when I search for a word that doesn't exist in a web page with Firefox. The Firefox beep I can still disable by going into the KDE4 System Settings and going to the "System Bell Configuration" and switch the settings "Use system bell instead of system notification" ON (it is disabled by default), then I have the set the duration of the beep to 1 msec so it becomes inaudible. But what I really want to to disable the system beep permanently, forever and always. The bleep is way to loud, I'm talking 80 decibels and I really need a (simple) way to disable it.

Please tell me this will be either fixed in the final release or how to disable it now.
Comment 17 Takashi Iwai 2008-11-06 10:06:15 UTC
Run "modprobe -r pcspkr".  The driver is automatically loaded as default.
On the normal system, you can add it to the blacklist to suppress the auto-loading.