XPS13 fix headphone hissing
Bei Cosima hat letztenendes folgendes geklappt:
[Element Headphone Mic Boost] required-any = any switch = select # Replace "volume = merge" by: volume = 1 override-map.1 = all override-map.2 = all-left,all-right
[Element Headphone Mic Boost] switch = off # Replace "volume = off" by: volume = 1
Aus dem Arch Wiki
Continuous hissing sound with headphones
Open alsamixer and set „Headphone Mic Boost“ gain to 10 dB (See discussion on reddit). Note that this does reduce the volume slightly.
You may also run the equivalent command:
$ amixer -c PCH cset 'name=Headphone Mic Boost Volume' 1
PulseAudio will rewrite these ALSA settings on each boot. So if you use PulseAudio you may change its config to make the setting permanent:
[Element Headphone Mic Boost] required-any = any switch = select # Replace „volume = merge“ by: volume = 1 override-map.1 = all override-map.2 = all-left,all-right
[Element Headphone Mic Boost] switch = off # Replace „volume = off“ by: volume = 1
This change will be overwritten by an upgrade of PulseAudio though. To make these changes persistent across upgrades you can use a pacman hook:
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = pulseaudio
[Action] Description = Set default Headphone Mic Boost volume to 1… When = PostTransaction Exec = /usr/bin/sed -i '/\[Element Headphone Mic Boost\]/,/^$/s/volume = .*/volume = 1/' /usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf /usr/share/pulseaudio/alsa-mixer/paths/analog-input-headphone-mic.conf
Alternatively, you can avoid these changes to files under /usr by calling amixer at startup. The first solution would be to add the command above to the profile of your shell (~/.bash_profile in case of bash). Or you set up a systemd user service that is pulled in by PulseAudio:
[Unit] Description=Disable hissing sound with headphones After=pulseaudio.service PartOf=pulseaudio.service
[Service] Type=oneshot ExecStart=amixer -c PCH cset 'name=Headphone Mic Boost Volume' 1
Enable the unit with systemctl –user enable headphones_hissing.service.
To give these benefits to the other users on your system, you can set this globally, i.e. call amixer in /etc/profile and put the systemd unit in /etc/systemd/user/headphones_hissing.service and enable it globally by using the –global option respectively.