倚竹聽雨 发表于 2023-10-30 10:35:43

Aarch64 OpenWRT运行Home Assistant OS新姿势

前言:之前一直使用TN3399跑armbian跑HassIO(Supervisor)版,后面觉得TN3399的RK3399+4G的RAM单跑HassIO太浪费,于是想着OpenWRT+HassIO的组合来跑,确实能跑起来,但是HassIO本身报了很多不兼容的警告,看着有点烦人,而且感觉不知道会不会哪天就崩了,还是想直接使用官方推荐的Home Assistant OS来跑,但是又不想放弃OpenWRT,于是只能另辟途径,从而有了这个通过Docker来跑KVM虚拟机版Home Assistant OS的新姿势,话不多说,开始进入正题。在开始之前,先在宿主机确认是否支持KVM虚拟化:ls -l /dev/kvm
dmesg | grep kvm
出现如图所示则表示支持https://blog.fanlibei.com/zb_users/upload/2023/10/202310301015472438545.png部署:1、拉取KVM镜像docker pull iyonghsu/debian-libvirtkvm:latest
2、运行容器,建议使用特权模式,使用host网络,为避免容器的SSH端口与宿主机的端口冲突,我将镜像的SSH端口设定为1022docker run --name Debian11-Haos -it -d --restart always --privileged --network host iyonghsu/debian-libvirtkvm:latest /bin/bash
3、连接容器的SSH,SSH账号/密码是:root/debian,推荐使用MobaXterm,自带X Server4、下载 haos.xml,上传到宿主机,目录根据个人喜好自定义,我这里用的是root家目录,执行virsh define /root/haos.xml
5、在 home-assistant/operating-system 下载最新版的HAOS,选择haos_generic-aarch64-11.1.qcow2.xz,这个是aarch64的通用版本,使用的是efi启动方式,qcow2是KVM的虚拟盘格式,能在虚拟机里启动。https://blog.fanlibei.com/zb_users/upload/2023/10/202310301016046919849.png6、在容器中执行命令解压文件xz -d haos_generic-aarch64-11.1.qcow2.xz
7、在窗口执行 virt-manager ,在弹出的manager窗口可以看到haos虚拟机已经创建成功https://blog.fanlibei.com/zb_users/upload/2023/10/202310301016144216762.png8、选择虚拟机右键点击,点击open选项,进入虚拟机详情页,接着点击灯泡按钮https://blog.fanlibei.com/zb_users/upload/2023/10/202310301016249932813.png9、点击 Add Hardware 按钮,选择 Storage -> Select or create custom storage 在输入框中输入qcow2文件的全路径,Device type 选择Virtio,点击 Finish 按钮,再点击 yes 按钮https://blog.fanlibei.com/zb_users/upload/2023/10/202310301016384409911.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301016455782684.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301016505981319.png10、将网络改成桥接设备,设备名称填写你宿主机的桥接接口,openwrt一般是br-lan,armbian的话,需要自己创建桥接接口,具体可以百度或者Google搜索查看https://blog.fanlibei.com/zb_users/upload/2023/10/202310301017248126783.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301017309886303.png11、点击 启动 按钮,等待几分钟可以看到启动成功,如下图2https://blog.fanlibei.com/zb_users/upload/2023/10/202310301017395777904.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301017441318994.png12、在OpenWRT里找到新增主机名为 homeassistant 的IP地址,在浏览器中输入 IP地址:8123,即可看到Home Assistant增在部署中,视网络情况而定,国内网络情况估计要个好几把钟?建议到这一步直接挂一整晚,第二天再来看。https://blog.fanlibei.com/zb_users/upload/2023/10/202310301017527868071.png当看到下图,则表示HASS已部署成功,接下来开始进行初始化设置吧。https://blog.fanlibei.com/zb_users/upload/2023/10/202310301017591908446.png优化:1、在Haos中,执行 journalctl -f 如果看到一直有 plugin/errors: 2 . NS: tls: DialWithDialer timed out 的报错,则需要关闭 ha dns的fallbackhttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301018077228823.png2、执行以下命令关闭ha dns的fallbackha dns op --fallback=false
ha dns restart
再次执行 journalctl -f 可看到一直刷屏的 plugin/errors 已经没了https://blog.fanlibei.com/zb_users/upload/2023/10/202310301018175567554.png3、如果需要容器启动的同时启动虚拟机,则可以在容器的 /init.sh 文件里新增最后一行sleep 3m && virsh start haos
sleep 3m 是建议启动容器3分钟后再启动虚拟机,haos为虚拟机名称,如果你自己改名了,则换成自定义的虚拟机名称。4、原磁盘文件大小只有6G,所以建议在虚拟机上再添加一个20~30G以上的磁盘文件,之后在HA的系统配置里将数据目录转移到新盘上,路径为:配置-> 系统 -> 存储-> 迁移数据磁盘 -> 选择新的数据磁盘,最后点击迁移,等待个几分钟会自动重新启动HA,耐心等待即可。https://blog.fanlibei.com/zb_users/upload/2023/10/202310301018296412473.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301018393625015.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301018466797744.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301018512969170.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301018565115647.pnghttps://blog.fanlibei.com/zb_users/upload/2023/10/202310301019013535274.png新姿势到此结束,完结撒花。

