我有 GTX 1650,并且使用 Manjaro 64 位和内核 58,但是当我尝试使用以下命令安装驱动程序 430.09 时:
sudo ./NVIDIA-Linux-x86_64-430.09.run --kernel-source-path /usr/include/linux/
ERROR: The kernel header file '/usr/include/linux//include/linux/kernel.h' does
not exist. The most likely reason for this is that the kernel source
path '/usr/include/linux/' is incorrect.
如果我使用:
sudo ./NVIDIA-Linux-x86_64-430.09.run --kernel-source-path /usr/
ERROR: The kernel source path '/usr/' is invalid. Please make sure you have
installed the kernel source files for your kernel and that they are
properly configured; on Red Hat Linux systems, for example, be sure you
have the 'kernel-source' or 'kernel-devel' RPM installed. If you know
the correct kernel source files are installed, you may specify the
kernel source path with the '--kernel-source-path' command line option
我如何使用/usr/include/linux/
内核源路径。尝试1:我也使用455.28进行安装,也出现了同样的问题。
答案1
该--kernel-source-path
选项需要已安装内核的标头,而不是/usr/include/linux/
.
通常你这样做:
sudo ./NVIDIA-Linux-x86_64-430.09.run --kernel-source-path=/lib/modules/${kernel-version}/source
答案2
/usr/include/linux
包含内核的内核头用户空间接口但编译模块需要头文件所有内核接口。前者只是后者的有限子集。
通常,在现代发行版中安装适当的软件包时,会添加/lib/modules/$(uname -r)/build
(或/lib/modules/$(uname -r)/source
)符号链接,该链接将指向适当的路径。如果此链接存在且有效,NVidia 驱动程序安装程序也将自动使用它,除非在命令行上被覆盖。
在 Manjaro 中,如果内核包名为linux[version]
,则相应的内核头包(您需要安装该包才能编译任何第三方内核模块,例如 Nvidia 的)似乎是linux[version]-headers
分别命名的。