Constant noise from speakers?
-
Hello! I got one of these laptops and must say I love it but I do have one issue: I am getting constant noise coming from speakers when any app is making sound (even if the sound is turned to 0) as in the attached recording, I tried messing around with pipewire, alsa and wireplumber but couldn't fix it, it happens on every distro, is this a hardware issue?
Have to mention that the noise stops soon after I stop the sound and starts again when I play any sound.
-
@Ranomez
Can you confirm if your machine is V10 or V20 version? When did you probably purchase the machine? -
@george it is a V20 but it may have been upgraded before sending cause there was a pretty long delay from my order till it was sent and there were missing screws.
The order was placed sometime in March, I think 28 but can't be 100% sure because a friend placed the order since I wasn't sure I'd be in the city at the time the order would arrive. -
@Ranomez
If you can open the back cover of the machine, please take a photo and send it out, I will confirm the version. -
@george I already did that to put in my SSD, here's the photo:
-
@Ranomez
This machine is the latest version of V20, and I have understood the issue you have reported:- This noise is the bottom noise of the audio codec that is amplified by the power amplifier and output. In fact, the native bottom noise is very small, which can be confirmed by inserting headphones. It's only after being amplified by the amplifier that you can hear it near the ear at the speaker end.
- To avoid this common problem, the traditional approach is to only turn on the amplifier circuit when there is audio output, and then turn off the amplifier after the audio is played. This way, the normal sound output will cover the background noise, as shown in the driver code below:
static int es8316_mute(struct snd_soc_dai *dai, int mute, int direction) { struct snd_soc_component *component = dai->component; struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316->muted = mute; if (mute) { es8316_enable_spk(es8316, false); msleep(100); snd_soc_component_write(component, ES8316_DAC_SET1_REG30, 0x20); } else { snd_soc_component_write(component, ES8316_DAC_SET1_REG30, 0x00); msleep(130); if (!es8316->hp_inserted) es8316_enable_spk(es8316, true); } return 0; }
- Your current operating method is to only turn on the amplifier without normal audio data output, which is equivalent to the amplifier only amplifying background noise data. So what the speaker hears is the amplified background noise. The current situation I have tested here is that the ear needs to be close to the speaker to hear, which cannot be heard in normal usage scenarios.
- Later, we will try to adjust the gain configuration of the amplifier at the driver end, hoping to reduce the amplitude of this noise, but it is unrealistic to completely eliminate it.