众所周知,宏碁Swift 3,以及一般使用Realtek 256音箱的设备,对扬声器、耳机和内部麦克风都有问题。
不过,我是来找你帮忙的,也许,我想找个解决办法。
我和我的一个朋友有一台笔记本电脑:在他的笔记本上的扬声器,耳机,特别是内部麦克风工作!唯一的问题是,当耳机插入时,必须手动选择耳机输出,而不是扬声器输出。
在我的笔记本电脑中,情况完全不同:最初我只有‘虚拟输出’作为输出设备,而空白作为输入设备。然后,添加了options snd-hda-intel model = generic
和options snd-hda-intel dmic_detected = 0
,我终于能够看到Seaker,耳机和内部麦克风,但没有工作。只有从蓝牙设备我可以听到声音,但内部扬声器,千斤顶耳机和内部麦克风不工作!当然,我用alsamixer
、pavucontrol
或hdajackretask
尝试了很多东西,至少可以让演讲者工作,但没有成功。
我们都在运行Ubuntu 20。
我不是Linux专家,但我尝试搜索这两种设备的不同之处。我发现了pacmd list-cards
输出和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:
发布于 2021-12-15 00:25:11
确保安装了声音开放固件包(Debian/Ubuntu上的firmware-sof-signed
)。
如果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
更改应在下一次重新启动时生效。在更多有关HD-音频驱动程序的注释中有许多来自内核文档和博士的很好的故障排除信息。
另外,您可以尝试禁用Fast / Fast,以确保在Linux启动之前正确地重置音频硬件。
https://askubuntu.com/questions/1372326
复制相似问题