我可以在任何地方找到有关如何在 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>
我找不到这样的文件所有的系统,意味着缺少了一些东西。唯一合理的参考是此内核补丁讨论。