This web page is still under construction.
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.
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.
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.
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.
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:
And the module should be installed into your module directory.
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.
Now, once everything is in place, type (as root):
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.
None, at this exact moment. Of course, that could mostly be due to the fact that AFAIK I'm the only one using it.
I finally got it all bundled up, and (hopefully) working. I even made this (albeit rudimentary) webpage.
Last updated Tuesday, March 16, 2004
This web page brought to you by VIM.