安装新内核时 DKMS 卡住了,我该怎么办?

安装新内核时 DKMS 卡住了,我该怎么办?

我使用的是 Linux Mint 18.1 Cinnamon 64 位。

DKMS 在安装新内核时似乎卡住了 30 分钟,我该怎么办?

终止 DKMS 进程?然后跑dpkg --configure -a

这是mintupdate日志:

(Reading database ... 317520 files and directories currently installed.)
Preparing to unpack .../adobe-flashplugin_1%3a20170110.1-0ubuntu0.16.04.1_amd64.deb ...
Unpacking adobe-flashplugin (1:20170110.1-0ubuntu0.16.04.1) over (1:20161213.1-0ubuntu0.16.04.1) ...
Preparing to unpack .../libwebkit2gtk-4.0-37_2.14.2-0ubuntu0.16.04.1_amd64.deb ...
Unpacking libwebkit2gtk-4.0-37:amd64 (2.14.2-0ubuntu0.16.04.1) over (2.12.5-0ubuntu0.16.04.1) ...
Preparing to unpack .../libjavascriptcoregtk-4.0-18_2.14.2-0ubuntu0.16.04.1_amd64.deb ...
Unpacking libjavascriptcoregtk-4.0-18:amd64 (2.14.2-0ubuntu0.16.04.1) over (2.12.5-0ubuntu0.16.04.1) ...
Preparing to unpack .../gir1.2-webkit2-4.0_2.14.2-0ubuntu0.16.04.1_amd64.deb ...
Unpacking gir1.2-webkit2-4.0:amd64 (2.14.2-0ubuntu0.16.04.1) over (2.12.5-0ubuntu0.16.04.1) ...
Preparing to unpack .../gir1.2-javascriptcoregtk-4.0_2.14.2-0ubuntu0.16.04.1_amd64.deb ...
Unpacking gir1.2-javascriptcoregtk-4.0:amd64 (2.14.2-0ubuntu0.16.04.1) over (2.12.5-0ubuntu0.16.04.1) ...
Selecting previously unselected package linux-headers-4.4.0-59.
Preparing to unpack .../linux-headers-4.4.0-59_4.4.0-59.80_all.deb ...
Unpacking linux-headers-4.4.0-59 (4.4.0-59.80) ...
Selecting previously unselected package linux-headers-4.4.0-59-generic.
Preparing to unpack .../linux-headers-4.4.0-59-generic_4.4.0-59.80_amd64.deb ...
Unpacking linux-headers-4.4.0-59-generic (4.4.0-59.80) ...
Selecting previously unselected package linux-image-4.4.0-59-generic.
Preparing to unpack .../linux-image-4.4.0-59-generic_4.4.0-59.80_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-59-generic /boot/vmlinuz-4.4.0-59-generic
Done.
Unpacking linux-image-4.4.0-59-generic (4.4.0-59.80) ...
Selecting previously unselected package linux-image-extra-4.4.0-59-generic.
Preparing to unpack .../linux-image-extra-4.4.0-59-generic_4.4.0-59.80_amd64.deb ...
Unpacking linux-image-extra-4.4.0-59-generic (4.4.0-59.80) ...
Preparing to unpack .../linux-libc-dev_4.4.0-59.80_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.4.0-59.80) over (4.4.0-57.78) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Processing triggers for mintsystem (8.3.0) ...
Processing triggers for libc-bin (2.23-0ubuntu5) ...
Setting up adobe-flashplugin (1:20170110.1-0ubuntu0.16.04.1) ...
update-alternatives: using /usr/lib/adobe-flashplugin/libflashplayer.so to provide /usr/lib/mozilla/plugins/flashplugin-alternative.so (mozilla-flashplugin) in auto mode
Setting up libjavascriptcoregtk-4.0-18:amd64 (2.14.2-0ubuntu0.16.04.1) ...
Setting up libwebkit2gtk-4.0-37:amd64 (2.14.2-0ubuntu0.16.04.1) ...
Setting up gir1.2-javascriptcoregtk-4.0:amd64 (2.14.2-0ubuntu0.16.04.1) ...
Setting up gir1.2-webkit2-4.0:amd64 (2.14.2-0ubuntu0.16.04.1) ...
Setting up linux-headers-4.4.0-59 (4.4.0-59.80) ...
Setting up linux-headers-4.4.0-59-generic (4.4.0-59.80) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 4.4.0-59-generic /boot/vmlinuz-4.4.0-59-generic

以下是dkms流程:

ps aux | grep dkms

