首先我要透露的是,BPI 的工作人员向我发送了一台免费的 BPi M2 Zero 来执行这些测试。我相信我的评论是公平和公正的,但我想坦率地说明这一事实。
硬件简介
[]()
与 Raspberry Pi Zero W 相比,Banana Pi BPI-M2 Zero 具有令人印象深刻的规格。以下是与 openHAB 相关的规格。
特征 |
BPI-M2 零 |
树莓派零W |
---|
中央处理器 |
四核皮质-A7 H2+ |
1GHz,单核CPU |
内存 |
512MB DDR3 SDRAM(与GPU共享) |
512MB RAM(与 GPU 共享) |
无线上网 |
802.11b/g/n |
802.11b/g/n |
蓝牙 |
BT4.0 |
蓝牙 4.1、BTLE |
通用输入输出接口 |
40 针,编号和布局与 Raspberry Pi Zero W 相同 |
40 针 HAT 兼容 |
总而言之,它们几乎是相同的设备,只是 BPI-M2 Zero 具有更好的 CPU,而 Raspberry Pi Zero W 具有更新的蓝牙。
[]()
上图显示了 BPI-M2 Zero(右上)、Raspberry Pi Zero W(右下)和左侧的原始 Raspberry Pi 1。外观上存在一些细微差异,但所有端口似乎都位于相同位置。然而,将其翻转过来,您会发现 BPI-M2 Zero 的板子底部有很多组件。
[]()
因此,BPI-M2 Zero 不适合“官方”Raspberry Pi Zero 外壳。我没有其他案例可以尝试。我对将贴纸贴在 GPIO 孔上也不满意。但这是次要的。
不过,值得一提的一个好功能是 BPI-M2 Zero 确实有微小的按钮,一个用于重置计算机,一个用于打开/关闭计算机电源。当尝试运行像 OH 这样的服务器时,这可能会派上用场。
BPI-M2 Zero 仅支持高达 64 Gig 的 SD 卡,这是我遇到的第一个障碍。如果您首先将卡格式化为 FAT-32,则 Raspberry Pi 可以支持 64 Gig 及更大的卡,但据我所知,BPI-M2 根本不支持这种更大的 SD 卡。
但我想我应该尝试一下,看看会发生什么。如果有效,最坏的情况是它不会使用整张卡。如果没有的话我就只能等待新的SD卡了。我累了。它不起作用。
操作系统
去办公用品商店买一张价格过高的 SD 卡之后我就可以开始使用了。
BPI-M2 Zero 可以正式运行 Android 或 Armbian。它可能能够运行 Raspbian,因为他们确实声称它应该与 Raspberry Pi 一起提供完整的功能,但我不想花时间以防它不起作用。
有多种构建可供选择。如果不选择 Android,似乎可以在 Ubuntu 16.04 或 Debian Jessy 版本之间进行选择。我选择了其中一个 Ubuntu 版本,因为它是最新构建的映像,并且是唯一一个名称中没有“桌面”的映像。
我想说的是,选择图像相当令人困惑,因为它们都说“预览”,所以我不知道我将获得的操作系统有多稳定。进一步阅读表明这是我想要的,因为它基于 Ubuntu Server。我们将看看它有多稳定。
镜像下载:https://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO
遗憾的是,Armbian 不支持 wifi 的无头配置,并且由于没有板载以太网,我必须使用显示器、键盘和鼠标进行初始设置。
与 raspbian 的一个显着区别是您必须以 root 身份登录,默认密码为 1234。但它会让您立即更改 root 密码,然后立即创建一个新用户帐户。root 登录未禁用。
我运行的第一件事是 armbian-config 来设置 wifi 并进行其他配置更改。提供的选项级别低于 raspi-config 中的选项,但有一些有趣的选项,例如冻结内核版本、自动安装到 SATA、eMMC、NAND 或 USB,以及启用虚拟只读根文件系统。我什么也没做。
设置 wifi 非常简单,但是将 wpa-supplicant.conf 放入启动分区的 raspbian 方法使事情变得更容易。为了以后的实验,我也安装了 BT。我还从该工具进行了更新/升级,因为它很方便。
重新启动后,我遇到了第一个主要问题。
Thermal thermal_zone0: critical temperature reached (109 C), shutting down
它可能有一个快速的处理器,但看起来需要一个散热器。
我还在启动过程中看到了 CRC 检查问题,但到目前为止似乎工作正常,所以我现在不打算研究它。
接下来,我设置了常用设置,例如主机名(我有一个北欧和希腊神话生物主题,因此我们为该主机选择了 chiron)并在 pfSense 中修复了静态 IP。
接下来,我设置了 ssh 证书,以便无需密码即可登录。我很懒,只是复制相同的 .ssh 文件夹。
我们现在准备好获取 openHABian 并看看如何/是否可以运行 OH。
打开HABian
首先,根据登录计算机时打印的非常有用的信息,它正在以 10% 的可用空间和 493 MB 的 RAM 运行。这将会很接近。
下一步,按照手动步骤安装 openHABian。
docs.openhab.org
注意,请继续对您的系统进行适当的修改,?
我执行了完整的 openHABian 安装,按顺序执行每个步骤。如果这不起作用(即没有足够的 RAM,我可能需要使用更最小的安装。不过,我不会安装任何可选组件。
从 openHABian 安装 OH 期间出现 GPG 错误,必须手动安装 OH。
无法安装 zulu-8,必须安装 openjdk8。openHABian 似乎没有尝试安装 java。
哎呀,我应该跳到 60 手册。这似乎有效,我现在已经安装了 OH 并与 Zulu 进行了配置。
安装过程中出现了很多 ssh 挂起的情况。
安装后,84% 的 RAM 已使用,8% 的交换空间。
openHAB 配置
[]()
首先,我选择了专家,因为我想最小化安装的内容以节省内存。我很惊讶地发现,尽管我选择了 Expert,但它还是为我安装了一堆 UI。没错,专家并不等于最小。我应该直接去 addons.cfg。
接下来,我对照我的runtime.cfg 检查了runtime.cfg 并进行了编辑,使它们匹配。这些配置来自较旧的 OH 2.2 SNAPSHOT,因此我想确保配置文件没有更改。这些也可以在 PaperUI 中设置。
接下来,我复制了 addons.cfg,它将安装我使用的所有附加组件。这将卸载我不使用的那些并安装我正在使用的所有附加组件。我再次编辑了新的以匹配,只是为了确保升级没有发生任何变化。我还省略了一些我不经常使用的附加组件,例如 HABPanel、REST Docs、IoT Market 和 Experimental Rules Engine。
此时我已经开始看到一些问题。根据 htop 开始使用交换,并且我开始看到使用 vim 编辑这些文件时出现一些重大滞后和延迟。
观察日志显示,安装/卸载所有附加组件需要相当长的时间。在我的 Docker 部署中,最多只需要一两分钟。仅卸载随 Expert 包安装的未使用的绑定就花费了大约 10 分钟。另外,观察CPU温度显示它从42摄氏度跳到52摄氏度。它没有达到关机温度,但它肯定是红色的。
由于某种原因,功能安装程序在尝试安装 influxdb 时抛出了一个错误,因此我不得不使用 addons.cfg 位进行 futz 来安装所有内容。安装完所有内容后,内存使用量增加了约 6%,但交换空间使用量没有增加。
初步观察:
整个系统存在明显的滞后和延迟。Multitail 不会一直立即更新,PaperUI 需要较长的时间来填充加载项列表,其他命令有时需要比预期更长的时间才能完成。这些都表明内存不足。
尽管存在这些用户注意到的问题,OH 似乎运行正常。我们将看到规则如何运作。
CPU 运行很热。如果您打算在此上运行 OH,请务必考虑购买散热器。为 OrangePi 设计的一个应该可以工作。也许还值得研究一下 CPU 是否可以降频。它似乎强大到足以承受速度下降的影响。
首先让我们配置网络和 Astro。我复制了相关的 .things 文件并查看了日志并看到了我期望看到的所有内容。但有一条警告表明,初始化我的一个 Network Things 的处理程序花费了超过 500 毫秒的时间。
接下来配置的是 http,所以我复制了 http.cfg 文件。
接下来我做了 nma.cfg。
现在,我开始复制链接到已配置的事物和绑定的一些 .items 文件。我复制的第一个链接到 Astro 和 http 为 ItemMapper 生成了大量 NoClassDefFoundError 异常。但是,对该文件的后续编辑不会生成错误。每次我复制任何项目文件时都会发生同样的情况。
我复制了规则和其余项目以及转换文件和站点地图。
此时,机器完全僵住了。当我设法让它部分响应时,报告的 CPU 温度为 59 摄氏度。
结论
Banana Pi M2 Zero 的尺寸令人印象深刻,但我不会说它适合 openHAB 服务器。我确信内存量过低会成为问题所在,但事实证明 CPU 热量才是问题所在。我个人不想在每次更新配置时都会冻结的机器上运行。也许加上散热器,它的性能可能会更好。