Audio buzzing on 4.14.9-1


#1

After having issues with AMDGPU causing flickering on a 1440 display, I updated my kernel to the LTS 14.14. Now, I’m experiencing an audio feedback or buzzing sound. I also tried the 4.15.r kernel which has the same problem.

To explain this a little better, my audio always buzzes during system POST right up until the kernel starts loading (My speaker system is not the best). This is the same during a winbloze boot. My previous kernel, 4.9.72-1, filtered this feedback and gave me silence. The newer kernel has a constant buzz unless there is some kind of audio being played. For example if I hit the volume up/down key the system sound will play, stopping the buzz, but after about 10 seconds it will return.

Is there anything I can do to fix this issue, other than downgrading the kernel?

My audio chipset is built into the motherboard, an ASUS M4A78LT-LE.


[Testing Update x32] 2018-01-04 - Kernels, Desktop settings, TLP
[Stable Update x32] 2018-01-06 - Kernels, keyring, TLP, Desktop settings
#2

What is the output of hwinfo --sound in a terminal?


#3
15: PCI 100.1: 0403 Audio device                                
  [Created at pci.378]
  Unique ID: NXNs.aNJaqGBCo+1
  Parent ID: _Znp.+eZipJdga28
  SysFS ID: /devices/pci0000:00/0000:00:02.0/0000:01:00.1
  SysFS BusID: 0000:01:00.1
  Hardware Class: sound
  Model: "ATI Audio device"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0xaaf0 
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0xaaf0 
  Driver: "snd_hda_intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xfebf8000-0xfebfbfff (rw,non-prefetchable)
  IRQ: 27 (556 events)
  Module Alias: "pci:v00001002d0000AAF0sv00001043sd0000AAF0bc04sc03i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #18 (PCI bridge)

16: PCI 14.2: 0403 Audio device
  [Created at pci.378]
  Unique ID: 5Dex.ttnamF32fgC
  SysFS ID: /devices/pci0000:00/0000:00:14.2
  SysFS BusID: 0000:00:14.2
  Hardware Class: sound
  Model: "ATI SBx00 Azalia (Intel HDA)"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0x4383 "SBx00 Azalia (Intel HDA)"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x8445 
  Driver: "snd_hda_intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xfeaf4000-0xfeaf7fff (rw,non-prefetchable)
  IRQ: 16 (41805 events)
  Module Alias: "pci:v00001002d00004383sv00001043sd00008445bc04sc03i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

This is the output while using the 4.9 kernel. Do you also need me to run it on the newer?


#4

OK, you might need to tell Linux the exact codec your card is using. To get it you can try this:

phil@manjaro ~ $ grep Codec /proc/asound/card0/codec#0
Codec: Nvidia GPU 42 HDMI/DP
phil@manjaro ~ $ grep Codec /proc/asound/card1/codec#0
Codec: Realtek ALC892

based on the documentation I don’t need to add a special model to my config in modprobe. However you might:

==============================
HD-Audio Codec-Specific Models
==============================

ALC880
======
3stack
    3-jack in back and a headphone out
3stack-digout
    3-jack in back, a HP out and a SPDIF out
5stack
    5-jack in back, 2-jack in front
5stack-digout
    5-jack in back, 2-jack in front, a SPDIF out
6stack
    6-jack in back, 2-jack in front
6stack-digout
    6-jack with a SPDIF out
6stack-automute
    6-jack with headphone jack detection

ALC260
======
gpio1
    Enable GPIO1
coef
    Enable EAPD via COEF table
fujitsu
    Quirk for FSC S7020
fujitsu-jwse
    Quirk for FSC S7020 with jack modes and HP mic support

ALC262
======
inv-dmic
    Inverted internal mic workaround

ALC267/268
==========
inv-dmic
    Inverted internal mic workaround
hp-eapd
    Disable HP EAPD on NID 0x15