原文链接

loveyolanda 发表于 2023-10-30 11:38:41

有没有X86的docker 虚拟机镜像?我看好像你这个镜像是arm的

Ari 发表于 2023-10-30 11:38:49

感谢分享,那直接在3399的armbian环境下可以跑os吗

倚竹聽雨 发表于 2023-10-30 11:49:41

本帖最后由 倚竹聽雨 于 2023-11-6 12:21 编辑

loveyolanda 发表于 2023-10-30 11:38
有没有X86的docker 虚拟机镜像?我看好像你这个镜像是arm的
应坛友要求,已更新X86镜像。
暂时没有,这个适合ARM64并且内存4G以上用,X86直接上PVE下建虚拟机OP+HAOS就行了。



loveyolanda 发表于 2023-10-30 11:56:08

倚竹聽雨 发表于 2023-10-30 11:49
暂时没有,这个适合ARM64并且内存4G以上用,X86直接上PVE下建虚拟机OP+HAOS就行了。 ...

我是用openwrt作旁路由,管理刷机都简单,轻量化,没搞虚拟机。openwrt下的docker跑的homeassistant core版

倚竹聽雨 发表于 2023-10-30 12:18:46

Ari 发表于 2023-10-30 11:38
感谢分享,那直接在3399的armbian环境下可以跑os吗

可以的,只要内核已经支持KVM。

倚竹聽雨 发表于 2023-10-30 13:48:31

loveyolanda 发表于 2023-10-30 11:56
我是用openwrt作旁路由,管理刷机都简单,轻量化,没搞虚拟机。openwrt下的docker跑的homeassistant core ...
更新了X86的了,你直接拉取运行,没经过测试,你试试看能不能用,然后创建虚拟机直接在virt-manager中创建,不要用我的xml文件,我的xml文件是根据ARM64适配的。

kjjuhfv 发表于 2023-10-30 16:08:26

对我来说之所以要haos
就是要它能直接使用主机的音频口来播报
不能直接使用的都没有想法

倚竹聽雨 发表于 2023-10-30 20:11:45

kjjuhfv 发表于 2023-10-30 16:08
对我来说之所以要haos
就是要它能直接使用主机的音频口来播报
不能直接使用的都没有想法 ...

场景不同吧,我的话就直接用dlna连接小度播放。

XCray 发表于 2023-10-31 08:05:08

docker容器里跑kvm、然后kvm里跑haos,这个思路确实是第一次见,也有点颠覆之前的认知:L
页: [1] 2 3 4 5
查看完整版本: Aarch64 OpenWRT运行Home Assistant OS新姿势