据悉,Acer Swift 3 以及一般使用 Realtek ALC 256 声卡的设备在扬声器、耳机和内置麦克风方面存在问题。
但我来这里是想向您寻求一些帮助,也许能找到解决方案。
我和我朋友有这款笔记本电脑:他的笔记本电脑上的扬声器、耳机,特别是内置麦克风都可以使用!唯一的问题是,当插入耳机时,必须手动选择耳机输出,而不是扬声器输出。
在我的笔记本电脑上,情况完全不同:最初,我只有“虚拟输出”作为输出设备,空白处作为输入设备。然后,添加options snd-hda-intel model = generic
并options snd-hda-intel dmic_detected = 0
最终能够看到 Seaker、耳机和内置麦克风,但什么都不起作用。只有通过蓝牙设备我才能听到声音,但内置扬声器、插孔耳机和内置麦克风不起作用!当然,我尝试了很多方法alsamixer
,pavucontrol
或者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/modules
和dmesg | 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 启动之前正确重置音频硬件。