root     13671  0.0  0.0  10124  2268 pts/1    S+   11:54   0:00 /bin/sh /usr/lib/dkms/dkms_autoinstaller start 4.4.0-59-generic
root     13677  0.0  0.0  18540  5840 pts/1    S+   11:54   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 4.4.0-59-generic
root     16419  0.0  0.0  18580  5636 pts/1    S+   11:55   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 4.4.0-59-generic
root     16807  0.0  0.0  18600  4956 pts/1    S+   11:55   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 4.4.0-59-generic
root     16813  0.0  0.0  10124  1904 pts/1    S+   11:55   0:00 /bin/sh -c make "CC=cc"  KBUILD_VERBOSE= -C /lib/modules/4.4.0-59-generic/build M=/var/lib/dkms/nvidia-375/375.26/build ARCH=x86_64 NV_KERNEL_SOURCES=/lib/modules/4.4.0-59-generic/build NV_KERNEL_OUTPUT=/lib/modules/4.4.0-59-generic/build NV_KERNEL_MODULES="nvidia nvidia-uvm nvidia-modeset nvidia-drm" INSTALL_MOD_DIR=kernel/drivers/video modules
root     16814  0.0  0.0  14296  3828 pts/1    S+   11:55   0:00 make CC=cc KBUILD_VERBOSE= -C /lib/modules/4.4.0-59-generic/build M=/var/lib/dkms/nvidia-375/375.26/build ARCH=x86_64 NV_KERNEL_SOURCES=/lib/modules/4.4.0-59-generic/build NV_KERNEL_OUTPUT=/lib/modules/4.4.0-59-generic/build NV_KERNEL_MODULES=nvidia nvidia-uvm nvidia-modeset nvidia-drm INSTALL_MOD_DIR=kernel/drivers/video modules
root     17124  0.0  0.0  15272  4776 pts/1    S+   11:55   0:00 make -f ./scripts/Makefile.build obj=/var/lib/dkms/nvidia-375/375.26/build
vlastim+ 17701  0.0  0.0  15720  2132 pts/2    S+   12:08   0:00 grep --color=auto dkms

我注意到这可能是由 Nvidia 驱动程序引起的,但驱动程序和内核在今天的更新之前都可以完美地协同工作。

如何恢复此更新?

编辑1:

uname -r

目前是:

4.4.0-57-generic

的结果:

ls -la /lib/modules/`uname -r`/updates

目前是:

drwxr-xr-x 2 root root   4096 Dec 20 21:42 .
drwxr-xr-x 7 root root   4096 Jan  5 05:23 ..
-rw-r--r-- 1 root root 482872 Dec 20 21:42 ndiswrapper.ko

编辑2

的结果:

ls -la /var/lib/dkms

目前是:

drwxr-xr-x  5 root root 4096 Jan  5 05:22 .
drwxr-xr-x 96 root root 4096 Jan  6 06:38 ..
drwxr-xr-x  3 root root 4096 Jan 11 13:51 bbswitch
-rw-r--r--  1 root root    6 Jul  8  2008 dkms_dbversion
drwxr-xr-x  3 root root 4096 Jan 11 13:52 ndiswrapper
drwxr-xr-x  3 root root 4096 Jan  5 05:23 nvidia-375

1.:这是一台笔记本电脑

2.:wifi卡可用但目前未使用

答案1

  1. 首先,您需要摆脱所有这些 DKMS 进程:

    ps aux | grep dkms
    

    这将向您显示正在运行的 DKMS 相关进程。

  2. 不要鲁莽地杀死那些进程,你需要识别这个进程或所有这样的进程:

    make -f ./scripts/Makefile.build obj=/var/lib/dkms/nvidia-375/375.26/build
    

    原因是如果你杀死这个进程:

    /bin/bash /usr/sbin/dkms autoinstall --kernelver 4.4.0-59-generic
    

    您将拥有比以前更多的 DKMS 进程,它们将自动重生。

  3. 一旦确定了需要删除的进程 ID,请谨慎行事,让我们先尝试软杀,甚至更软杀,在本示例中,我使用 17124 进程 ID:

    sudo kill -HUP 17124
    

    如果没有帮助,请尝试:

    sudo kill -TERM 17124
    

    如果这不能杀死它,你最终可以使用:

    sudo kill -KILL 17124
    
  4. 现在您需要删除锁定文件:

    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    
  5. 如果您可以接受,您可以删除 Nvidia 驱动程序:

    sudo apt-get remove nvidia-375
    
  6. 现在完成被中断的系统更新:

    sudo dpkg --configure -a
    
    sudo apt-get install --fix-broken
    
  7. 运行 Mint 的更新程序:

    sudo mintupdate
    
  8. 打开菜单“查看”->“Linux 内核”。

    删除不正确安装的内核。

    您可以关闭内核窗口。

  9. 如果一切顺利,您可以重新启动:

    sudo reboot
    

答案2

根据您的评论,我了解您希望在很短的时间内解决此问题。最好的选择可能是不安装最新的内核,或者回滚到旧的情况。请参阅此处的答案,它是关于 Debian 的,但也应该适用于 Mint: 如果出现问题,我可以回滚 apt-get 升级吗?

您遇到的情况在商业 Nvidia 驱动程序中经常发生。如果您使用最新的内核之一(例如 Mint),通常需要几周时间才能将 Nvidia 驱动程序更新为最新。

作为替代方案:您是否尝试过 Nouveau 开源驱动程序?这些在 3D 和特殊功能方面表现不佳,但对于正常的 Office 使用,它们工作得很好: https://nouveau.freedesktop.org/wiki/

我没有安装 Mint,所以我希望有人知道一个好技巧让你可以正常工作。祝你好运!

答案3

我经历了更新挂在同一个地方。就我而言,我只需要等待。等了好久,终于还是继续更新了。 DKMS 重新编译驱动程序,软件编译可能需要很长时间。

我确实注意到/boot空间越来越少,这可能会减慢速度。整体看来更新确实很慢。

相关内容