在 Ubuntu 16.04 LTS 上安装 NVIDIA cuda 驱动程序时出现“未找到内核头文件”错误

在 Ubuntu 16.04 LTS 上安装 NVIDIA cuda 驱动程序时出现“未找到内核头文件”错误

只是想在 Ubuntu 16.04(不受支持)上安装 NVIDIA cuda 驱动程序,但出现以下错误:

驱动程序安装无法找到内核源。请确保内核源包已正确安装和设置。如果您知道内核源包已正确安装和设置,则可以使用“--kernel-source-path”标志传递内核源的位置。

但标题已安装

sudo apt install linux-headers-generic-lts-wily Reading package lists... Done Building dependency tree Reading state information...

完成 linux-headers-generic-lts-wily 已经是最新版本 (4.4.0.21.22)。0 个升级,0 个新安装,0 个要删除,30 个未升级。

sudo apt install linux-headers-generic Reading package lists... Done Building dependency tree Reading state information... Done

linux-headers-generic 已经是最新版本 (4.4.0.21.22)。升级了 0 个程序,新安装了 0 个程序,要删除 0 个程序,并且未升级 30 个程序。

内核版本似乎也正确

uname -r 4.4.0-21-generic

有任何想法吗?

答案1

我按照 Ron 所说的操作,清理了内核头文件,然后在当前内核头文件旁边添加了需要 Nvidia 的内核头文件: 去除内核

删除所有现有的 nvidia 包:

sudo apt-get remove nvidia* && sudo apt autoremove

我安装了一些软件包来编译内核(4.4.0):

sudo apt-get install dkms build-essential linux-headers-generic

现在阻止并禁用新Nouveau内核的驱动程序:

sudo nano /etc/modprobe.d/blacklist.conf

在 blacklist.conf 末尾插入以下行:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

我禁用了内核新特性:

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

构建新内核

sudo update-initramfs -u

最后reboot

我有 ubuntu:16.04.6,内核为 4.15.0-46-generic

sudo sh cuda_9.0.176_384.81_linux.run --override
sudo service lightdm start
sudo reboot

我在登录时也遇到了问题,但它对我来说有效:

sudo ubuntu-drivers autoinstall
sudo reboot

将它们添加到.bashrc 文件的末尾:

sudo nano .bashrc

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

有效。

答案2

我也遇到了同样的问题。解决方案是在 BIOS 中关闭安全启动。对于我的华硕主板,步骤如下:BIOS -> 高级模式 -> 启动 > 安全启动 -> 密钥管理 -> “清除安全启动密钥”。

相关内容