我用 Debian 设置了一个盒子:
# cat /etc/debian_version
9.13
# uname -a
Linux orange 4.9.0-15-amd64 #1 SMP Debian 4.9.258-1 (2021-03-08) x86_64 GNU/Linux
现在,我尝试安装 CUDA,但收到错误:
-> Performing PREEMPT_RT check.
ERROR: The PREEMPT_RT sanity check failed:
The kernel you are installing for is a PREEMPT_RT kernel!
The NVIDIA driver does not support real-time kernels. If you
are using a stock distribution kernel, please install
a variant of this kernel that does not have the PREEMPT_RT
patch set applied; if this is a custom kernel, please
install a standard Linux kernel. Then try installing the
NVIDIA kernel module again.
对于我读到的有关实时内核的内容,我不需要它们。所以,我的问题是:如何在我的 Debian 机器中安装非实时内核而不需要重新安装/格式化它?
该盒子是一个服务器,仅用于运行模拟(无图形界面),只能通过 SSH 访问。我们需要 CUDA 将一些模拟转移到 GPU。
答案1
这应该像使用一样简单apt search linux-image-*
。找到你想要的内核,然后安装它。
在撰写本文时,我在 Debian 测试中得到了以下信息:
$ apt search linux-image
linux-image-5.10.0-5-amd64/testing,now 5.10.24-1 amd64 [installed,automatic]
linux-image-5.10.0-5-cloud-amd64/testing 5.10.24-1 amd64
linux-image-5.10.0-5-rt-amd64/testing 5.10.24-1 amd64
linux-image-amd64/testing,now 5.10.24-1 amd64 [installed]
linux-image-cloud-amd64/testing 5.10.24-1 amd64
linux-image-rt-amd64/testing 5.10.24-1 amd64
您可能已经linux-image-rt-amd64
安装了。您需要的linux-image-amd64
是相同的东西,但没有 PREMPT_RT 补丁。 linux-image-amd64
是一个元包,它引入了当前版本的 linux(在本例中为linux-image-5.10.0-5-amd64
)
所以基本上,只需这样做:
sudo apt install linux-image-amd64 linux-headers-amd64
我认为 headers 包是nvidia-drivers
在配置过程中使用的,所以最好也获取它。接下来,当您重新启动时,您将有机会在 grub 菜单中选择您的内核。选择其中没有的一项-rt
。
如果您只有 ssh 访问权限,那么您可能无法访问 grub 启动菜单。在这种情况下,您可能需要在使用 重新启动之前设置默认值grub-set-default
。首先尝试重新启动,软件包有可能会自动设置为默认值。看一下/boot/grub/grub.cfg
并寻找menuentry
线条。这些将为您提供可以传递给 的字符串grub-set-default
。就我而言,我会使用:
sudo grub-set-default 'Debian GNU/Linux, with Linux 5.10.0-5-amd64'