在最近apt-get dist-upgrade的 12.10 中,我收到以下错误:
Setting up linux-headers-3.5.0-19-generic (3.5.0-19.30) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.5.0-19-generic /boot/vmlinuz-3.5.0-19-generic
Error! Could not locate dkms.conf file.
File: does not exist.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Dav*_*ser 36
这通常是由在其源子目录中/var/lib/dkms没有dkms.conf文件的模块引起的-dkms需要此文件,因此如果缺少它会报告错误,然后可能会错过编译一些有效模块。
要找到有问题的模块,请运行这个简短的脚本(感谢Lekensteyn):
for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done
Run Code Online (Sandbox Code Playgroud)
这将输出任何 dkms 模块目录;然后,您可以决定是卸载创建它们的包,还是手动安装或重命名它们,将它们移到其他地方或删除它们。
Gre*_*reg 33
我已经在内核升级上得到了一段时间,结果不是我的所有dkms驱动程序都在内核升级上得到更新。
首先,我能够通过重新配置用于dkms强制它们为当前内核重新编译的任何包来解决该问题- 例如,我的 AMD 视频驱动程序失败了(包 == fglrx):
sudo dpkg-reconfigure fglrx
Run Code Online (Sandbox Code Playgroud)
这至少可以为当前版本配置驱动程序。
最后我发现了这个错误,其中包括一些可以用来诊断的步骤:https : //bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915
dkms status
ls -R /var/lib/dkms
Run Code Online (Sandbox Code Playgroud)
基本上,他们正在做的是四处寻找任何令人惊讶或意外的东西——例如你已经卸载的包——或者你在早期的 ubuntu 版本上手动安装的软件,并且可能无法与较新的版本一起使用。特别是检查目录上的日期戳,这可能会向您显示特别旧的软件包可能来自手动安装的软件包。
ls -l /var/lib/dkms
Run Code Online (Sandbox Code Playgroud)
就我而言,我有一个旧版本的fglrx安装,我一年前用来诊断一些问题,只是简单地重新命名了它。删除这个旧的 cruft 使问题消失了。
如果有垃圾删除它(或将其移出该目录) - 如果那里有手动安装的软件包,请考虑更新它,或卸载它并使用维护的版本。
小智 16
我在 Oracle 的 ppa 中使用 VirtualBox 遇到了这个问题,而不是使用 12.04 LTS 打包的问题:
Error! Could not locate dkms.conf file.
File: does not exist.
Run Code Online (Sandbox Code Playgroud)
我将/var/lib/dkms的内容复制到另一个目录作为备份,然后删除/var/lib/dkms中的vboxhost目录;
mkdir ~/backup_dkms
cp -r /var/lib/dkms/* ~/backup_dkms
rm -rf /var/lib/dkms/vboxhost
Run Code Online (Sandbox Code Playgroud)
然后我像这样重新配置了 virtualbox 包:
sudo dpkg-reconfigure virtualbox-4.2
Run Code Online (Sandbox Code Playgroud)
它成功地做到了这一点:
* Trying to register the VirtualBox kernel modules using DKMS
Run Code Online (Sandbox Code Playgroud)
小智 13
我也被这个问题困扰了很长时间。每次内核更新和重新启动后,我都需要重新安装 NVIDIA 驱动程序。最近,我开始研究这个问题。其实,我的问题是,有具有相同前缀的多个模块文件夹nvidia-下/usr/src/和多个文件夹下有不同的版本号/var/lib/dkms/nvidia。删除旧版本后,以下两个命令
dkms status
dkms autoinstall
Run Code Online (Sandbox Code Playgroud)
工作。
| 归档时间: |
|
| 查看次数: |
48960 次 |
| 最近记录: |