![在 aarch64 CentOS 上编译 ZFS](https://linux22.com/image/165348/%E5%9C%A8%20aarch64%20CentOS%20%E4%B8%8A%E7%BC%96%E8%AF%91%20ZFS.png)
我正在尝试在运行 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
...