Under ConstructionThis web page is still under construction.

The Important Stuff: Getting It and Setting It Up

You can download the latest version here.

For installation details, see the file INSTALL in the archive, or look here.

News about the module (such as there is) is here.

If you're a developer, you can find the SourceForge project page and the CVS repository here.

About The Kernel Beep Module

Ever since I switched my primary desktop to Linux, I've been frustrated by the circa-1970s console beep.  Every other modern operating system lets you replace the beep with a more aesthetically-pleasing alternative.  To add insult to injury, it uses the (truly hideous) PC speaker, which doesn't allow you to control or mute the volume - unless you're one of the lucky ones who has a sound card that lets you wire the speaker to it.

Well, I went looking for a kernel patch/module/whatever to replace the horrible beep.  All I wanted was a simple "play a .wav"-type of solution.  Instead, I found a lot of solutions which seemed quite a bit more complex than what I needed, and (at the same time) restrictive in the options that you had available on a beep, or on what kind of sound card you had.

So, frustration yields invention.  I wrote my own solution to the problem, and now am making it available to others who are (possibly) equally as frustrated.  Since I recently installed Linux 2.6, that's what the solution ended up being implemented for.

I don't pretend for a second that it's the "best possible" solution in the world.  I also don't pretend that it's bug-free.  What I do say is that it seems to work on my system, and is relatively simple in implementation.

The Good

The Bad

The Ugly



BEWARE: There be dragons here!  Well, dragon hatchlings, at least.

Unfortunately, since this is a kernel module, and involves patching your kernel, installation is not your regular "configure", "make", "make install" dance.

Step 1: Patching the Kernel

There is a patch file called beep-kernel-2.6.2.patch.  If you don't know how to patch and rebuild your kernel, this topic is way beyond the scope of this documentation, so I'd suggest taking a look at this for starters.

This patch is against a vanilla 2.6.2 kernel.  It's a simple patch, though, and should probably apply against just about any flavour of 2.6 kernel.  I can't guarantee it, though.  If it doesn't apply cleanly, open the patch with your favourite editor, and make the changes in the patch to drivers/char/keyboard.c in your kernel source directory.

Once you've applied the patch and rebuilt your kernel, reboot into your brand new beep-enabled kernel.  You should notice that nothing has changed.  Yet.

Step 2: Installing the Beep Module

Change to the directory you untarred the beep-module source and type:

./configure && make

A brand new beep.ko should be created for you, if everything goes well.

Then, as root, type:

make install

And the module should be installed into your module directory.

Step 3: Creating the Beep Userspace Handler

You will need to create a program, /sbin/beep, that the beep handler runs whenever it needs to beep.  I've included my beep handler (copy it to /sbin/beep) and sound (copy it to /usr/share/sounds/beep.wav) in the examples directory.  I use ALSA, so if you do as well, this should suffice.  If you use something else, or want your beeps to go through the regular sound daemon on your system (ESD, aRTS, JACK, etc.), you'll need to create your own script.

If you come up with a script and I don't have it, you might want to send it to me.  Who knows, I might make the installation smart enough to install the right script automatically for you in a future version.

Step 4: Entering the World of Beeps

Now, once everything is in place, type (as root):

modprobe beep

Do something that would normally make the irritating noise. You should get whatever you made your /sbin/beep script do.

Type (again as root):

modprobe -r beep

and everything should be back to the way it once was.

You might want to make the beep module load whenever your sound card is loaded up, by editing modprobe.conf, or you might want to load it in an init script.  I do the former.



There is no FAQ, as yet.  I hope everything is covered in the install notes and in the README.

Known Bugs

None, at this exact moment.  Of course, that could mostly be due to the fact that AFAIK I'm the only one using it.


March 13, 2004

I finally got it all bundled up, and (hopefully) working.  I even made this (albeit rudimentary) webpage.

Hosted By:

SourceForge.net Logo

Valid HTML 4.01! Valid CSS!

Last updated Tuesday, March 16, 2004
This web page brought to you by VIM.