ALC22x/23x/25x/269/27x/28x/29x (and vendor-specific ALC3xxx models)
===================================================================
laptop-amic
    Laptops with analog-mic input
laptop-dmic
    Laptops with digital-mic input
alc269-dmic
    Enable ALC269(VA) digital mic workaround
alc271-dmic
    Enable ALC271X digital mic workaround
inv-dmic
    Inverted internal mic workaround
headset-mic
    Indicates a combined headset (headphone+mic) jack
headset-mode
    More comprehensive headset support for ALC269 & co
headset-mode-no-hp-mic
    Headset mode support without headphone mic
lenovo-dock
    Enables docking station I/O for some Lenovos
hp-gpio-led
    GPIO LED support on HP laptops
hp-dock-gpio-mic1-led
    HP dock with mic LED support
dell-headset-multi
    Headset jack, which can also be used as mic-in
dell-headset-dock
    Headset jack (without mic-in), and also dock I/O
alc283-dac-wcaps
    Fixups for Chromebook with ALC283
alc283-sense-combo
    Combo jack sensing on ALC283
tpt440-dock
    Pin configs for Lenovo Thinkpad Dock support
tpt440
    Lenovo Thinkpad T440s setup
tpt460
    Lenovo Thinkpad T460/560 setup
dual-codecs
    Lenovo laptops with dual codecs

ALC66x/67x/892
==============
mario
    Chromebook mario model fixup
asus-mode1
    ASUS
asus-mode2
    ASUS
asus-mode3
    ASUS
asus-mode4
    ASUS
asus-mode5
    ASUS
asus-mode6
    ASUS
asus-mode7
    ASUS
asus-mode8
    ASUS
inv-dmic
    Inverted internal mic workaround
dell-headset-multi
    Headset jack, which can also be used as mic-in
dual-codecs
    Lenovo laptops with dual codecs

ALC680
======
N/A

ALC88x/898/1150
======================
acer-aspire-4930g
    Acer Aspire 4930G/5930G/6530G/6930G/7730G
acer-aspire-8930g
    Acer Aspire 8330G/6935G
acer-aspire
    Acer Aspire others
inv-dmic
    Inverted internal mic workaround
no-primary-hp
    VAIO Z/VGC-LN51JGB workaround (for fixed speaker DAC)
dual-codecs
    ALC1220 dual codecs for Gaming mobos

ALC861/660
==========
N/A

ALC861VD/660VD
==============
N/A

CMI9880
=======
minimal
    3-jack in back
min_fp
    3-jack in back, 2-jack in front
full
    6-jack in back, 2-jack in front
full_dig
    6-jack in back, 2-jack in front, SPDIF I/O
allout
    5-jack in back, 2-jack in front, SPDIF out
auto
    auto-config reading BIOS (default)

AD1882 / AD1882A
================
3stack
    3-stack mode
3stack-automute
    3-stack with automute front HP (default)
6stack
    6-stack mode

AD1884A / AD1883 / AD1984A / AD1984B
====================================
desktop	3-stack desktop (default)
laptop	laptop with HP jack sensing
mobile	mobile devices with HP jack sensing
thinkpad	Lenovo Thinkpad X300
touchsmart	HP Touchsmart

AD1884
======
N/A

AD1981
======
basic		3-jack (default)
hp		HP nx6320
thinkpad	Lenovo Thinkpad T60/X60/Z60
toshiba	Toshiba U205

AD1983
======
N/A

AD1984
======
basic		default configuration
thinkpad	Lenovo Thinkpad T61/X61
dell_desktop	Dell T3400

AD1986A
=======
3stack
    3-stack, shared surrounds
laptop
    2-channel only (FSC V2060, Samsung M50)
laptop-imic
    2-channel with built-in mic
eapd
    Turn on EAPD constantly

AD1988/AD1988B/AD1989A/AD1989B
==============================
6stack
    6-jack
6stack-dig
    ditto with SPDIF
3stack
    3-jack
3stack-dig
    ditto with SPDIF
