`오류! dkms.conf 파일을 찾을 수 없습니다


42

최근 apt-get dist-upgrade12.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

답변:


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

기본적으로 그들이하고있는 일은 놀랍거나 예상치 못한 것들 (예 : 제거한 패키지) 또는 이전 우분투 버전에 수동으로 설치 한 소프트웨어를 찾고 새로운 버전에서는 작동하지 않을 수 있습니다. 특히 오래된 패키지가 수동으로 설치된 패키지 일 수 있음을 보여줄 수있는 디렉토리의 날짜-스탬프를 확인하십시오.

ls -l /var/lib/dkms

필자의 경우 1 fglrx년 전에 일부 문제를 진단하는 데 사용했던 이전 버전의 설치가 있었고 단순히 이름을 바꿨습니다. 이 오래된 균열을 삭제하면 문제가 해결되었습니다.

정크가 있으면 삭제하거나 해당 디렉토리 밖으로 이동하십시오. 패키지를 수동으로 설치 한 경우 패키지를 업데이트하거나 제거하고 유지 관리 버전을 사용하십시오.


이 문제에 대해 감사합니다. 제가 nvidia-340운전자 와 함께했던 문제는 ...
ionreflex

1
나는 같은 문제가 있었다anbox
Aaron Cofield

28

이는 일반적으로 소스 서브 디렉토리에 파일 /var/lib/dkms이없는 모듈에 의해 발생합니다. 이 파일을 예상하므로 누락 된 경우 오류를보고 한 다음 일부 유효한 모듈을 컴파일 할 때 누락 될 수 있습니다.dkms.confdkms

문제가있는 모듈을 찾으려면 다음 짧은 스크립트를 실행하십시오 ( 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

14

12.04 LTS로 패키지 된 것이 아니라 Oracle ppa의 VirtualBox 에서이 문제가 발생했습니다.

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일을 했어요 감사합니다
Sergey

11

나는 또한이 문제로 오랫동안 고통 받고있었습니다. 커널 업데이트 후 다시 시작할 때마다 NVIDIA 드라이버를 다시 설치해야합니다. 최근 에이 문제를 조사하기 시작했습니다. 실제로, 내 문제는 nvidia-아래에 같은 접두사가있는 여러 모듈 폴더가 있고 아래에 /usr/src/버전 번호가 다른 여러 폴더 가 있다는 것 /var/lib/dkms/nvidia입니다. 이전 버전을 제거한 후 다음 명령 모두

    dkms status
    dkms autoinstall

일했다.


그것은 나를 위해 작동하지만 난 당신의 방법을 사용 apt-get install --reinstall dkms하고 dkms autoinstall난 후에 ... 그리고 엔비디아 드라이버를 설치해야했습니다 ...
Milor123

이 솔루션 만 도움이되었습니다
-sudo

0

이것은 Nvidia 드라이버가있는 Red Hat 7.5 Workstation에서 한 번 나에게 일어났습니다. 우분투가 아니라는 것을 알고 있지만 이것은 누군가를 도울 수 있습니다 ...

dkm에서 Nvidia 파일을 제거한 다음 dkm을 다시 설치하십시오.

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

그런 다음 Nvidia 드라이버를 다시 설치하십시오.

./NVIDIA-installer.bin --dkms
reboot

경고, 이것은 나를 위해 일했지만 올바른 일을하지 않을 수 있습니다.


그리고 그것은 우분투가 아닌 RedHat에서 당신을 위해 일했습니다!
Soren A
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.