我读了很多书,尝试了很多方法——但对我而言都不起作用。
我有一台戴尔 Inspiron 8200 (1600x1200),配有 Geforce MX440 Mobile。使用“简单方法”( ) 安装驱动程序sudo apt-get install nvidia-current
让我只能使用很小的不可更改分辨率 (1024x768 或 800x600)。所以我选择了困难的方法:
sudo apt-get update
sudo apt-get dist-upgrade
- 将 nouveau-driver 列入黑名单
- 重新启动
- 下载并运行(
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.
我该如何配置内核源文件?没有类似sudo make-prepare
或sudo 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.
内核源安装在哪里?
我甚至尝试运行...pkg1.run
带有--kernel-source-path /usr/include/linux
(其中 version.h 和许多其他.h
文件)作为参数的程序,但这导致:
ERROR: The kernel header file
'/usr/include/linux/include/linux/kernel.h' does not exist (...)
有人有主意吗?
答案1
好的,似乎您对安装进行了过多的修改...请在执行任何操作之前阅读所有内容。
您唯一需要做的就是安装内核头文件,然后一切都会好起来的:
sudo apt-get install linux-generic
这是您唯一要做的,并且可以解决“内核头文件‘version.h’不存在。”错误...现在我们需要恢复您所做的操作以使其正确。
我该如何配置内核源文件?没有像 sudo make-prepare 或 sudo get-apt kernel-devel 这样的命令,对吧?
您无需配置任何内容。如果您使用 APT,一切都会顺利完成。此外,您无需sudo
执行make
。没有get-apt
normake-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
本质上由不同的包提供。 中的那个usr
由 提供linux-libc-dev
,而您需要的那个由 linux-headers 提供。删除它:
sudo rm /lib/modules/$(uname -r)/build/include/linux/version.h
错误:内核头文件“/usr/include/linux/include/linux/kernel.h”不存在(...)
当您安装标题包时,这个问题也将得到修复。