在 aarch64 CentOS 上编译 ZFS

在 aarch64 CentOS 上编译 ZFS

我正在尝试在运行 CentOS 7.7(64 位)的树莓派 pi4 上编译 zfs。我按照此处提供的说明进行操作:https://github.com/zfsonlinux/zfs/wiki/Building-ZFS但无法克服以下错误:

checking kernel source version... 4.19.86-v8+
checking kernel file name for module symbols... Module.symvers
checking whether modules can be built... no
configure: error: 
    *** Unable to build an empty module.

这是整个 config.log 的链接 - 我无法真正理解它:https://pastebin.com/Whmg6hFw

这是我的系统的一些背景信息:

# uname -a
Linux localhost 4.19.86-v8+ #1 SMP PREEMPT Sat Dec 7 12:40:40 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux

# rpm -qa | grep kernel
kernel-4.19.86_v8+-1.aarch64
kernel-devel-4.19.86_v8+-1.aarch64
kernel-headers-4.19.86_v8+-1.aarch64

# cat /etc/system-release
CentOS Linux release 7.7.1908 (AltArch)

我自己从官方 GitHub 存储库编译了内核及其 rpm;没有任何问题或任何问题(以防万一这是错误的一部分 - 尽管我不这么认为)。https://github.com/raspberrypi/linux

感谢任何帮助 - 提前致谢

答案1

感谢各位在https://github.com/zfsonlinux/我设法解决了这个问题。

看起来 kernel-devel 包包含为 x86 而不是 arm64 编译的脚本:

# file /usr/src/kernels/4.19.86-v8+/basic/fixdep
basic/fixdep: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=f96cf37e4ab3abdfa90880655b262c4ae72c937a, for GNU/Linux 3.2.0, not stripped

目录中其他文件的结果srcipts非常相似。

make scripts在内核源目录中运行解决了该问题:

# cd /usr/src/kernels/4.19.86-v8+/
# make scripts
...

相关内容