CM311-1a安装HomeAssistant Supervisor (Hassio)&修复蓝牙—让你的电视盒子身价翻倍!
sfezen
2022年09月23日 17:24
收录于文集
共2篇

声明:

由于固件、软件、镜像等持续更新,本文仅代表当前所使用版本的流畅安装记录。行文略长,关键代码处会配以截图展示,请自行对比是否存在差异导致安装失败!如有疏忽之处,还请见谅!刷机有风险,请慎重选择,一切源于本文造成的后果自负,笔者概不负责!

  • 前言:

几个月前笔者偶然在小黄鱼上看到HomeAssistant盒子,由此便结识了CM311-1a,不过当时这些盒子卖170~180,着实有点小贵,索性自己研究研究。这一篇相比上一篇《榨干性能!魔百和CM311-1a+KVM+Openwrt&+Docker安装以及Tailscale内网穿透保姆级教程》构思更早一些,也是实际使用最久的方案,几个月来一直在U盘中运行,并未写入EMMC,倒也没遇到黑屏等bug,随着各路大佬的开发调教,目前系统固件已日趋完善,由于Armbian+HomeAssistant Supervisor(原Hassio,以下简称Hassio)占用约7G,故本文以魔百和CM311-1a (YST) 2G RAM+16G ROM为例,探索该系列电视盒子更多整合方案,希望传递共享精神,也是对各位大佬智慧结晶的进一步传播。

一种方案是否好不好,其实需要每一位玩家根据自己的情况思考、探索,其实聪明的朋友一定能从上一篇使用KVM这一步想到:使用KVM+HassOS也是一种不错的组合。可能唯一的缺点就是不能直通蓝牙吧!那能不能使用KVM的OpenWRT+HassOS或者KVM的OpenWRT+Docker安装Hassio呢?有点太难为这台电视盒子了,如果你是4G RAM的外贸盒子,第一种组合似乎也不错!另外Hassio需要使用Network Manager,而KVM则需要关闭Network Manager使用Network配置网络,所以目前笔者不建议这种组合。如果您有更好的方案组合,也欢迎分享给大家!

特别鸣谢各路大佬(排名不分先后):

Flippy、Aidany、Ophub、Calmact、Pinker336、Xcray、Al-one

本文参考Xcray《M401A/311-1a盒子Armbian系统中蓝牙基本完美,reboot/音乐问题搞定》https://bbs.hassbian.com/thread-17392-1-1.html

  • Part 1. 线刷Android TV版固件

  • Part 2. 制作Armbian启动U盘

以上两部分同

本次安装使用的系统及版本是:Armbian_22.11.0_Aml_s905l3a_bullseye_5.15.68_server_2022.09.21.img

可在此下载O大最新版本:https://github.com/ophub/amlogic-s9xxx-armbian/releases

接下来我们就从有差异的第三部分开始

  • Part 3. 修复蓝牙并安装Armbian到EMMC中

在开始之前,为了更快的安装软件,我们先换源:

代码块
JavaScript
自动换行
复制代码
nano /etc/apt/sources.list
复制成功

Ctrl+K全部删除 复制清华源 鼠标中键(滚轮)粘帖

代码块
JavaScript
自动换行
复制代码
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
复制成功

Ctrl+X → y → 回车 保存

更新源并安装以下软件:

代码块
JavaScript
自动换行
复制代码
apt update && apt install -y apt-transport-https apparmor udisks2 gpiod lrzsz avahi-daemon bluez bluetooth pulseaudio-module-bluetooth bluez-firmware
复制成功

修复蓝牙

PS. 此处根据Xcray大佬的编译的文件,蓝牙功能仅限设备通讯,如果需要通过蓝牙播放音乐,需要修改rtl8761b_config,Xcray大佬已在原帖中提供,请通过顶部的参考文章进一步了解。

需要修改4处文件

    1. 修改uEnv.txt,系统加载的cm311的dtb

将FDT=/dtb/amlogic/meson-g12a-s905l3a-e900v22c.dtb修改为FDT=/dtb/amlogic/meson-g12a-s905l3a-cm311.dtb

e900v22c改成cm311

    2. 链接rtl8761b_fw并补全配置文件