laptop
    3-jack with hp-jack automute
laptop-dig
    ditto with SPDIF
auto
    auto-config reading BIOS (default)

Conexant 5045
=============
cap-mix-amp
    Fix max input level on mixer widget
toshiba-p105
    Toshiba P105 quirk
hp-530
    HP 530 quirk

Conexant 5047
=============
cap-mix-amp
    Fix max input level on mixer widget

Conexant 5051
=============
lenovo-x200
    Lenovo X200 quirk

Conexant 5066
=============
stereo-dmic
    Workaround for inverted stereo digital mic
gpio1
    Enable GPIO1 pin
headphone-mic-pin
    Enable headphone mic NID 0x18 without detection
tp410
    Thinkpad T400 & co quirks
thinkpad
    Thinkpad mute/mic LED quirk
lemote-a1004
    Lemote A1004 quirk
lemote-a1205
    Lemote A1205 quirk
olpc-xo
    OLPC XO quirk
mute-led-eapd
    Mute LED control via EAPD
hp-dock
    HP dock support
mute-led-gpio
    Mute LED control via GPIO

STAC9200
========
ref
    Reference board
oqo
    OQO Model 2
dell-d21
    Dell (unknown)
dell-d22
    Dell (unknown)
dell-d23
    Dell (unknown)
dell-m21
    Dell Inspiron 630m, Dell Inspiron 640m
dell-m22
    Dell Latitude D620, Dell Latitude D820
dell-m23
    Dell XPS M1710, Dell Precision M90
dell-m24
    Dell Latitude 120L
dell-m25
    Dell Inspiron E1505n
dell-m26
    Dell Inspiron 1501
dell-m27
    Dell Inspiron E1705/9400
gateway-m4
    Gateway laptops with EAPD control
gateway-m4-2
    Gateway laptops with EAPD control
panasonic
    Panasonic CF-74
auto
    BIOS setup (default)

STAC9205/9254
=============
ref
    Reference board
dell-m42
    Dell (unknown)
dell-m43
    Dell Precision
dell-m44
    Dell Inspiron
eapd
    Keep EAPD on (e.g. Gateway T1616)
auto
    BIOS setup (default)

STAC9220/9221
=============
ref
    Reference board
3stack
    D945 3stack
5stack
    D945 5stack + SPDIF
intel-mac-v1
    Intel Mac Type 1
intel-mac-v2
    Intel Mac Type 2
intel-mac-v3
    Intel Mac Type 3
intel-mac-v4
    Intel Mac Type 4
intel-mac-v5
    Intel Mac Type 5
intel-mac-auto
    Intel Mac (detect type according to subsystem id)
macmini
    Intel Mac Mini (equivalent with type 3)
macbook
    Intel Mac Book (eq. type 5)
macbook-pro-v1
    Intel Mac Book Pro 1st generation (eq. type 3)
macbook-pro
    Intel Mac Book Pro 2nd generation (eq. type 3)
imac-intel
    Intel iMac (eq. type 2)
imac-intel-20
    Intel iMac (newer version) (eq. type 3)
ecs202
    ECS/PC chips
dell-d81
    Dell (unknown)
dell-d82
    Dell (unknown)
dell-m81
    Dell (unknown)
dell-m82
    Dell XPS M1210
auto
    BIOS setup (default)

STAC9202/9250/9251
==================
ref
    Reference board, base config
m1
    Some Gateway MX series laptops (NX560XL)
m1-2
    Some Gateway MX series laptops (MX6453)
m2
    Some Gateway MX series laptops (M255)
m2-2
    Some Gateway MX series laptops
m3
    Some Gateway MX series laptops
m5
    Some Gateway MX series laptops (MP6954)
m6
    Some Gateway NX series laptops
auto
    BIOS setup (default)

STAC9227/9228/9229/927x
=======================
ref
    Reference board
ref-no-jd
    Reference board without HP/Mic jack detection
