由于主板的改变,我需要为集成以太网(一个82579LM芯片)编译e1000e英特尔驱动程序,因为Debian内核显然附带了过时的e1000e版本(modinfo说驱动程序版本为2.3.2-k,但我已经从Intel:Desc.aspx?DwnldID=15817&lang=eng&ProdId=3299下载了3.1.0.2 )。
但是,当我试图编译驱动程序时,我获得了错误:
Makefile:108: *** Linux kernel source not configured - missing autoconf.h.我已经安装了Debian包linux-headers*,并且autoconf.h .h文件位于
/usr/src/linux-headers-$(BUILD_KERNEL)-amd64/include/generated/其中$(BUILD_KERNEL)是uname -r的输出。
我怀疑驱动程序Makefile中的一些搜索路径是错误的。有一个名为KSP的变量具有搜索路径:
# Kernel Search Path
# All the places we look for kernel source
KSP := /lib/modules/$(BUILD_KERNEL)/build \
/lib/modules/$(BUILD_KERNEL)/source \
/lib/modules/$(BUILD_KERNEL)-default/build \
/usr/src/linux-$(BUILD_KERNEL) \
/usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
/usr/src/kernel-headers-$(BUILD_KERNEL) \
/usr/src/kernel-source-$(BUILD_KERNEL) \
/usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
/usr/src/linux此目录在我的安装中不存在:
/lib/modules/$(BUILD_KERNEL)-default/build
/usr/src/linux-$(BUILD_KERNEL) \
/usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
/usr/src/kernel-headers-$(BUILD_KERNEL) \
/usr/src/kernel-source-$(BUILD_KERNEL)相反,我的/usr/src中有:
/usr/src/linux-headers-$(BUILD_KERNEL)-amd64
/usr/src/linux-headers-$(BUILD_KERNEL)-common
/usr/src/linux-kbuild-3.16我尝试根据我的路径更改KSP,但是编译总是给出相同的错误
Makefile:108: *** Linux kernel source not configured - missing autoconf.h我确信这是一个错误的路径定义,但我不知道如何修复它
有人在Debian中编译了一个英特尔驱动程序吗?
发布于 2022-03-03 10:04:50
通常,在Debian上编译Intel驱动程序的方法是:
wget https://downloadmirror.intel.com/xxxx/eng/xxxxxx.tar.gz
cd e1000e-1.0.5/src
export BUILD_KERNEL=$(uname -r)
apt install linux-headers-$BUILD_KERNEL
make如果一切顺利的话
make installhttps://stackoverflow.com/questions/28430722
复制相似问题