Banana Pi M2 Zero 运行 openHAB 回顾

news2024/11/27 14:28:20

首先我要透露的是,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 热量才是问题所在。我个人不想在每次更新配置时都会冻结的机器上运行。也许加上散热器,它的性能可能会更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/769754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git进阶操作

一、git 基础概念1. 1.1 三种状态: 工作区(unstage)——已修改(modified) 暂存区(stage)——已暂存(staged) 对象区——已提交(commited) 工作…

moment.js常见格式化处理各种时间方法

Moment.js 是一个简单易用的轻量级 JavaScript 日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和 NodeJS 两种环境中运行。此类库能够将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。另外,它也支…

博弈论--sg函数

sg函数------ 定义终止状态的SG函数值为0。如果游戏已经结束,即达到了终止状态,那么对应的SG函数值就是0。即先手的sg值为0,则先手必败,否则先手必胜。 如何求sg函数值--------对于每个可能的移动,将后续状态的SG函数…

「从零入门推荐系统」21:chatGPT、大模型介绍

作者 | gongyouliu 编辑 | gongyouliu 自2022年11月30日OpenAI发布chatGPT以来,大模型技术掀起了新一轮人工智能浪潮。chatGPT在各个领域(包括对话、摘要、内容生成、问题解答、识图、数学计算与推理、代码编写等)取得了比之前算法好得多的成…

测试开发之路 (工具篇)--Docker

目录 前言 什么是 docker 在 demo 中学习 mysql test link 更复杂点的场景 前言 Docker是一种开源的容器化平台,它可以帮助开发人员和测试人员更轻松地构建、部署和运行应用程序。在测试开发中,Docker可以提供许多便利和优势。 什么是 docker 官…

VMware Cloud Director 10.5 - 领先的云服务交付平台

VMware Cloud Director 10.5 - 领先的云服务交付平台 Support for vSphere 8.0U1 & NSX 4.1 请访问原文链接:https://sysin.org/blog/vmware-cloud-director-10/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…

【ShenYu系列】ShenYu的SPI实现源码分析

前言 前面我已经介绍【面试系列】详细拆解Java、Spring、Dubbo三者SPI机制的原理,当已经有了合适的实现,shenyu自身的SPI和上面的有啥区别,值得玩味。 什么是SPI SPI就是Service Provider Interface,直译"服务提供方接口&…

go+vue+wails写一个简单的密码加密器

git仓库 gitee: malred/password-generator-wails-vue gitee: malred/password-generator-wails-vue github: https://github.com/malred/password-generator-wails-vue wails是什么 我们用它来套壳前端项目(vue),打包成桌面端…

Java虚拟机——类加载机制概述 类加载的时机

在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。本章将会介绍虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化。类加载机制:Java虚拟机把描述类的数据从Class文件加载到内存&#…

【ArcGIS】shp导入报错ORA-00911无效字符

这个当个问题记录以下,就是shp文件名或者字段名有非正常字符,修改下名称重新导入即可; 直接改shp没法修改字段,会报错,需要先转化为gdb文件,然后在修改

【Spring】Spring AOP入门及实现原理剖析

文章目录 1 初探Aop1.1 何为AOP?1.2 AOP的组成1.2.1 切面(Aspect)1.2.2 连接点(Join Point)1.2.3 切点(Pointcut)1.2.4 通知(Advice) 1.3 AOP的使用场景 2 Spring AOP入门2.1 添加 Spring AOP 框架⽀持2.2 定义切面和切点2.3 定义相关通知 3 Spring AOP实现原理3.1 …

tauri自定义窗口window并实现拖拽和阴影效果

需求说明 由于官方提供的窗口标题并不能实现我的需求,不能很好的实现主题切换的功能,所以根据官方文档实现了一个自定义的窗口,官方文档地址:Window Customization | Tauri Apps 但是实现之后, 没有了窗体拖拽移动的…

linux系统编程-进程

目录 1 程序和进程 1.1 并发 1.3 多道程序设计 1.4 CPU 和 MMU 1.5 进程控制块 PCB 1.6 进程状态 1.7 环境变量 1.8 setenv 函数 2. 进程控制 2.1 fork 函数 2.2 循环创建 n 个子进程 2.3getpid 函数 2.4 getppid 函数 2.5 getuid 函数 2.6 getgid 函数 2.7 进…

分表后mybatis-plus删除操作失效等问题处理

因为重构dao层&#xff0c;问题太多了&#xff0c;于是想着另起一个章节。 3 mybatis封装对象的问题 直接使用mybatis自身的对象&#xff0c;会有问题&#xff0c;他的列表对象会设置一个id&#xff0c;导致后续的工程会出问题 <select id"getStatementDefaultEquation…

基于SpringBoot+vue的银行OA系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

使用Electron包装ruoyi-ui/ruoyi-vue实践总结

背景&#xff1a;最近公司新起的项目&#xff0c;由于工期、资源等原因&#xff0c;采用ruoyi框架快速实现开发&#xff0c;由于需要构建客户端&#xff0c;所以借助electron来实现。 electron 是使用javascript html css来构建跨平台的桌面应用程序。 官网地址&#xff1a;简介…

ModelWhale 基于 AI for Science 助力航遥中心基础设施建设

2023 年 3 月&#xff0c;科技部会同自然科学基金委启动“人工智能驱动的科学研究&#xff08;AI for Science&#xff09;”专项部署工作。科技部新一代人工智能发展研究中心主任赵志耘认为&#xff0c;AI for Science 将突破传统科学研究能力瓶颈&#xff0c;成为全球科研新范…

【2023-07-18】jsvmp逆向profileData

加密逻辑 注册gid需要用到profileData&#xff0c;profileData的加密逻辑是将一个46对键值对的json经过bas64编码后进行des加密&#xff0c;这46对键值对都是环境和设备相关的一些参数&#xff0c;要完整还原profileData还需要将这些参数的生成逻辑进行还原。 变量名说明key…

Python开发项目基于卷积神经网络的车牌识别仿真软件设计与实现

博主介绍&#xff1a;擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案例…

ICASSP2023论文解读|如何检测会议记录中的待办事项?

得益于语音识别技术的发展&#xff0c;人工智能可以帮助人们记录会议&#xff0c;自动检测与会后行动项关联的会议内容&#xff0c;并进行总结。 行动项识别对于管理会后待办任务至关重要。 针对对于行动项识别任务&#xff0c;相关数据集稀缺且规模小。因此&#xff0c;达摩…