`错误!找不到dkms.conf文件`


42

在最近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.

有任何想法吗?


我知道这是一个错误的答案,但我总是会遇到该错误,并且一切正常。我猜dkms只是使用默认设置。
MiJyn

Answers:


28

我已经在内核升级上使用了一段时间了,结果并不是我的所有dkms驱动程序都在内核升级上进行了更新。

首先,我能够通过重新配置用于dkms强制将其重新编译为当前内核的任何程序包来解决该问题-例如,正是我的AMD视频驱动程序失败了(程序包== fglrx):

sudo dpkg-reconfigure fglrx

至少将为当前版本配置驱动程序。

最后,我发现了此错误,其中包括一些可用于诊断的步骤:https : //bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

基本上,他们正在做的事情是寻找令人惊讶或意外的事物-例如,已卸载的软件包-或在较早版本的ubuntu上手动安装且可能无法在较新版本上使用的软件。尤其要检查目录上的日期戳,这可能会显示特别旧的软件包可能来自手动安装的软件包。

ls -l /var/lib/dkms

就我而言,我有一个旧版本的fglrx安装程序,一年前我曾用它来诊断一些问题,并只是将其重命名。删除这个旧的碎片会使问题消失。

如果有垃圾,请将其删除(或将其移出该目录)-如果那里有手动安装的软件包,请考虑对其进行更新,或将其卸载并使用维护的版本。


谢谢你,我遇到的问题是nvidia-340司机...
ionreflex

1
我也遇到过同样的问题anbox
亚伦·科菲尔德

28

这通常是由模块引起的,这些模块的源子目录中/var/lib/dkms没有dkms.conf文件- dkms需要此文件,因此如果缺少该文件,则会报告错误,然后可能会错过编译某些有效模块的机会。

要查找有问题的模块,请运行以下简短脚本(感谢Lekensteyn):

for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done

这将输出任何dkms模块目录;然后,您可以决定是卸载创建它们的软件包,还是手动安装或重命名它们,将它们移至其他位置或删除它们。


3
完善。其他答案可能适用于特定实例,但这很快就说明了问题出在哪里(这实际上不是问题,因为某些软件将旧安装复制到/var/lib/dkms/*.old目录中)。
Auspex

如果nvidia是违规者,例如/var/lib/dkms/nvidia/396.24/source输出,请检查其中是否已有较新的版本/var/lib/dkms/nvidia并删除违规者。
Flatron '18

14

我在Oracle的ppa中使用VirtualBox遇到了这个问题,而不是12.04 LTS打包的问题:

Error! Could not locate dkms.conf file.
File:  does not exist.

我将/ var / lib / dkms的内容复制到另一个目录作为备份,然后删除了/ var / lib / dkms中的vboxhost目录。

mkdir ~/backup_dkms
cp -r /var/lib/dkms/* ~/backup_dkms 
rm -rf /var/lib/dkms/vboxhost

然后,我重新配置virtualbox软件包,如下所示:

sudo dpkg-reconfigure virtualbox-4.2

它成功做到了:

   * Trying to register the VirtualBox kernel modules using DKMS

1
刚刚sudo dpkg-reconfigure virtualbox-4.2完成工作。谢谢
谢尔盖2014年

11

我也长期遭受这个问题困扰。每次内核更新并重新启动后,我都需要重新安装NVIDIA驱动程序。最近,我开始研究这个问题。实际上,我的问题是nvidia-在下有多个具有相同前缀的模块文件夹,在下有/usr/src/多个具有不同版本号的文件夹/var/lib/dkms/nvidia。删除旧版本后,以下两个命令

    dkms status
    dkms autoinstall

工作了。


它对我有用,但是我必须做,apt-get install --reinstall dkms并且dkms autoinstall在使用您的方法之后……然后安装nvidia驱动程序……
Milor123

只有此解决方案有所帮助-确保与sudo一起运行
Aryeh Beitz

0

曾经在Nvidia驱动程序的Red Hat 7.5工作站上发生过这种情况。我知道这不是Ubuntu,但这可能会对某人有所帮助...

从dkms中删除Nvidia文件,然后重新安装dkms:

rm -rf /var/lib/dkms/nvidia
yum reinstall dkms

然后重新安装Nvidia驱动程序

./NVIDIA-installer.bin --dkms
reboot

警告,这对我有用,但可能不是正确的处理方式。


它适用于RedHat,而不适用于Ubuntu!
索伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.