使用 pkg1.run 安装 Nvidia 驱动程序以“未找到 Version.h”结尾

use*_*738 3 nvidia kernel software-installation

我已经阅读了很多并尝试了很多 - 没有任何效果对我有用。

我有一台带有 Geforce MX440 Mobile 的戴尔 Inspiron 8200 (1600x1200)。以“简单方法” ( sudo apt-get install nvidia-current)安装驱动程序让我陷入了不可更改的微小分辨率(1024x768 或 800x600)。所以我走了一条艰难的路:

  • sudo apt-get update
  • sudo apt-get dist-upgrade
  • 将新司机列入黑名单
  • 重新启动
  • 下载并运行 ( sudo sh ...) Nvidia 96 文件结尾pkg1.run,当我在某处阅读时,这对我来说是正确的。

这导致错误:

ERROR: The kernel header file
'/lib/modules/3.08.0-35-generic/build/include/linux/version.h' does
not exist. The most likely reason for this is that the kernel source
files in '/lib/modules/3.08.0-35-generic/build' have not been
configured.
Run Code Online (Sandbox Code Playgroud)

如何配置内核源文件?没有什么像sudo make-preparesudo get-apt kernel-devel对吗?

建议复制导致此错误的version.h( cp -v /usr/include/linux/version.h /lib/modules/$(uname -r)/build/include/linux)解决方法:

ERROR: If you are using a Linux 2.4 kernel, please make sure  you
either have configured kernel sources matching your  kernel or the
correct set of kernel headers installed  on your system.  If you are
using a Linux 2.6 kernel, please make sure  you have configured kernel
sources matching your kernel  installed on your system. If you
specified a separate  output directory using either the
"KBUILD_OUTPUT" or  the "O" KBUILD parameter, make sure to specify
this  directory with the SYSOUT environment variable or with  the
equivalent nvidia-installer command line option.  Depending on where
and how the kernel sources (or the  kernel headers) were installed,
you may need to specify  their location with the SYSSRC environment
variable or  the equivalent nvidia-installer command line option.
Run Code Online (Sandbox Code Playgroud)

内核源代码安装在哪里?

我什至尝试运行...pkg1.runwith --kernel-source-path /usr/include/linux(version.h 和许多其他.h文件所在的位置)作为参数,但这导致:

 ERROR: The kernel header file
 '/usr/include/linux/include/linux/kernel.h' does not exist (...)
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

Bra*_*iam 5

好吧,看来您对安装玩得太多了……请在做任何事情之前阅读所有内容。

您唯一需要做的就是安装内核头文件,一切都会好起来的:

sudo apt-get install linux-generic
Run Code Online (Sandbox Code Playgroud)

这是您唯一需要做的事情并且可以解决“内核头文件‘version.h’不存在”的问题。错误...现在我们需要还原您所做的以使其正确。

如何配置内核源文件?没有像 sudo make-prepare 或 sudo get-apt kernel-devel 这样的东西吗?

您不需要配置任何东西。如果你使用 APT,一切都会好起来的。此外,您无需sudo执行make. 没有get-apt也没有make-prepare命令,所以无论你在哪里看到那些只是关闭该页面并且不要相信那里所说的任何内容。

一种解决方法建议复制导致此错误的 version.h (cp -v /usr/include/linux/version.h /lib/modules/$(uname -r)/build/include/linux):

您必须只遵循过去 1 年中的指南以及了解自己在做什么的人的指南……该/usr/include/linux/version.h文件/lib/modules/$(uname -r)/build/include/linux基本上由不同的软件包提供。一个 inusrlinux-libc-dev由 linux-headers提供的,而你需要的那个是由 linux-headers 提供的。去掉它:

sudo rm /lib/modules/$(uname -r)/build/include/linux/version.h
Run Code Online (Sandbox Code Playgroud)

错误:内核头文件 '/usr/include/linux/include/linux/kernel.h' 不存在 (...)

当您安装 headers 包时,这也将被修复。