代码块
JavaScript
自动换行
复制代码
ln -s /lib/firmware/rtl_bt/rtl8761b_fw.bin /lib/firmware/rtlbt/rtl8761b_fw
复制成功

代码块
JavaScript
自动换行
复制代码
wget https://github.com/ophub/amlogic-s9xxx-armbian/files/9582582/rtl8761bt_config.zip

unzip rtl8761bt_config.zip

mv rtl8761bt_config /lib/firmware/rtlbt

rm rtl8761bt_config.zip

rm -rf __MACOSX/
复制成功

    3. 上传rtk_hciattach到/usr/bin,给予执行权,文件地址:阿里云盘 /s/ChcpPZsuKtd

代码块
JavaScript
自动换行
复制代码
chmod 755 /usr/bin/rtk_hciattach
复制成功

    4. 添加开机启动

代码块
JavaScript
自动换行
复制代码
nano /boot/uEnv.txt
复制成功

    在exit 0之前添加:

代码块
JavaScript
自动换行
复制代码
#bluetooth
/usr/bin/rtk_hciattach -n -s 115200 ttyAML1 rtk_h5 &
#bluetooth reset
gpioset -s 1 -m time 0 82=0
gpioset 0 82=1
复制成功

重启后检查蓝牙是否启动

代码块
JavaScript
自动换行
复制代码
systemctl status bluetooth
hciconfig
复制成功

这个错误可以忽略,有强迫症的可以继续修复

代码块
JavaScript
自动换行
复制代码
nano /etc/systemd/system/bluetooth.target.wants/bluetooth.service
复制成功

我们的盒子没有SIM卡槽,所以sap功能可以忽略,行尾添加参数--noplugin=sap

代码块
JavaScript
自动换行
复制代码
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap
复制成功

至此便没有了failed

这里就不重启蓝牙了,因为我们下一步就是写入EMMC

代码块
JavaScript
自动换行
复制代码
armbian-install
复制成功

选择305 s905l3a CM311-1a-YST

分区格式选择2,等待写入完成

  • Part 4. 安装Hassio

修改hostname

代码块
JavaScript
自动换行
复制代码
hostnamectl set-hostname homeassistant
复制成功

因为Hassio依赖Docker,需要先安装Docker

代码块
JavaScript
自动换行
复制代码
mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin 
复制成功

安装Hassio

代码块
JavaScript
自动换行
复制代码
wget https://github.com/home-assistant/os-agent/releases/download/1.3.0/os-agent_1.3.0_linux_aarch64.deb

dpkg -i os-agent_1.3.0_linux_aarch64.deb

wget https://github.com/home-assistant/supervised-installer/releases/download/1.2.2/homeassistant-supervised.deb

dpkg -i homeassistant-supervised.deb
复制成功

选择qemuarm-64

安装时间比较长,可以用魔法,如果有的话。还是听首歌吧!

通过docker命令查看进展

经历漫长的等待后就会出现久违的界面

蓝牙发现了米家温湿度计2,但是不能连接,因为设备加密的缘故,不过有国外大佬通过刷机实现了HomeAssistant蓝牙直连米家温湿度计2,上报时间终于不再是10分钟一次了!!!

这里推荐看看B站UP主茶茶与无夏的:给米家温度计刷固件!

紧接着就是安装HACS商店

代码块
JavaScript
自动换行
复制代码
docker exec -it homeassistant bash
wget -O - https://get.hacs.xyz | bash -
复制成功

等待安装结束后重启HomeAssistant容器

代码块
JavaScript
自动换行
复制代码
docker restart homeassistant
复制成功

搜索集成HACS,按步骤添加即可(步骤中需要github帐号授权,可提前注册)

Node-RED、MQTT、ESPHome等在HACS商店中即可安装,另外HACS也包含了很多个性化主题,按照主题中的说明安装即可。

还有Xiaomi Miot Auto,家中如果有小米智能家居设备,强烈推荐安装!

HACS > 集成 > 浏览并下载存储库 > Xiaomi Miot Auto > 下载此存储库

还在完善中的界面

目前安装的功能插件

磁盘占用情况

  • 结语:本文仅是浅显的介绍了在CM311-1a中安装Hassio,HomeAssistant的功能繁多,玩法多样,用这个盒子做家庭智能助理或许是它的最好归宿了!以上。