如何修复 Ubuntu 18.04 上没有声音?
Posted
技术标签:
【中文标题】如何修复 Ubuntu 18.04 上没有声音?【英文标题】:How to fix No sound on Ubuntu 18.04? 【发布时间】:2020-05-06 19:08:42 【问题描述】:1) 几个月来,我一直在使用带有 Windows 10 双启动的 Ubuntu 18.04。今天突然我的声音停止在 Ubunutu 上工作。活动 -> 声音菜单仅显示“虚拟输出”。不过在 Windows 上一切正常。
2) lsmod 的输出是:
rohit@rohitUb18043LTS:~$ lsmod | grep snd_
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event
snd_rawmidi 36864 1 snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_soc_dmic 16384 0
snd_hda_codec_realtek 118784 0
snd_hda_codec_generic 81920 1 snd_hda_codec_realtek
ledtrig_audio 16384 2 snd_hda_codec_generic,snd_hda_codec_realtek
snd_soc_hdac_hdmi 32768 0
snd_sof_intel_hda_common 73728 1 sof_pci_dev
snd_soc_hdac_hda 24576 1 snd_sof_intel_hda_common
snd_sof_intel_hda 20480 1 snd_sof_intel_hda_common
snd_sof_intel_byt 24576 1 sof_pci_dev
snd_sof_intel_ipc 20480 1 snd_sof_intel_byt
snd_sof 98304 4 snd_sof_intel_hda_common,snd_sof_intel_byt,snd_sof_intel_ipc,sof_pci_dev
snd_sof_xtensa_dsp 16384 1 sof_pci_dev
snd_hda_ext_core 28672 4 snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_soc_acpi_intel_match 32768 2 snd_sof_intel_hda_common,sof_pci_dev
snd_soc_acpi 16384 2 snd_soc_acpi_intel_match,sof_pci_dev
snd_soc_core 237568 5 snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_dmic
snd_compress 24576 1 snd_soc_core
ac97_bus 16384 1 snd_soc_core
snd_pcm_dmaengine 16384 1 snd_soc_core
snd_hda_codec_hdmi 57344 1
snd_hda_intel 53248 2
snd_intel_nhlt 20480 1 snd_hda_intel
snd_hda_codec 131072 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
snd_hda_core 90112 10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 102400 10 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd_timer 36864 2 snd_seq,snd_pcm
snd 86016 17 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
rohit@rohitUb18043LTS:~$
3) 我从软件更新程序安装了所有更新,但没有成功。
4) 使用没有改变:sudo alsa force-reload
5) 环顾四周,发现这个帖子:https://askubuntu.com/questions/1059619/sound-card-shown-as-dummy-output-in-ubuntu-18-04。用户说发现“活动配置文件已关闭”并链接到此论坛上的解决方案 (https://forums.linuxmint.com/viewtopic.php?t=268499)。我正在根据该链接粘贴四个命令的输出:
rohit@rohitUb18043LTS:~$ sudo fuser -v /dev/snd/*
[sudo] password for rohit:
USER PID ACCESS COMMAND
/dev/snd/controlC0: gdm 1505 F.... pulseaudio
rohit 1878 F.... pulseaudio
rohit@rohitUb18043LTS:~$ pacmd list-cards
1 card(s) available.
index: 0
name: <alsa_card.pci-0000_01_00.1>
driver: <module-alsa-card.c>
owner module: 7
properties:
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xb4000000 irq 17"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:01:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "0fb9"
device.product.name = "GP107GL High Definition Audio Controller"
device.string = "0"
device.description = "GP107GL High Definition Audio Controller"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5400, available: no)
output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 300, available: no)
output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 300, available: no)
off: Off (priority 0, available: unknown)
active profile: <off>
ports:
hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
rohit@rohitUb18043LTS:~$ pacmd list-sinks
1 sink(s) available.
* index: 0
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 0,00 ms
max request: 344 KiB
max rewind: 344 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0,00 ms; range is 0,50 .. 2000,00 ms
module: 15
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
rohit@rohitUb18043LTS:~$ pacmd list-sink-inputs
0 sink input(s) available.
rohit@rohitUb18043LTS:~$
6) 我尝试了建议的命令,但它显示“没有这样的配置文件”。
rohit@rohitUb18043LTS:~$ pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:analog-stereo+input:analog-stereo
No such profile: output:analog-stereo+input:analog-stereo
rohit@rohitUb18043LTS:~$
请帮忙 - 我该怎么做?
【问题讨论】:
更新:我还尝试了按照以下链接删除和重新加载驱动程序的步骤 - 请参阅 Roberto Gimenez 的回答:askubuntu.com/questions/1081748/no-sound-on-ubuntu-18-04。运气不好! 更新 2:还尝试了 pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo 并设置了配置文件。但是设置->声音显示为空白且没有用。为“输出:hdmi-surround”和“输出:hdmi-surround71”配置文件尝试了同样的事情。所以恢复为“关闭”配置文件。 更新 3:从未修复过。谢天谢地 20.04LTS 出来了,没有等待完整的 20.04.1 版本,我升级了,谢天谢地! 【参考方案1】:Ubuntu 18.04 上的“Dummy Sound”也存在类似问题,同样使用 NVIDIA 卡。这为我解决了这个问题:
-
以 root 身份编辑
/etc/modprobe.d/alsa-base.conf
并添加 options snd-hda-intel dmic_detect=0
以 root 身份编辑 /etc/modprobe.d/blacklist.conf
并在文件末尾添加 blacklist snd_soc_skl
。
进行这些更改后,重新启动系统。
更多详情(和学分):https://www.linuxuprising.com/2018/06/fix-no-sound-dummy-output-issue-in.html
【讨论】:
感谢您的建议。正如我在上面的更新中所评论的,我升级到了 20.04LTS,现在这个问题已经解决了。但是如果(希望不是!)需要,会回到这个。干杯。 更新:在 Ubuntu 20.04LTS 上也开始面临问题。遵循您的部分建议 - 仅添加了 dmic_detect 行,没有黑名单。它现在工作。非常感谢!【参考方案2】:我遇到了同样的问题,尝试了@maartenor给出的解决方案,但没有成功。
最终我通过将 linux 内核升级到最后一个 HWE stack 来恢复声音,对我来说是 4.15.0-106-generic 到 5.3.0-59-generic。
执行此操作的命令:
$ sudo apt install linux-generic-hwe-18.04
【讨论】:
【参考方案3】:编辑文件 /etc/modprobe.d/alsa-base.conf 并添加以下行:
选项 snd-hda-intel dmic_detect=0
选项 snd-hda-intel model=laptop-amic enable=yes
第一行是启用扬声器,第二行是启用内置麦克风。
祝你好运!
从 Reddit 得到这个答案。对我来说就像一个魅力!
链接:https://www.reddit.com/r/linuxmint/comments/fltlrl/no_sound_on_acer_swift_3_with_kernel_53/
【讨论】:
更新:在 Ubuntu 20.04LTS 上也开始面临问题。遵循您的建议,仅添加了第一行。它现在工作。非常感谢!【参考方案4】:试试这个..
-
打开你的终端
sudo apt update && sudo apt install alsamixer
在终端中运行 alsamixer。
按向右箭头,直到转到声音选项(如果耳机转到 HEADPHONES 栏)。
按 M 取消静音。
按上/下可调节音量。
按 Esc 退出 alsamixer。
【讨论】:
【参考方案5】:以下步骤非常可靠。它不会永久修复挂起后丢失音频的问题,而是立即作为从挂起返回后运行的命令。
使用 lspci 获取声卡位置 (0000:00:1f.3)。在我的机器上,
$ lspci
00:1f.0 ISA bridge: Intel Corporation H110 ...
00:1f.2 Memory controller: Intel ...
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset ...
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset ...
然后,(确保下面的目录存在)
$ echo 1 | sudo tee /sys/bus/pci/devices/0000:00:1f.3/remove
$ echo 1 | sudo tee /sys/bus/pci/rescan
我相信音频驱动程序/硬件卡住了。所以我们删除了设备驱动程序,然后重新扫描 PCI 总线以获取音频。
【讨论】:
【参考方案6】:我发现上面的答案在我的电脑上不起作用,我偶然解决了这个问题,这是我使用的脚本,与上面的答案大部分相同,但最后,你需要静音然后取消静音。如果您将脚本放入 sh 文件然后执行它,则在此处需要命令后休眠片刻,使用 sh -c 用于 root 的文件重定向
REST=0.5
#make sure Audio always actived
sudo sh -c 'echo 1 >/sys/bus/pci/rescan'
sleep $REST
DEVICE_ID=$(lspci -D | grep Audio | awk 'print $1')
sleep $REST
sudo sh -c 'echo 1 >/sys/bus/pci/devices/0000:00:1f.3/remove'
sleep $REST
sudo sh -c 'echo 1 >/sys/bus/pci/rescan'
sleep $REST
#mute then unmute to restart audio
amixer -D pulse sset Master mute
sleep $REST
amixer -D pulse sset Master unmute
【讨论】:
以上是关于如何修复 Ubuntu 18.04 上没有声音?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“视频播放但在带有 expo 的 iOS 上没有声音”
如何修复:device_list:270:找不到声卡(Ubuntu 服务器 18.04)?
部署到 Ubuntu 18.04 服务器后如何在 Laravel 中修复“未捕获的 ReflectionException:类视图不存在”