Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

After an update some months ago, my laptop has begun making a low, repeated clicking sound every few seconds. It is not being generated through the regular sound system, as altering the volume and even muting the sound does not make any difference. My regular audio works fine, by the way, so I am guessing this is some sort of PC speaker, since I cannot hear the click when I listen through regular headphones.

Strangely, when I open the sound settings dialog the click magically disappears. I don't need to change any settings; if I simply leave the dialog open in the background then the problem disappears.

Any ideas what this could be?
I am running regular Ubuntu 12.04, and this is the output from lspci -v | grep -A7 -i "audio":

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
    Subsystem: Acer Incorporated [ALI] Device 0349
    Flags: bus master, fast devsel, latency 0, IRQ 44
    Memory at 54200000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd-hda-intel
share|improve this question
    
I have exactly the same problem, with an HP laptop rather than an Acer. –  jonnat Sep 23 '12 at 9:10
1  
More recently I noticed that it only happens when my laptop is unplugged and running on batteries. Have you noticed the same @jonnat ? –  John J. Camilleri Sep 25 '12 at 13:51
    
Yes, exactly the same wrt plugged/unplugged. –  jonnat Nov 13 '12 at 2:43
add comment

2 Answers

up vote 6 down vote accepted

It seems that the problem resides within the Intel High Definition Audio drivers, and it has been around for quite some time now.

To solve the problem temporarily, but immediately, issue the following command:

echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save

Try the previous command to be sure you are suffering this problem. If this works for you, then you can solve it permanently by adding the following line above "exit 0" in "/etc/rc.local".

echo 0 > /sys/module/snd_hda_intel/parameters/power_save

Hope this helps

Sources: post 1 post 2

share|improve this answer
    
This solution worked on an Acer Aspire 5733. Thanks a mill guys! –  Declan McGrath Oct 7 '12 at 18:12
    
Thanks for your help! The first line worked, but adding the second line to /etc/rc.local does not seem to make a difference; The problem returns each time I unplug the laptop or wake it from sleeping (while unplugged). I have to run the first command every time to stop the clicking, but maybe this can be set permanently somewhere? Thanks again. –  John J. Camilleri Oct 15 '12 at 20:35
    
worked on an acer 5742 ubuntu 12.04. Thanks a lot ! –  Elvis Nov 23 '12 at 10:52
add comment

taken from these threads:

how to execute a command after resume from suspend?

http://ubuntuforums.org/showthread.php?t=2019203

http://stackoverflow.com/questions/11183805/run-bash-script-from-another-script-without-waiting-for-script-to-finish-executi

create a script named hda-fix and place it in /etc/pm or somewhere in your home dir if you prefer. It should contain:

#!/bin/sh
sleep 5
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
exit 0

in folder /etc/pm/sleep.d create a script named say 30_hda-fix containing

#!/bin/sh
case $1 in
    resume|thaw)
        exec /etc/pm/hda-fix &
;;
esac

similarly, for when you unplug the power, drop a similar script in /etc/pm/power.d

#!/bin/sh
case $1 in
    true)
         exec /etc/pm/hda-fix &
;;
esac

for some reason the script is not executing well if you do it instantaneously; the crackling is activated after the scripts are running; therefore, u need a second script that is run and waits for the cracking to start before it executes. the & in the exec line in the scripts avoids the master script from blocking; this is the only way I found to accomplish the execution of the command after the cracking has started. I looked at the at command but it only handles minutes so this was my workaround

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.