我刚刚从 20.04 升级,除了通用 VM 音频 snd_hda_intel 之外,一切似乎都正常。
我不断收到错误:
modprobe snd-hda-intel
# modprobe: FATAL: Module snd-hda-intel not found in directory /lib/modules/5.[*]-generic
我认为新内核(5.15..23)可能缺少该模块,因此我尝试了其他 4 个内核,加上通用内核和我的低延迟内核 - 5.4、5.13、5.14、5.17。第一个内核没有启动,但其他内核也出现了同样的错误。这肯定是配置问题。我唯一可能的线索是,当我尝试重新安装旧的工作内核(5.4.0-105-lowlatency)时,它显示 [残余配置]。我尝试了一些建议来更改配置文件,但模块实际上并不在它要找的地方,根本不在 ../sound 目录“/lib/modules/5.17.0-051700rc7-generic/kernel/sound/”中。根本没有“pci”目录。因此它没有被安装,尽管我认为它至少在我尝试的其中一个版本中存在。
还说dpkg -S snd-hda-intel
它在所有内核中找到了模块。它一定是在搜索软件包列表或 deb 文件内容,因为它不在磁盘上。
linux-modules-5.17.0-051700rc7-generic: /lib/modules/5.17.0-051700rc7-generic/kernel/sound/pci/hda/snd-hda-intel.ko
linux-modules-5.4.5-050405-lowlatency: /lib/modules/5.4.5-050405-lowlatency/kernel/sound/pci/hda/snd-hda-intel.ko
...
答案1
我取得了一些进展apt install --reinstall linux-modules-5.15.0-23-generic && apt install --reinstall linux-modules-extra-5.15.0-23-generic
。我很确定我试过了。是的,重启后它不会保持。所以也许……我不知道……
我也尝试过用这个删除标有 [residual-config] 的旧包apt-get remove --purge $(dpkg -l | grep '^rc' | awk '{print $2}')
,但是我可能只是在重新安装内核模块和附加程序后重新启动,而没有modprobe snd-hda-intel
加载模块,现在声音就可以正常工作了。
嗯,是什么原因导致重启后模块丢失。也许是黑名单?
https://unix.stackexchange.com/questions/405146/removed-lib-modules-folder-after-every-reboot
修复方法是添加snd_hda_intel
到 /etc/initramfs-tools/modules。我会提交错误报告。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1967593
实际上,我认为是删除了apt-get remove cloud-initramfs-copymods
安装在模块顶部的这个包。我的映像是在 cloud-init 服务器映像之上构建的,因此这可以解释为什么评论者说他的声音有效。
在新的图像副本上进行测试表明它是 cloud-initramfs-copymods 包(可能与 22.04 无关),只需要将其删除,重新启动一次,然后重新安装内核模块文件,就可以了modprobe snd_hda_intel
(低延迟版本不需要重新安装 modules-extras)。ufw
现在也可以了。