Linux kernel 用于启用树外内核模块构建的文件

Linux kernel 用于启用树外内核模块构建的文件,linux-kernel,kernel-module,dkms,Linux Kernel,Kernel Module,Dkms,我需要准备一个apt-包,以便为定制Linux构建内核模块。我在不同的机器上使用headers\u install和modules\u installmake-目标交叉构建了内核头和模块。复制生成的目录后,我仍然无法在目标机器上构建内核模块,因为缺少/lib/modules/$(shell uname-r)/build 这是我的问题。为了启用模块构建(以及上面提到的生成的内核头和模块),我需要在包中包含哪些最小依赖项 提前感谢。经过一些实验,我得到了一个有效的解决方案: #/bin/bash 拱

我需要准备一个
apt
-包,以便为定制Linux构建内核模块。我在不同的机器上使用
headers\u install
modules\u install
make
-目标交叉构建了内核头和模块。复制生成的目录后,我仍然无法在目标机器上构建内核模块,因为缺少
/lib/modules/$(shell uname-r)/build

这是我的问题。为了启用模块构建(以及上面提到的生成的内核头和模块),我需要在包中包含哪些最小依赖项


提前感谢。

经过一些实验,我得到了一个有效的解决方案:

#/bin/bash
拱=臂
SRC_DIR=$1
MOD_DIR=$2
BUILD\u DIR=$MOD\u DIR/BUILD
set-ex
cd$SRC\u目录
make modules\u install\u HDR\u PATH=$MOD\u DIR
rm$MOD_DIR/{build,source}
mkdir$BUILD_DIR
cp$SRC_DIR/{.config,Makefile,System.map,Module.symvers}$BUILD_DIR
mkdir-p$BUILD_DIR/arch/$arch
cp$SRC_DIR/arch/$arch/Makefile$BUILD_DIR/arch/$arch/
cp-r$SRC\u目录/脚本$BUILD\u目录/
#手动构建标题树,因为
#'make headers_install'并没有放置所需的所有内容。
cp-r$SRC\u DIR/包含$BUILD\u DIR/
cp-r$SRC\u DIR/arch/$arch/include/*$BUILD\u DIR/include/
cp-r$SRC\u DIR/include/generated/*$BUILD\u DIR/include/
cp-r$SRC\u DIR/arch/$arch/include/generated/*$BUILD\u DIR/include/
cp$SRC_DIR/include/linux/kconfig.h$BUILD_DIR/include/linux/

在内核源代码树本机构建(而非跨平台构建)之后,此脚本被提供到内核源代码树的路径。

经过一些实验,我得到了一个可行的解决方案:

#/bin/bash
拱=臂
SRC_DIR=$1
MOD_DIR=$2
BUILD\u DIR=$MOD\u DIR/BUILD
set-ex
cd$SRC\u目录
make modules\u install\u HDR\u PATH=$MOD\u DIR
rm$MOD_DIR/{build,source}
mkdir$BUILD_DIR
cp$SRC_DIR/{.config,Makefile,System.map,Module.symvers}$BUILD_DIR
mkdir-p$BUILD_DIR/arch/$arch
cp$SRC_DIR/arch/$arch/Makefile$BUILD_DIR/arch/$arch/
cp-r$SRC\u目录/脚本$BUILD\u目录/
#手动构建标题树,因为
#'make headers_install'并没有放置所需的所有内容。
cp-r$SRC\u DIR/包含$BUILD\u DIR/
cp-r$SRC\u DIR/arch/$arch/include/*$BUILD\u DIR/include/
cp-r$SRC\u DIR/include/generated/*$BUILD\u DIR/include/
cp-r$SRC\u DIR/arch/$arch/include/generated/*$BUILD\u DIR/include/
cp$SRC_DIR/include/linux/kconfig.h$BUILD_DIR/include/linux/

在内核源代码树以本机方式(而不是跨平台)构建之后,此脚本将被提供到内核源代码树的路径。

dkms存在了很长一段时间。是的,问题是如何为构建模块准备最小的依赖关系,特别是
build
目录。也许这是有帮助的:发行版通常为此提供一个包。长期以来
dkms
存在。是的,问题是如何为构建模块准备最小的依赖关系,特别是
build
目录。也许这是有帮助的:发行版通常为此提供一个包。