也许可以解决 Acer Swift 3 [Realtek ALC256] 的声音问题?

也许可以解决 Acer Swift 3 [Realtek ALC256] 的声音问题?

据悉,Acer Swift 3 以及一般使用 Realtek ALC 256 声卡的设备在扬声器、耳机和内置麦克风方面存在问题。

但我来这里是想向您寻求一些帮助,也许能找到解决方案。

我和我朋友有这款笔记本电脑:他的笔记本电脑上的扬声器、耳机,特别是内置麦克风都可以使用!唯一的问题是,当插入耳机时,必须手动选择耳机输出,而不是扬声器输出。

在我的笔记本电脑上,情况完全不同:最初,我只有“虚拟输出”作为输出设备,空白处作为输入设备。然后,添加options snd-hda-intel model = genericoptions snd-hda-intel dmic_detected = 0最终能够看到 Seaker、耳机和内置麦克风,但什么都不起作用。只有通过蓝牙设备我才能听到声音,但内置扬声器、插孔耳机和内置麦克风不起作用!当然,我尝试了很多方法alsamixerpavucontrol或者hdajackretask至少让扬声器工作,但都没有成功。

我们俩都在运行 Ubuntu 20。

pacmd list-cards我不是 Linux 专家,但我尝试搜索这两个设备之间的区别。我发现输出和 Alsamixer 中存在差异。N

在工作装置上输出的pacmd list-cards

    index: 0
    name: <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic>
    driver: <module-alsa-card.c>
    owner module: 23
    properties:
        alsa.card = "0"
        alsa.card_name = "sof-hda-dsp"
        alsa.long_card_name = "sof-hda-dsp"
        alsa.driver_name = "snd_soc_skl_hda_dsp"
        device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
        sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "9dc8"
        device.product.name = "Cannon Point-LP High Definition Audio Controller"
        device.string = "0"
        device.description = "Cannon Point-LP High Definition Audio Controller"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        HiFi: Play HiFi quality Music (priority 40768, available: unknown)
        off: Spento (priority 0, available: unknown)
    active profile: <HiFi>
    sinks:
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink/#1: Cannon Point-LP High Definition Audio Controller HDMI3/DP3 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink/#2: Cannon Point-LP High Definition Audio Controller HDMI2/DP2 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink/#3: Cannon Point-LP High Definition Audio Controller HDMI1/DP1 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink/#4: Cannon Point-LP High Definition Audio Controller Speaker + Headphones
    sources:
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink.monitor/#1: Monitor of Cannon Point-LP High Definition Audio Controller HDMI3/DP3 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink.monitor/#2: Monitor of Cannon Point-LP High Definition Audio Controller HDMI2/DP2 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink.monitor/#3: Monitor of Cannon Point-LP High Definition Audio Controller HDMI1/DP1 Output
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink.monitor/#4: Monitor of Cannon Point-LP High Definition Audio Controller Speaker + Headphones
        alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source/#5: Cannon Point-LP High Definition Audio Controller Headphones Stereo Microphone
        alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source/#6: Cannon Point-LP High Definition Audio Controller Digital Microphone
    ports:
        [Out] HDMI3: HDMI3/DP3 Output (priority 700, latency offset 0 usec, available: no)
            properties:
                
        [Out] HDMI2: HDMI2/DP2 Output (priority 600, latency offset 0 usec, available: no)
            properties:
                
        [Out] HDMI1: HDMI1/DP1 Output (priority 500, latency offset 0 usec, available: no)
            properties:
                
        [Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: unknown)
            properties:
                
        [Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: unknown)
            properties:
                
        [In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown)
            properties:
                
        [In] Mic1: Digital Microphone (priority 100, latency offset 0 usec, available: unknown)
            properties:

而在不工作的设备上,输出如下:

    index: 0
    name: <alsa_card.pci-0000_00_1f.3>
    driver: <module-alsa-card.c>
    owner module: 23
    properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xb1128000 irq 129"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1f.3"
        sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "9d71"
        device.product.name = "Sunrise Point-LP HD Audio"
        device.form_factor = "internal"
        device.string = "0"
        device.description = "Built-in Audio"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        input:analog-stereo: Analog Stereo Input (priority 32833, available: unknown)
        output:analog-stereo: Analog Stereo Output (priority 39268, available: unknown)
        output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 39333, available: unknown)
        output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 38668, available: unknown)
        output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (priority 38733, available: unknown)
        off: Off (priority 0, available: unknown)
    active profile: <output:analog-stereo+input:analog-stereo>
    sinks:
        alsa_output.pci-0000_00_1f.3.analog-stereo/#1: Built-in Audio Analog Stereo
    sources:
        alsa_output.pci-0000_00_1f.3.analog-stereo.monitor/#1: Monitor of Built-in Audio Analog Stereo
        alsa_input.pci-0000_00_1f.3.analog-stereo/#2: Built-in Audio Analog Stereo
    ports:
        analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
            properties:
                
        analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
            properties:
                device.icon_name = "audio-speakers"
        analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-headphones"
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: unknown)
            properties:
                device.icon_name = "video-display"

此外,在工作设备上,alsamixer看起来像 这,而在不工作的设备上这个

那么,现在的问题是:你们中有人知道问题是什么以及如何解决它吗?我怎样才能使不工作的设备具有与工作设备相同的设置?我发现它们有不同的声卡设置和固件。

如果您需要任何其他输出,我将立即编辑此帖子!

编辑:我给你两个命令的输出:cat /proc/asound/modulesdmesg | grep snd

1a.cat /proc/asound/modules在工作装置上给出0 snd_soc_skl_hda_dsp

1b.cat /proc/asound/modules在不工作的设备上给出0 snd_hda_intel

2a.dmesg | grep snd在工作装置上返回

[    3.423610] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    3.423636] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    3.699005] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC256: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[    3.699008] snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    3.699010] snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[    3.699011] snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
[    3.699012] snd_hda_codec_realtek ehdaudio0D0:    inputs:
[    3.699013] snd_hda_codec_realtek ehdaudio0D0:      Headset Mic=0x19
[    3.758163] snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
[    3.758170] snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten

2b. 在不工作的设备上dmesg | grep snd给出

[    5.489834] snd_hda_intel 0000:00:1f.3: dmic_detect option is deprecated, pass snd-intel-dspcfg.dsp_driver=1 option instead
[    5.490101] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.541621] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC256: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[    5.541642] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    5.541645] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[    5.541647] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[    5.541649] snd_hda_codec_realtek hdaudioC0D0:    inputs:

答案1

确保已安装 Sound Open Firmware 包(firmware-sof-signed在 Debian/Ubuntu 上)。

如果 Linux 仍然坚持使用后备驱动程序 ( snd_hda_intel) 而不是 SOF 驱动程序 ( snd_soc_skl_hda_dsp),您可以通过在 中创建一个文件来请求后者/etc/modprobe.d,例如/etc/modprobe.d/alsa.conf,其内容如下:

options snd-intel-dspcfg dsp_driver=3

如果由于某种原因这不起作用,你可以更明确地说明:

blacklist snd-hda-intel
options snd slots=snd_soc_skl_hda_dsp

更改应在下次重启时生效。有关高清音频驱动程序的更多说明来自内核文档以及SOF 文档

另外,您可以尝试禁用快速启动/快速 BIOS,以确保在 Linux 启动之前正确重置音频硬件。

相关内容