未找到 Linux 内核源

未找到 Linux 内核源

我下载了驱动程序(tun 1.1)的源代码并正准备安装时出现以下错误:

root@sergiosaturn-HP-Pavilion-dv6500-Notebook-PC:~/Documentos/Tese/tun-1.1# ./configure
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking for gcc... (cached) gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gawk... (cached) mawk
checking for a BSD compatible install... (cached) /usr/bin/install -c
creating ./config.status
creating Makefile
configuring in linux
running /bin/sh ./configure  --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking for gcc... (cached) gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for kgcc... gcc
checking for gawk... (cached) mawk
checking for a BSD compatible install... (cached) /usr/bin/install -c
configure: error: Linux kernel source not found in /usr/src/linux 
configure: error: ./configure failed for linux

为了解决这个问题,我使用了以下命令:

apt-get source linux-image-$(uname -r)

make oldconfig

make

这不仅没有解决我的问题,而且还破坏了我的 ubuntu 安装。我不得不保存文件并重新安装 ubuntu。如果有人知道如何解决这个问题,请帮助我。

感谢您的时间。

答案1

您缺少的是内核源代码,而不是内核映像(您已经拥有它,因为您启动了它)。

尝试apt-cache search kernel | grep source查看可能的候选列表。这linux-source对我来说是这样的,但您的发行版上可能有不同的名称。另请查看版本是否与您当前使用的版本相匹配。

使用apt-get source也应该给你正确的源代码,正如评论中正确指出的那样。

顺便说一句:如果驱动程序需要内核源代码(而不仅仅是标头),它似乎不会被构建为模块,而是直接编译到内核中。这意味着您必须编译并安装整个内核(并且每次内核自动更新时都要重新执行此操作)。只有当您确切知道自己在做什么并且驱动程序值得付出努力时,您才应该这样做。几乎所有常见的驱动程序都可以作为模块使用,因此不需要内核源代码(而只需要标头)来构建。

相关内容