I'd like to use a beep sound in a shell script. Unfortunately none of the methods I found via Google work for me.
echo -e '\a' echo -ne '\007'
and the command
beep after I installed it via apt.
What could be the reason?
sudo modprobe pcspkr and then
beep should work.
The reason this doesn't is because by default Ubuntu no longer loads the hardware driver that produce beeps.
If this works for you then to enable the loading of pcspkr permanently edit the
/etc/modprobe.d/blacklist.conf file (using
gksudo gedit perhaps) and comment out line that says
blacklist pcspkr so it looks like this:
# ugly and loud noise, getting on everyone's nerves; this should be done by a # nice pulseaudio bing (Ubuntu: #77010) # blacklist pcspkr
Not being a fan of the pcspkr beep, I use a beep from one of the system sounds with the installed pulseaudio server's paplay command.
First find a sound you like (you can browse /usr/share/sounds for some available ones for example) and create a reference to it
Then have it available as a command
alias beep='paplay $BEEP'
Now just run
beep whenever you need it. For example, to alert you when a command is finished:
find . | grep treasure ; beep
To fix this problem persistently:
gconf-editorand if the
desktop | gnome | peripherals | keyboard | bell_modesetting is present then change it from
dconf-editorand if the
org | gnome | settings-daemon | peripherals | keyboard | bell-modesetting is present then change it from
pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.oggto the file
[ "$DISPLAY" ] && xset b 100to the file
The simplest way to activate this solution is to reboot.
Further, to implement this solution immediately for a terminal window that is already open, run the
pactl command and run the
xset command in the terminal window in question.
Since this is a very high rated question on google, I'll add the steps I did to re-enable beep in both console and X11:
As already answered, the
pcspkr kernel driver for the PC Speaker is blacklisted in Ubuntu.
Temporarily enable until reboot:
sudo modprobe pcspkr
Automatically enable on boot:
sudo nano /etc/modprobe.d/blacklist.conf
(delete or comment
pcspkr line by prepending it with
Under X, like when using Unity, KDE, Gnome Shell, the beep events are captured by PulseAudio thanks to
module-x11-bell, which is loaded by default at
/usr/bin/start-pulseaudio-x11. And the sound sample PulseAudio plays on beep,
bell.ogg, is blank by default. Additionally, the bell volume may be muted.
To temporarily enable for current session,
xset b 100 # perhaps not needed, on my system it was 40 by default pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
There are other suitable samples you can try at
/usr/share/sounds, for example check the ones at
Note that the
beep program is not really necessary. But if installed, it uses the PC Speaker. It was the only way I could find to enable the buzzer under X:
sudo apt-get install beep
To automatically enable on boot, just add the above lines in your
~/.profile, or system-wide at
To test it:
I've encountered this problem before. From what I remember, the problem is that the terminal bell tries to ring an internal computer speaker (as in an old-school desktop) but laptops and some newer computers are missing such a thing.
The only solution I found at the time was to
sudo apt-get install sox and
play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>
play -n synth 0.1 sine 880 vol 0.5
If you have actual speakers connected to the computer and you're not getting a beep it's likely because you are using compiz. Compiz is relying on pulseaudio catching the beeps and playing them while metacity bypasses the usual setup and uses libcanberra to play a beep sound. If it works with metacity and not compiz that is your problem, otherwise the answer htorque gave is corrent.
As far as I can tell, this is a bug: System beep broken in Karmic despite heroic efforts to fix it.
I finally found a solution, which doesn't require
alsamixer to have a PC Beep option. I think I remember all my changes:
uncomment the following in
load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg load-module module-x11-bell sample=bell-windowing-system
per this bug, run
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
"Beep only works if your PC has a 'speaker'. Many modern laptops / small devices don't have one".
Try playing a sound like this:
play xxxxx.wav I found a nice wav file that seems to be short and sweet, but you can pick your own as well. Works for me when all else failed.