fix(framework): prevent sound issue of external mic detected for headphones
This commit is contained in:
@@ -81,6 +81,27 @@
|
|||||||
#media-session.enable = true;
|
#media-session.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Fix: IDT 92HD95 codec routes capture to external mic jack when headphones
|
||||||
|
# are plugged in, even if the jack has no mic. Force internal mic routing.
|
||||||
|
# See Node 0x14 (Audio Selector) connection index 3 = Node 0x0e (Internal Mic).
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
ACTION=="change", SUBSYSTEM=="sound", KERNEL=="card0", \
|
||||||
|
RUN+="${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x14 SET_CONNECT_SEL 3", \
|
||||||
|
RUN+="${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x0e SET_POWER_STATE 0"
|
||||||
|
'';
|
||||||
|
systemd.services.fix-internal-mic = {
|
||||||
|
description = "Force internal mic on IDT 92HD95 (Framework Laptop)";
|
||||||
|
after = [ "sound.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.writeShellScript "fix-internal-mic" ''
|
||||||
|
${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x14 SET_CONNECT_SEL 3
|
||||||
|
${pkgs.alsa-tools}/bin/hda-verb /dev/snd/hwC0D0 0x0e SET_POWER_STATE 0
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user