luc*_*rot 5 sound drivers 18.04 19.04 20.04
我的 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)
Run Code Online (Sandbox Code Playgroud)
但是 aplay 没有找到
sudo aplay -l
[sudo] password for generic:
aplay: device_list:270: no soundcards found...
Run Code Online (Sandbox Code Playgroud)
$ 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"
Run Code Online (Sandbox Code Playgroud)
我在 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-用户名 -ralsa-base alsa-firmware-loaders alsa-oss alsa-source alsa-tools alsa-tools-gui alsa-utils alsamixergui
将用户添加generic到组audio
以上三者结合
上述的变体
linuxuprising 帖子中的两个修复程序
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
Run Code Online (Sandbox Code Playgroud)
可能无关,可能相关:
我的屏幕亮度控制也消失了。它们以前被破坏过一次,我通过添加acpi_backlight=video到GRUB_CMDLINE_LINUX_DEFAULTin/etc/default/grub并更新 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
Run Code Online (Sandbox Code Playgroud)
(在非实时系统上)/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实时 USB 记忆棒相同的旧内核版本启动时,它也不起作用。
git diff --no-index apt_live.txt apt_tank.txt其中文件包含各自的输出apt list --installed给了我太多的输出。许多版本号已更改。
根据消息来源,我已经添加了标签,19.04并且20.04回想起来,因为修复也适用于这些标签。
我的第一次尝试是这个答案,它修复了声音但破坏了亮度控制。
后来我注意到与不同的 grub 引导加载程序菜单结合的奇怪行为,并开始写一个新问题。在编写该问题时,我进行了更多测试,直到它更像是一篇博客文章而不是一个问题,因为它还包含隐含问题的几个答案。
您会发现它位于水平线下方。
删除nomodeset并acpi_backlight=video为我解决了这个问题。声音和亮度控制现在可以工作 -可能会以休眠为代价。
许多开源驱动程序已删除对非内核模式设置的支持,因此在这些情况下,当您使用 nomodeset 时,您最终将退回到非常基本的 VESA 非加速驱动程序。这在性能和功能上都是非常成功的。 来源质量保证
这是对最初提出的问题的新视角:在 Ubuntu 18.04 上未检测到声卡。它变得更加奇怪了。但为了让你理解我的彻底困惑,你需要一些借口:
我有三个分区,每个分区都有 ubuntu 18.04。最后,我会摆脱他们两个,但他们是EXT 4,,ZFS unencrypted。ZFS encrypted每个都有不同的背景,以便我知道我登录的是哪个。
我还在两个地方安装了grub。可能是因为我没有为EXT4系统设置单独的启动分区。所以我/dev/nvme0n1p8/boot也有/dev/nvme0n1p5 (boot partition)。两者都包含内核和 initrd 5.3.0-51-generic。包含p5也5.3.0-53-generic和p8/boot包含也53.0-28-generic和一些旧的4-15-0-101-generic。但是,我什至不确定这些启动分区是否重要。
为了区分这两种 grub,我在 .grub 上的 grub 上添加了一个主题p5。
当我启动笔记本电脑时,它会引导到p5. 它在正确列出多个 zfs 分区方面存在一些问题,因此我创建了一个自定义条目,但这在这里也不重要。
要打开 grub GUI p8,我按Esc进入 grub 终端,然后输入
set prefix=(hd0,gpt8)
Run Code Online (Sandbox Code Playgroud)
当我从 grub on 启动时p5,亮度键和声音损坏。
当我从 grub 启动时p8,它们可以完美地工作。
我确保在这两个实例中使用相同的内核和系统。事实上,我已经尝试了几次,希望这可能是由于某些内核启动参数造成的。
该问题与三个 ubuntu 安装之一无关。我可以启动它们中的任何一个,以便声音起作用或不起作用,具体取决于我使用的 grub。
该问题并不局限于某一内核版本。我可以从这两个分区启动51并53进入任何分区,声音是否有效取决于我使用的 grub。
该问题不是由于同一版本的不同内核映像造成的。我可以从p8grub 启动,内核53位于p5分区上,并且声音可以工作。
现在我们只考虑简单的 ext4 分区。不过,加密的 zfs 分区的行为相同(以及我尚未检查的未加密的 zfs 分区)。
首先,我尝试了几种引导参数的组合,但我认为以下三个测试应该足以解决这个问题。
old带有 grub 的 ext4 菜单项p8,要么new1是带有 grub 的 ext4 菜单项p5。 kernel partition来设置的,以包含在以 开头的行之前,并以 为内核和 initrd 的路径前缀。
类似地,通过在内核和 initrd 路径中 插入和删除前缀来设置。8set root=(hd0,gpt8)linux/bootkernel partition5set root=(hd0,gpt5)/boot]kernel version, sound works?[都与相应内核引导参数的存在有关。这些参数至少在一个 grub 菜单项中设置,但正如您在表中看到的,如果没有这些参数,行为仍然相同。我也测试过 的存在是否quiet splash有任何影响,但似乎也没有任何影响。
为了绝对确定引导参数不会产生任何影响,我尝试直接从 grub 终端引导。
set prefix=(hd0,gpt8)/boot/grub
set root=(hd0,gpt5)
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
boot
Run Code Online (Sandbox Code Playgroud)
声音和亮度键以这种方式工作。
set prefix=(hd0,gpt5)/grub
set root=(hd0,gpt5)
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
boot
Run Code Online (Sandbox Code Playgroud)
声音和亮度键也可以这样工作!(此时出乎意料)
set prefix=(hd0,gpt8)/boot/grub
normal
# select menuentry and press E to edit it so that it looks as follows:
setparams 'Ubuntu'
set root=(hd0,gpt5)
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
# CTRL+X to boot that
Run Code Online (Sandbox Code Playgroud)
声音和亮度键也以这种方式工作。(预计从 grub 开始p8)。
set prefix=(hd0,gpt5)/grub
normal
# select menuentry and press E to edit it so that it looks as follows:
setparams 'Ubuntu'
set root=(hd0,gpt5)
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
# CTRL+X to boot that
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然以这种方式工作!(意外!)。现在,如果我不打开 grub 终端并直接编辑条目,则会出现相同的行为。所以这个命令并不涉及任何魔法normal。
另外,不写似乎也set root=(hd0,gpt5)可以。
当我运行在 grub GUI 中生成的条目时p5,亮度和声音不起作用。所以我现在将尝试从头开始构建该条目。(准备好大量打字)
setparams 'Ubuntu'
recordfail
load_video
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
setparams 'Ubuntu'
recordfail
load_video
insmod gzio
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
启动进入紧急模式并显示“无法挂载 /boot/efi”(文件系统类型错误、选项错误、/dev/nvme0n1p2 上的超级块错误...)
所以我再次删除gfxmode $linux_gfx_mode并继续:
setparams 'Ubuntu'
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
setparams 'Ubuntu'
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
我已重新插入gfxmode $linux_gfx_mode,它仍然可以正常启动,并且声音和亮度键仍然可以使用。
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8 ro nomodeset
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
并且屏幕亮度和声音不再起作用!
再次,没有nomodeset:
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8 ro
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8 ro acpi_backlight=video
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度键仍然有效。
值得注意的是,我一开始只acpi_backlight=video在那里,因为亮度键不起作用。我在nomodeset那里(目前看来是罪魁祸首),因为它修复了 hibernation。也许nomodeset损坏了我的亮度键和声音,然后我尝试使用修复acpi_backlight=video?
所以nomodeset再次包括:
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8 ro nomodeset acpi_backlight=video
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
声音和亮度现在不起作用,所以我不清楚为什么acpi_backlight=video上次的亮度修复对我有用。我在 5 月 9 日应用了它,nomodeset现在已经是 3 月了……也许我删除并重新添加了一段时间,但没有意识到它对亮度键的影响。
我宁愿有一个问题而不是有两个问题,所以这里再次删除nomodeset acpi_backlight=video并添加最后一个参数:
setparams 'Ubuntu'
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
else
search --no-floppy --fs-uuid --set=root 81e29369-ff69-4424-858c-3489283588d7
fi
linux /vmlinuz-5.3.0-53-generic root=/dev/nvme0n1p8 ro resume=UUID=1ba104f0-35be-42f7-bf71-65e43f6fbcc3
initrd /initrd.img-5.3.0-53-generic
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,声音和亮度再次发挥作用。我现在还没有测试过休眠。我认为由于联想最近更新了BIOS和固件,它要么可以工作,要么仍然不能像我的问题中那样工作。但这将是另一天的不同问题。
现在剩下的问题是:为什么它看起来像在旧的引导加载程序中工作?
好吧...事实证明,在我的大多数测试中都没有修改“nomodeset”。但在上表中您可以看到,声音不适用于p5引导加载程序,内核 51 来自p8、不带acpi_backlight和不带nomodeset。
我无法再重现这一点。也许我在做笔记时犯了一个错误。
| 归档时间: |
|
| 查看次数: |
2954 次 |
| 最近记录: |