This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、到目前为止、我已将 Z-Stack Linux GW 与 Raspberry Pi 3一起使用、没有任何问题。 现在我想使用 Raspberry Pi zero W、但当我运行 Z-Stack Linux 应用程序时、它会发出"非法指令"错误。 当我搜索它时、我发现了这个帖子和同一个问题、因此我将-March 标志从 armv7-A 更改为 armv6并重新编译了 Z-Stack Linux GW。 但不幸的是、问题仍然存在! 要在 Raspberry Pi zero w 上运行 Z-Stack Linux GW、我还必须做什么其他事情吗?
此致、Ahmad。
基本而言、您只需正确设置交叉编译器即可使其正常工作。 您可以参阅 https://raspberrypi.stackexchange.com/questions/103737/cross-compile-for-raspberry-pi-zero-from-ubuntu 、为 Raspberry Pi Zero 设置交叉编译器。
我之前使用 Raspberry Pi 3B 根据 此指令编译 Z-Stack 源、现在我使用 Raspberry PI 0本身来编译源。 有可能吗? 遗憾的是、我对交叉编译没有太多了解。
我认为 使用 Raspberry PI 0本身编译此源代码没有问题。
但遗憾的是、我仍然无法在 RPI Zero 上运行 Z-Stack Linux GW 应用程序。 它们在 RPI 零上成功编译、但无法运行、并出现非法指令错误。
“非法指令”与 Z-Stack Linux Gateway 参考设计没有太大关系。 它更多地涉及到您在 Zero IT 上的交叉编译环境或工具链。 您可以访问 https://www.raspberrypi.org/forums/viewtopic.php?t=247501 查看是否可以解决此问题。
我终于找到了解决方案。 问题在于 Z-Stack Linux 源代码附带的预构建 PROTOBUF-c 库。 我获得了 protobuf-c 源代码、并针对 armv6重新编译它、还在 Makefiles 中将-March 标志更改为 armv6、并重新编译了所有内容、它成功运行。
您好、Ahmad Fateh、
我正在尝试为 ARMv8交叉编译 protobuf-c、但无法生成 libprotobuf-c。如果您可以共享为交叉编译 protobuf-c 库所遵循的步骤、那将非常棒。
谢谢、
Vikas
请尝试参阅 https://sunmaysky.blogspot.com/2017/06/build-ti-z-stack-linux-home-gateway.html 中的步骤。 它是为 Ubuntu 虚拟机编写的、但应应用于嵌入式 Linux。
YiKai Chen、
感谢您共享链接。我的兴趣是专门对 libprotobuf-c 库进行交叉编译。因此 Linux 机器步骤不会对我有所帮助。TI 已经提供了有关如何在 Linux 主机上构建网关的用户指南。
谢谢、
Vikas
大家好、Vikas、
我认为 Z-Stack Linux 源代码附带的预构建 PROTOBUF-C 库必须在 ARMv8上运行(因为向后兼容)、因为它是为 armv7构建的。 我实际上在 RPI Zero 本身上进行了本机编译。 这些是我执行的步骤:
1.从此 链接下载 protobuf-c 源代码
2.在终端中运行:
/configure && make && make install
将 libprotobuf-c*。*文件复制到 Z-Stack-GW/Source/protobuf-c-arm/lib 中