预编译的 OpenVINO R5 发行版支持“raspbian 9”,并提供了一些预编译的库,用于与他们的“movidius”usb 棒接口。我试过了,例如他们的预编译“myriad_compile”程序确实在 raspbian 上运行。现在我在用 OpenADK 制作的定制操作系统上做同样的事情。它有官方的树莓派内核,使用 glibc 2.27,我也在使用 gcc 7.3.0。如果我运行完全相同的二进制文件,则会收到以下消息:
# ./myriad_compile
mksh: ./myriad_compile: not executable: 32-bit ELF file
作为测试,我尝试在我的操作系统上运行来自 raspbian 的随机二进制文件,它工作正常。我还尝试在 raspbian 上从我的操作系统运行随机二进制文件,它也运行良好。
所以现在我有点困惑,还有什么可能是造成这种情况的原因。
我对 intel 二进制文件做了一个 readelf:
pi@raspberrypi:~/armv7l $ readelf -A ./myriad_compile
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "7-A"
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3-D16
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
这是我的工具链从我自己的 OpenADK 操作系统编译的名为“watchdogctl”的随机可执行文件:
pi@raspberrypi:~/armv7l $ readelf -A ./watchdogctl
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-A53"
Tag_CPU_arch: v8
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FP for ARMv8
Tag_Advanced_SIMD_arch: NEON for ARMv8
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
Tag_MPextension_use: Allowed
Tag_Virtualization_use: TrustZone and Virtualization Extensions
而这个来自 raspbian 9 的可执行文件在我的操作系统上运行没有问题,它甚至可以为较旧的 cpu 版本编译:
pi@raspberrypi:~/armv7l $ readelf -A /usr/bin/wpa_passphrase
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "6"
Tag_CPU_arch: v6
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
那么,我能否获得有关 raspbian 9 上存在的操作系统中缺少的内容的更多信息?我看到他们使用 glibc 2.24,但我有 2.27,所以我认为应该没问题,而且我有 gcc 7,他们使用 gcc 6,但这都是新的 ABI,所以我也不认为那里有问题.
欢迎任何建议!感谢