【问题标题】:Am I missing any kernel files? If so, which ones and how should I install them?我是否缺少任何内核文件?如果是这样,哪些以及我应该如何安装它们?
【发布时间】:2014-11-25 02:34:14
【问题描述】:

我不确定是否缺少 Linux 内核 3.11 的文件,也不确定如何安装任何丢失的文件。

当我输入时:

me@Bedrock1:~$ uname -r
3.11.0-23-generic

这让我相信我正在运行内核 3.11。但是,我无法安装 NVIDIA 显卡驱动程序。当我尝试安装时

me@Bedrock1:~$ sudo apt-get install cuda

我(部分)得到以下输出:

Loading new nvidia-340-340.58 DKMS files...
First Installation: checking all kernels...
Building only for 3.11.0-23-generic
Building for architecture x86_64
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.

我将其理解为它检查了我拥有哪些内核(我可以拥有超过 1 个 ????),然后尝试为内核 3.11 安装潜水员,但因为内核“似乎没有要安装!?

接下来,我使用 dpkg 查看我安装了哪些 Linux 文件并看到了这个:

me@Bedrock1:~/Downloads/cudaDownloads$ dpkg -l | grep "linux-" | cut -d " " -f 3
gcc-4.8-powerpc-linux-gnu-base
linux-firmware
linux-headers-3.13.0-29
linux-headers-3.13.0-29-generic
linux-headers-3.13.0-30
linux-headers-3.13.0-30-generic
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-34
linux-headers-3.13.0-34-generic
linux-headers-3.13.0-35
linux-headers-3.13.0-35-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-generic
linux-image-3.11.0-23-generic
linux-image-3.8.0-33-generic
linux-image-extra-3.11.0-23-generic
linux-image-extra-3.8.0-33-generic
linux-libc-dev:amd64
linux-sound-base
linux-source
linux-source-3.13.0
syslinux-common
syslinux-legacy

所以,看起来我有内核 3.11 和 3.8 的映像文件、3.13 的头文件和 3.13 的源文件。

当我查看我的引导目录时,我看到:

me@Bedrock1:~$ ls /boot
abi-3.11.0-23-generic         memtest86+.bin
abi-3.8.0-33-generic          memtest86+.elf
config-3.11.0-23-generic      memtest86+_multiboot.bin
config-3.8.0-33-generic       System.map-3.11.0-23-generic
grub                          System.map-3.8.0-33-generic
initrd.img-3.11.0-23-generic  vmlinuz-3.11.0-23-generic
initrd.img-3.8.0-33-generic   vmlinuz-3.8.0-33-generic

所以,我再次看起来好像在运行内核 3.11(并且可能运行内核 3.8?)

我对 linux 内核一无所知,但我怀疑为了安装 NVIDIA 驱动程序,我需要安装 linux-headers-3.11 和 linux-source-3.11。我在这方面是正确的吗?如果是这样,我该如何安装它们以及我需要注意什么?

【问题讨论】:

    标签: linux linux-kernel linux-device-driver


    【解决方案1】:

    通常您需要安装 Linux 头文件。 在您的情况下,它应该是 linux-headers-3.11.0-23-generic。 根据您提供的列表,您没有安装它。

    您可以下载相应的 .deb 文件并使用 dpkg -i linux-headers-3.11.0-23-generic.deb 进行安装

    附带说明:是的,您可以同时拥有多个内核。 在启动时,您将看到一个菜单,以选择您要启动的内核。 最好始终保留至少 2 个内核,以防其中一个内核出现问题。如果出现问题,您可以使用第二个内核启动计算机。

    【讨论】:

    • @wieOoma 会有什么意想不到的后果吗?如果这些是常规头文件,我不这么认为,但我真的不知道内核及其安装是如何工作的。具体来说,我(不知何故)安装了一堆 3.13 标头。添加 3.11 标头会在我的机器上的其他地方引起任何混乱吗?
    • 据我所知没有任何后果。添加额外的标题不会导致问题。标头用于模块/驱动程序等的构建过程。因此您会收到有关丢失文件的投诉。显然没有使用任何其他标头版本。
    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多