用于建立树外内核模块的文件

问题描述 投票:1回答:1

我需要准备一个apt -package来填充东西,以便为自定义Linux构建内核模块。我使用headers_installmodules_installmake-target在另一台计算机上交叉构建了内核头文件和模块。复制生成的目录后,由于/lib/modules/$(shell uname -r)/build丢失,我仍然无法在目标计算机上构建内核模块。

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

提前感谢。

linux-kernel kernel-module dkms
1个回答
0
投票

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

#!/bin/bash

ARCH=arm

SRC_DIR=$1
MOD_DIR=$2

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/

此脚本以内核源树的本机构建(而非跨平台)的方式提供给内核源树的路径。

© www.soinside.com 2019 - 2024. All rights reserved.