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