如何为另一个 Ubuntu 交叉构建外部(树外)内核模块?

如何为另一个 Ubuntu 交叉构建外部(树外)内核模块?

我可以在任何地方找到有关如何在 Ubuntu 上为 ARM64 上的另一个 Ubuntu 交叉编译外部模块的正确指南。我不得不-mrecord-mcount从 CFLAGS 中删除该过程,因为最近的aarch64-linux-gnu-gcc交叉编译器似乎都不支持此选项。

但后来我遇到了以下错误:

./include/uapi/linux/types.h:5:10: fatal error: asm/types.h: Nie ma takiego pliku ani katalogu
    5 | #include <asm/types.h>

(实际上是什么让大家知道为什么gcc-multilib不允许使用交叉编译器)

到目前为止,其他交叉编译对我来说都有效。我想知道arm64我需要安装哪种架构的软件包才能asm/types.h出现在/usr/include/aarch64-linux-gnu/


Makefile

obj-m := module.o
ovaone-objs += modmain.o mod-controls.o
ccflags-remove-y += -mrecord-mcount

KERNELDIR ?= /lib/modules/$(shell uname -r)/build

all default: modules
install: modules_install

modules modules_install help clean:
    $(MAKE) -C $(KERNELDIR) M=$(shell pwd) $@

添加ccflags-y += -I/usr/aarch64-linux-gnu/include上述内容Makefile会导致以下错误:

./arch/arm64/include/asm/alternative-macros.h:8:10: fatal error: asm/cpucaps.h: Nie ma takiego pliku ani katalogu
    8 | #include <asm/cpucaps.h>

我找不到这样的文件所有的系统,意味着缺少了一些东西。唯一合理的参考是此内核补丁讨论

相关内容