在OSX 10.15.4 Catalina上使用arm64内核构建进行了一次更新。
我的意图是在macOS上本地构建最新的(5.7)arm64内核,并在qemu-system-aarch64上运行它。顺便说一下,这个工具链是从crosstool-ng构建的。
1)首先按照上述步骤,包括一些头文件。我把它们放在我的主文件夹下
$ ls ~/usr/include/ -l
drwxr-xr-x 4 yupluo01 admin 128 May 4 16:47 bits
-rw-r--r-- 1 yupluo01 admin 177346 May 4 16:23 elf.h
-rw-r--r-- 1 yupluo01 admin 17079 May 4 16:23 features.h
drwxr-xr-x 4 yupluo01 admin 128 May 4 16:44 gnu
-rw-r--r-- 1 yupluo01 admin 6186 May 4 16:33 malloc.h
-rw-r--r-- 1 yupluo01 admin 2290 May 4 16:43 stdc-predef.h
2) 其次,关于主机uuid代码的一些hack,因为在Mac上的uuid_t类型与Linux上不同:scripts/mod/file2alias.c
通过一个宏BUILD_ON_LINUX删除uuid_t定义,并在do_tee_entry()中注释代码
3) 运行命令:make ARCH=arm64 HOSTCFLAGS="-I /usr/local/include -I ~/usr/include -I /usr/local/opt/openssl/include/ -L /usr/local/opt/openssl/lib/ -DBUILD_ON_LINUX=0" CROSS_COMPILE=aarch64-unknown-linux-gnu- O=out_arm64/
make
中添加详细标志以查看它正在做什么吗?我认为在Linux中你可以使用make V=1
。另外,你为什么要从互联网上复制elf.h?我会从已知编译该内核的VM中复制它。 - mpontillo