3stack
    D965 3stack
5stack
    D965 5stack + SPDIF
5stack-no-fp
    D965 5stack without front panel
dell-3stack
    Dell Dimension E520
dell-bios
    Fixes with Dell BIOS setup
dell-bios-amic
    Fixes with Dell BIOS setup including analog mic
volknob
    Fixes with volume-knob widget 0x24
auto
    BIOS setup (default)

STAC92HD71B*
============
ref
    Reference board
dell-m4-1
    Dell desktops
dell-m4-2
    Dell desktops
dell-m4-3
    Dell desktops
hp-m4
    HP mini 1000
hp-dv5
    HP dv series
hp-hdx
    HP HDX series
hp-dv4-1222nr
    HP dv4-1222nr (with LED support)
auto
    BIOS setup (default)

STAC92HD73*
===========
ref
    Reference board
no-jd
    BIOS setup but without jack-detection
intel
    Intel DG45* mobos
dell-m6-amic
    Dell desktops/laptops with analog mics
dell-m6-dmic
    Dell desktops/laptops with digital mics
dell-m6
    Dell desktops/laptops with both type of mics
dell-eq
    Dell desktops/laptops
alienware
    Alienware M17x
asus-mobo
    Pin configs for ASUS mobo with 5.1/SPDIF out
auto
    BIOS setup (default)

STAC92HD83*
===========
ref
    Reference board
mic-ref
    Reference board with power management for ports
dell-s14
    Dell laptop
dell-vostro-3500
    Dell Vostro 3500 laptop
hp-dv7-4000
    HP dv-7 4000
hp_cNB11_intquad
    HP CNB models with 4 speakers
hp-zephyr
    HP Zephyr
hp-led
    HP with broken BIOS for mute LED
hp-inv-led
    HP with broken BIOS for inverted mute LED
hp-mic-led
    HP with mic-mute LED
headset-jack
    Dell Latitude with a 4-pin headset jack
hp-envy-bass
    Pin fixup for HP Envy bass speaker (NID 0x0f)
hp-envy-ts-bass
    Pin fixup for HP Envy TS bass speaker (NID 0x10)
hp-bnb13-eq
    Hardware equalizer setup for HP laptops
hp-envy-ts-bass
    HP Envy TS bass support
auto
    BIOS setup (default)

STAC92HD95
==========
hp-led
    LED support for HP laptops
hp-bass
    Bass HPF setup for HP Spectre 13

STAC9872
========
vaio
    VAIO laptop without SPDIF
auto
    BIOS setup (default)

Cirrus Logic CS4206/4207
========================
mbp53
    MacBook Pro 5,3
mbp55
    MacBook Pro 5,5
imac27
    IMac 27 Inch
imac27_122
    iMac 12,2
apple
    Generic Apple quirk
mbp101
    MacBookPro 10,1
mbp81
    MacBookPro 8,1
mba42
    MacBookAir 4,2
auto
    BIOS setup (default)

Cirrus Logic CS4208
===================
mba6
    MacBook Air 6,1 and 6,2
gpio0
    Enable GPIO 0 amp
mbp11
    MacBookPro 11,2
macmini
    MacMini 7,1
auto
    BIOS setup (default)

VIA VT17xx/VT18xx/VT20xx
========================
auto
    BIOS setup (default)

HOWTO

  • select one of the models that corresponds to your laptop, and add the following into /etc/modprobe.d/intel-hda-sound.conf (create the file if it does not exist): options snd-hda-intel model=$MODEL

  • replace $MODEL with the model you selected from HD-Audio-Models.txt that matches your laptop and is under the section for your codec

  • then modprobe -r snd_hda_intel ; modprobe snd_hda_intel

  • you might have to try more than one model before it works correctly


#5

This command seems to fail with (also tried the -f flag):

modprobe: FATAL: Module snd_hda_intel is in use.

The output of lsmod | grep snd:

