启用树外内核模块构建的文件
Files to enable build of out-of-tree kernel modules
我需要为一些东西准备一个 apt
包,以便为自定义 Linux 构建内核模块。我在另一台机器上使用 headers_install
和 modules_install
make
目标交叉构建了内核头文件和模块。复制生成的目录后,我仍然无法在目标机器上构建内核模块,因为缺少 /lib/modules/$(shell uname -r)/build
。
这是我的问题。为了启用模块构建(连同上面提到的生成的内核头文件和模块),我需要包含到我的包中的最小依赖项是什么?
提前致谢。
经过一些试验,我找到了一个可行的解决方案:
#!/bin/bash
ARCH=arm
SRC_DIR=
MOD_DIR=
BUILD_DIR=$MOD_DIR/build
set -ex
cd $SRC_DIR
make modules_install INSTALL_HDR_PATH=$MOD_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_DIR/scripts $BUILD_DIR/
# Build a headers tree manually, because
# `make headers_install` doesn't put everything needed.
cp -r $SRC_DIR/include $BUILD_DIR/
cp -r $SRC_DIR/arch/$ARCH/include/* $BUILD_DIR/include/
cp -r $SRC_DIR/include/generated/* $BUILD_DIR/include/
cp -r $SRC_DIR/arch/$ARCH/include/generated/* $BUILD_DIR/include/
cp $SRC_DIR/include/linux/kconfig.h $BUILD_DIR/include/linux/
在本机构建内核源代码树(非跨平台)后,此脚本会提供内核源代码树的路径。
我需要为一些东西准备一个 apt
包,以便为自定义 Linux 构建内核模块。我在另一台机器上使用 headers_install
和 modules_install
make
目标交叉构建了内核头文件和模块。复制生成的目录后,我仍然无法在目标机器上构建内核模块,因为缺少 /lib/modules/$(shell uname -r)/build
。
这是我的问题。为了启用模块构建(连同上面提到的生成的内核头文件和模块),我需要包含到我的包中的最小依赖项是什么?
提前致谢。
经过一些试验,我找到了一个可行的解决方案:
#!/bin/bash
ARCH=arm
SRC_DIR=
MOD_DIR=
BUILD_DIR=$MOD_DIR/build
set -ex
cd $SRC_DIR
make modules_install INSTALL_HDR_PATH=$MOD_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_DIR/scripts $BUILD_DIR/
# Build a headers tree manually, because
# `make headers_install` doesn't put everything needed.
cp -r $SRC_DIR/include $BUILD_DIR/
cp -r $SRC_DIR/arch/$ARCH/include/* $BUILD_DIR/include/
cp -r $SRC_DIR/include/generated/* $BUILD_DIR/include/
cp -r $SRC_DIR/arch/$ARCH/include/generated/* $BUILD_DIR/include/
cp $SRC_DIR/include/linux/kconfig.h $BUILD_DIR/include/linux/
在本机构建内核源代码树(非跨平台)后,此脚本会提供内核源代码树的路径。