我的 ThinkPad Yoga X1 上的声音不久前还可以工作。我不确定发生了什么变化,但现在它不再起作用了。它仍然可以在 ubuntu 18.04 的并行安装上继续工作一段时间(是的,我安装了两次相同的发行版)。它仍然适用于 Windows 10 的并行安装。
当我按下键盘上的音量按钮时,它会改变“虚拟输出”设备的音量。
lspci
列出音频设备:
$ lspci | grep -A8 Audio
00:1f.3 Audio device: Intel Corporation Device 9dc8 (rev 11)
00:1f.4 SMBus: Intel Corporation Device 9da3 (rev 11)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 9da4 (rev 11)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-LM (rev 11)
03:00.0 Non-Volatile memory controller: Micron/Crucial Technology Device 2263 (rev 03)
05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
但是aplay没有找到
sudo aplay -l
[sudo] password for generic:
aplay: device_list:270: no soundcards found...
$ 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: 46332 / 71% / -9.04 dB, front-right: 46332 / 71% / -9.04 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: 14
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
我在 root 上运行带有 ZFS 的 ubuntu 18.04。这意味着我可以尝试一个解决方案并在它不起作用时回滚。这意味着我尝试了几种解决方案。
没有帮助的相关链接:
我尝试了什么:
sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils && reboot
sudo apt-get install build-essential linux-headers-
unname -ralsa-base alsa-firmware-loaders alsa-oss alsa-source alsa-tools alsa-tools-gui alsa-utils alsamixergui
将用户添加
generic
到组audio
以上三者结合
上述的变体
linuxupprising 帖子中的两个修复程序
modprobe snd_hda_intel && modprobe sof_pci_dev
添加
snd_hda_intel.dmic_detect=0
到 GRUB 引导参数按照此处
ppa:nilarimogard/webupd8
的建议安装软件包集合使用 dkms 重新安装 alsa 相关的软件包。看这里
重新安装
pavucontrol
并pulseaudio
按照此QA
我的系统是
$ uname -r
5.3.0-51-generic
可能不相关,可能相关:
我的屏幕亮度控件也消失了。它们之前曾被破坏过一次,我通过添加并更新 grub 并重新启动acpi_backlight=video
来修复它。但是该修复程序仍然存在,并且仍然再次被破坏。GRUB_CMDLINE_LINUX_DEFAULT
/etc/default/grub
我怎样才能让声音再次正常工作?
当我启动 ubuntu 18.04 的 live 棒时,声音确实再次起作用。
# live system version:
$ uname -a
Linux ubuntu 5.3.0-28-generic #30-18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# aplay output on live system:
ubuntu@ubuntu:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC285 Analog [ALC285 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
(在非实时系统上)/var/log/apt/term.log
和/var/log/apt/history.log
和用 ./var/log/dpkg.log
查看时都是空的sudo vim <filepath>
。但是有一个history.log.1.gz
包含所有历史记录的文件。我正在审查它,但我不知道要注意什么。
我已经启动了我目前在笔记本电脑上的最旧的 zfs 快照(不是非常老,因为当时我遇到了 zfs 的并发症)并且声音在那里也不起作用。5.3.0-28
当我使用与 live USB 记忆棒相同的旧内核版本启动时,它也不起作用。
git diff --no-index apt_live.txt apt_tank.txt
文件包含各自输出的地方apt list --installed
给了我太多的输出。许多版本号已更改。
根据消息来源,我已经添加了标签19.04并20.04回想起来,因为修复也适用于这些标签。
这个答案修复了声音,但打破了亮度控制。
我将它留在这里用于文档目的
,希望稍后当我找到更好的修复程序时能够查看它。请考虑这个后续答案!
我之前已经尝试过,但没有成功。在我不仅做了上述操作而且还按照亚当的建议重新启动后运行
pulseaudio --start
之后,它现在已经第二次工作了。请注意,这可能需要几秒钟,直到声音开始起作用。
因为可能只有亚当的建议很重要,所以我
options snd-hda-intel dmic_detect=0
再次删除了线路并重新启动。它再次停止工作。所以我再次编辑它并再次重新启动。而这一次声音不需要运行就可以工作pulseaudio --start
。我不明白,但这似乎是解决办法。如果事实证明我
pulseaudio --start
每次启动时都需要运行,我只需将该命令添加到 my.profile
or.bashrc
. 尽管在重新启动几次以测试这一点后,我很确定您实际上并不需要pulseaudio --start
- 只需在启动后等待一段时间即可。大约一分钟。关于我问题的“可能相关”部分
在我注意到音量键现在正在工作并发出声音之后,我立即按下了亮度键。他们不再工作。我将尝试在此答案中引用的一篇文章中链接到的修复程序,并在我知道它是否有效后编辑我的答案。
关于启动后直到声音起作用的延迟:也许这与它有关。
我的第一次尝试是这个答案,它修复了声音但打破了亮度控制。
后来我注意到与我不同的 grub 引导加载程序菜单相结合的奇怪行为,并开始写一个新问题。在写这个问题时,我进行了更多的测试,直到它更像是一篇博文而不是一个问题,因为它还包含对隐含问题的几个答案。
您会在水平线下方找到它。
TL;博士
删除
nomodeset
并acpi_backlight=video
为我做了诀窍。声音和亮度控制现在可以工作了——可能会以休眠为代价。测试这个的长篇文章
这是对最初提出的问题的新观点Sound card not detected on Ubuntu 18.04。它变得更加奇怪了。但是为了让你理解我完全的困惑,你需要一些借口:
我有三个分区,每个分区都有 ubuntu 18.04。最后,我将摆脱其中两个,但它们是
EXT 4
,,,。每个人都有不同的背景,所以我知道我登录到哪个。ZFS unencrypted
ZFS encrypted
我还在两个地方安装了 grub。可能是因为我没有为EXT4系统设置单独的引导分区。所以我
/dev/nvme0n1p8/boot
也有/dev/nvme0n1p5 (boot partition)
。两者都包含内核和 initrd5.3.0-51-generic
。p5
包含也5.3.0-53-generic
和p8/boot
包含也53.0-28-generic
和一些旧的4-15-0-101-generic
。但是,我什至不确定这些引导分区是否重要。为了区分这两个 grub,我在
p5
.当我启动笔记本电脑时,它会在
p5
. 它在正确列出多个 zfs 分区方面存在一些问题,因此我创建了一个自定义条目,但这在这里也不重要。要打开 grub GUI
p8
,我按Esc进入 grub 终端,然后输入当我从 grub on 启动时
p5
,亮度键和声音都坏了。当我从 grub on 启动时
p8
,它们可以完美地工作。我确保在两个实例中都使用相同的内核和系统。事实上,我已经尝试了好几次,希望这可能是由于一些内核启动参数。
该问题与三个 ubuntu 安装之一无关。我可以启动它们中的任何一个,以使声音正常工作,而不能正常工作,具体取决于我使用的 grub。
问题不限于一个内核版本。我可以从两者启动
51
并53
进入任何分区,声音是否有效,取决于我使用的 grub。问题不是由于相同版本的不同内核映像造成的。我可以使用位于分区 上
p8
的内核从 grub启动,并且声音可以正常工作。53
p5
测试
我们现在只考虑简单的 ext4 分区。加密的 zfs 分区的行为相同(以及我尚未检查的未加密的 zfs 分区)。
首先,我尝试了几种引导参数的组合,但我认为以下三个测试对于这个问题应该足够了。
old
用于带有 grub on 的 ext4-menuentry,要么用于带有 grub onp8
的new1
ext4-menuentryp5
。kernel partition
包含在以. 类似地,通过在内核和 initrd 路径中 插入和删除前缀来设置。8
set root=(hd0,gpt8)
linux
/boot
kernel partition
5
set root=(hd0,gpt5)
/boot
]kernel version, sound works?[
都是关于相应内核引导参数的存在。这些是至少在一个 grub 菜单项中设置的参数,但正如您在表中看到的那样,没有这些参数的行为保持不变。我也测试了存在是否
quiet splash
有任何影响,但它似乎也没有任何影响。为了绝对确定引导参数没有任何影响,我尝试直接从 grub 终端引导。
声音和亮度键以这种方式工作。
声音和亮度键也可以以这种方式工作!(此时出乎意料)
声音和亮度键也以这种方式工作。(预计从 grub 开始
p8
)。声音和亮度键仍然以这种方式工作!(意外!)。现在,如果我不打开 grub 终端并直接编辑条目,则行为相同。所以这个
normal
命令并不涉及什么魔法。另外,不写
set root=(hd0,gpt5)
似乎很好。当我运行在 grub GUI 中生成的条目时
p5
,亮度和声音不起作用。因此,我现在将尝试从头开始构建该条目。(准备大量打字)声音和亮度键仍然有效。
声音和亮度键仍然有效。
以“无法挂载 /boot/efi”引导进入紧急模式(错误的 fs 类型、错误的选项、错误的超级块在 /dev/nvme0n1p2 ...)
所以我
gfxmode $linux_gfx_mode
再次删除并继续:声音和亮度键仍然有效。
声音和亮度键仍然有效。
我已经再次插入
gfxmode $linux_gfx_mode
,它仍然可以正常启动,并且声音和亮度键仍然有效。并且屏幕亮度和声音不再起作用!
同样,没有
nomodeset
:声音和亮度键仍然有效。
声音和亮度键仍然有效。
值得注意的是,我一开始只有
acpi_backlight=video
那里,因为亮度键不起作用。我有nomodeset
(目前似乎是罪魁祸首)在那里,因为它修复了 hibernation。也许nomodeset
打破了我的亮度键和声音,然后我尝试使用它来修复acpi_backlight=video
?所以
nomodeset
再次包括:声音和亮度现在不起作用,所以我不清楚为什么亮度修复
acpi_backlight=video
上次对我有用。我在 5 月 9 日应用它并且nomodeset
已经在 3 月......也许我删除并重新添加了一段时间并且没有意识到它对亮度键的影响。我宁愿遇到一个问题而不是遇到两个问题,所以这里再次删除
nomodeset acpi_backlight=video
并添加最后一个参数:正如预期的那样,声音和亮度再次起作用。我现在还没有测试过休眠。我认为它要么由于联想最近的 bios 和固件更新而工作,要么仍然不能以与我的问题相同的方式工作。但这将是一个不同的问题。
现在剩下的问题是:为什么它似乎在旧的引导加载程序中工作?
嗯......事实证明,在我的大多数测试中都没有修改“nomodeset”。但在上表中您可以看到,声音不适用于
p5
引导加载程序、内核 51 来自p8
、没有acpi_backlight
和没有nomodeset
。我再也无法重现了。也许我在做笔记时犯了一个错误。