snd_hda_codec_realtek   102400  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     57344  1
snd_hda_intel          45056  4
snd_hda_codec         151552  4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core           90112  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               114688  4 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi
snd_timer              36864  1 snd_pcm
snd                    90112  16 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek,snd_pcm
soundcore              16384  1 snd

#6

Google to the rescue. sudo rmmod -f snd_hda_intel unloaded the module. Adding options snd-hda-intel model=3stack-digout to /etc/modprobe.d/intel-hda-sound.conf has fixed the buzzing. Though it was listed under ALC880, whereas my chipset is the ALC887-VD.

I spoke too soon, the buzzing reappears after a reboot and after wake from sleep.

Thanks for the help.


#7

Seems this static noise is known to the chip. Either you try to mute your MIC or you might want to do the workaround by unloading the module and reloading it. You can use systemd to do that automatically for you. Simply modify my services for setting the second hdd to IDLE on the Spitfire.


#8

The problem seems to be the power_save parameter of the snd_hda_intel module. According to /sys/module/snd_hda_intel/parameters/power_save it has a default value of 1. Changing it to 0 stops the buzzing. But I cannot figure out how to set the value permanently.

According to the kernel module wiki I can configure a modprobe.d file or use a kernel parameter. Needless to say, I’ve tried both and neither work. The default value is always 1 after a fresh boot and changes to 1 after wake from sleep. Either I’ve not configured it in the right place or something else is changing the setting.

Any ideas on where else I can look?

Thinking about it, given the fact that reloading that module fixes the sound, something else MUST be setting the value. Confirmed by systool -v -m snd_hda_intel before and after reloading.


#9

What about in /etc/default/tlp ?

# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving.
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1

#10

They already have these settings. Besides, this is a desktop not a laptop, so battery specific settings should have no influence.


#11

You can use systemd to pass a cmd during startup to set it automatically to 0. You can do some similar as I did for idling my harddrive.


#12

I understand that. But, I’d rather find the cause of the problem rather than just hide it.

I can’t confirm it yet, but I think this a bug within TLP. I didn’t notice it earlier but on the 4.14 kernel, TLP is starting up in battery mode. TLP also ignores any kernel/.conf parameters (perhaps this should be added to the wiki alongside the note for pm-utils). I have a desktop PC, there is no battery mode, however I do have a wireless keyboard and mouse which may be causing the confusion. For now, I’ve set SOUND_POWER_SAVE_ON_BAT=0 in the tlp config and filed a bug report.


#13

So with this the buzz is gone? Also on a Desktop System?


#14

@jonathon: any regressions added with our new defaults?


#15

TLP still starts up in battery mode, but with that setting the buzz is gone.

I have a feeling a driver change between 4.9 and 4.14, and they way TLP queries the drivers, may be at fault here. The TLP defaults are exactly the same for both kernels.


#16

Nope. The three changes do not enable more power saving, quite the opposite.


#17

@twifty: since you’re the only one reported the issue ever, I doubt is is wide spread. The defaults for TLP are:

# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving.
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1 

However, I still don’t get why now the BAT option is used on desktops …


#18

This sounds like a hardware issue.


#19

I also doubt there are many people using my combination of hardware and kernel. Like I said, my keyboard and mouse are wireless battery powered. These are the only batteries associated with and reported by my system. They use a Logitech unifying receiver with which I had driver issues on Ubuntu last year. Under Manjaro, on the 4.9 kernel, TLP would always run in AC mode, since my upgrade to 4.14 however, it has started using the battery profile. This must be a communication problem between the kernel/driver and TLP. Nothing on my system has changed other than the kernel and it’s associated files.


#20

When my sound card has no power, electrical interference causes a the speakers to buzz. It’s probably my cheap set of speakers and amp with poorly insulated wires. I have known about the buzz during POST for a long time. As soon as the OS, any OS, loads its drivers and supplies power to the card the buzzing stops.

While yes, it’s a hardware issue, a correct driver fixes the issue.