安装 Docker-CE准备:
1.U盘
2.刷机工具《balenaEtcher》下载地址:https://www.balena.io/etcher
3.armbian镜像(镜像下载地址:https://github.com/ophub/amlogic-s9xxx-armbian/tags),有jammy(Ubuntu最新发行版代号)或bullseye(Debian最新发行版代号)两个版本,至于这两个版本的区别,请看自行搜索,这两个版本都可以食用,我选的Armbian_23.04.0_amlogic_s905l3a_bullseye_5.15.107_server_2023.04.14.img.gz
s905l3a的6.1.12版本据说兼容性问题较多,保守起见还是推荐食用5.15.xx版本。注意以下是基于bulleyes的操作。
4、电脑插上U盘,打开balenaEtcher,拖拽下载好的armbian镜像到Selectimage
选择插入的U盘
点击Fiash等待结束。
5、将烧录好镜像的U盘插上电脑,打开boot文件夹下的uEnv.txt文件,将FTD=一栏后的dtb文件修改成:/dtb/amlogic/meson-g12a-s905l3a-m401a.dtb,如图:
(这个dtb文件相当于电脑的BIOS,m401a的硬件信息都依赖次文件调用)
保存退出。
6、接下来还有实战中需要的windows系统必备的工具:
(1)PuTTY(下载地址:https://://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)根据自己系统下载并安装备用。
(2)WinSCP(下载地址:https://github.com/winscp/winscp/tags)正式版下载解压并安装。
PuTTY只要填写IP点Open就能SSH连接盒子,WinSCP需要填写IP及armbian的用户名和密码
安装
1.进盒子查看ip地址,电脑上安装《开心电视助手4.0版by剑心1》,软件下载网站:www.kaixindianshi.com。在我编辑这篇帖子的时候开心电视网的盒子助手变成无法下载的状况(可以浏览器搜索进行下载),解压后打开Debug目录下的YesStbToolV4D.exe 电视助手主手
在设备ip地址一栏填上之前在盒子系统中查看的ip点击连接,然后转到调试页面:
点击晶晨芯片选项卡中的,从U盘/SD卡启,不要插U盘,(看自己选择是否重新启动后选择恢复出厂设置,有可能会因为如果不恢复出厂设置,在U盘启动armbian的时候会遇到奇奇怪怪的问题)。恢复出厂后插上U盘重启,准备开战了。
2.
1)重启,
在出现电视开机画面(我的是华为鸿蒙OS图片)后不出意外你会看见满屏的彩虹竖条,然后就是一顿跑码,最后在输入密码界面停下,接下来
2)登录设定密码2次(1234),再选1,ctrl+c退出,记下IP地址,敲reboot重启
3)电脑使用PuTTY (64-bit)输入IP地址登录armbian,用户:root 密码:1234
4)电脑打开WinSCP并登录armbian,用户和密码同上
3.winscp打开 /etc/apt/sources.list 文件,或putty执行命令:nano /etc/apt/sources.list (用此命令需要先CTRL+K删除原有源地址,输入下面源后ctrl+X选Y回车保存退出)更换源:
deb https://mirrors.aliyun.com/debian stable main contrib non-free
deb https://mirrors.aliyun.com/debian stable-updates main contrib non-free
4.更新源并安装蓝牙文件:将以下命令复制到PuTTY中运行
apt update && apt upgrade -y && apt install -y apt-transport-https apparmor udisks2 gpiod lrzsz avahi-daemon bluez bluetooth pulseaudio-module-bluetooth bluez-firmware
5.修复蓝牙(不修复的可以直接跳至第13步)
PS. 此处根据Xcray大佬的编译的文件,蓝牙功能仅限设备通讯,如果需要通过蓝牙播放音乐,需要修改rtl8761b_config,Xcray大佬已在原帖中提供,请通过底部的参考文章进一步了解。
用WinSCP查看/lib/firmware/rtlbt目录,确保其中有rtl8761b_fw文件,如果没有,到/lib/firmware/rtl_bt/下面找那个带.bin后缀的,拷过来改名,或者在PuTTY链接也行:链接命令如下
ln -s /lib/firmware/rtl_bt/rtl8761b_fw.bin /lib/firmware/rtlbt/rtl8761b_fw
6.PuTTY执行以下命令,补全配置文件:
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/
7.将rtk_hciattach文件通过winscp软件拷贝至/usr/bin目录,并在PuTTY中增加可执行权限,命令如下:
chmod 755 /usr/bin/rtk_hciattach
8.添加开机蓝牙重置,编辑/etc/rc.local文件,在exit0之前加入代码:
#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
9. reboot重启
执行以下命令,检查蓝牙是否启动:
systemctl status bluetooth
hciconfig
10.编辑/etc/systemd/system/bluetooth.target.wants/bluetooth.service
行尾添加参数
--noplugin=sap
12、禁止升级内核时重新写u-boot和bootloader,这个写入毫无意义,并且有很大风险编辑/etc/ophub-release,把MAINLINE_UBOOT这一行改成:
MAINLINE_UBOOT=''
13.利用好u盘剩余空间,执行
armbian-tf
选e,按回车
14.安装Hassio
1)
2)安装Docker ce,因为Hassio依赖Docker
安装基础环境
apt install \
apparmor \
jq \
wget \
curl \
udisks2 \
libglib2.0-bin \
network-manager \
dbus \
lsb-release \
systemd-journal-remote -y
安装 Docker-CE
curl -fsSL get.docker.com | sh
//
若不成功,换下面这种方法安装docker,这是从armbian拉取的docker,不能安装supervisor但可以安装homeassistant
首先输入“apt update”更新下软件,然后如图示输入“armbian-config”,依次选择“software—softy—docker”,用空格选中docker,然后按回车install docker。等它进度条走完,docker就装好了,在命令行输入“docker version”就可以看到docker版本了。
15。安装Hassio
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.4.2/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb
️注意!!
安装前请仔细阅读HA Supervised的系统要求:
https://github.com/home-assistant/architecture/blob/master/adr/0014-home-assistant-supervised.md
受支持的HA Supervised系统有诸多要求,如:
必须安装在原生Debian Linux Debian 11 aka Bullseye (no derivatives) 上
除hass外无其他软件包等
在非受支持的系统中安装Home Assistant Supervised,会有启动警告,但仍可使用插件安装、系统备份等原有功能。
supervised-installer 自1.4.0 版本起阻止了不受支持系统的安装。用户若在非HA支持的发行版(即非原生Debian 11,如Deepin、Ubuntu或Raspberry Pi OS 等)上安装Home Assistant Supervised时,请选择supervised-installer的1.3.1或更早的版本,系统升级不受限制。
由于ipv4不能ping通checkline.homeassisitant,io,所以需要将盒子的ipv6开启,
ipv6配置
启动配置ipv6 (其实默认也是启动的)
sudo vim /etc/sysctl.conf
#开启
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
#通常无需转发 但如果使用 docker wireguard之类的或是路由器 需要开启
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.all.forwarding = 0
开机无法获取ip请参考电视盒子刷armbian开机获取不到ip解决方案_armbian获取不到ip-CSDN博客
16.选择qemuarm-64
安装时间比较长,可以用魔法,如果有的话。supervisor版本会自动下载homeassistant 不需要再另外拉取;
17.
运行docker images看看都有啥镜像下载好了,或者docker ps看看哪些容器起来了,
直到那个ghcr.io/home-assistant/qemuarm-64-homeassistant:2023.xx.xx起来,(1.xxG)才算安装完成。
告警处理
当你访问如下地址
http://your.ip.address.here:4357
会提示
Supervisor:Connected
Supported:Unsupported
Healthy: Healthy
想让Supported显示Supported可以参考如下方法解决该问题。
步骤:编辑/boot/uEnv.txt,在APPEND=...的最后加上:
apparmor=1 security=apparmor systemd.unified_cgroup_hierarchy=false
- 编辑/etc/os-release,把第一行PRETTY_NAME=...改为:
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
- 重启系统
注意:如果不想让Healthy显示为Unhealthy 不要在该系统上再启用和 home assistant 不相关的容器,否则会使Healthy显示为Unhealthy。例如你在该系统下安装管理Docker 的 Portainer 后,Healthy就会显示为Unhealthy。
安装portainer
docker run -d --restart=always --name=portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer:linux-arm64
18.紧接着就是安装HACS商店
HACS(Home Assistant Community Store)即Home Assistant官方的插件商店,提供各种设备集成、前端装饰等的下载,是Home Assistant必备的插件。
1)安装HACS可以通过 https://github.com/hacs/integration/releases/ 下载离线包,解压后将hacs文件夹通过FTP软件拷贝至/usr/share/Hassio/homeassistant/custom_components(没有此路径的话新建一个)。
2)或者在SSH中输入以下命令一键安装。
wget -O - https://get.hacs.xyz | bash -
然后在后台界面选择“配置”-“系统”,右上角点击“重新启动”。
重启后,在“配置”-“设备与服务”中添加集成。
此界面全部勾选,点提交。
复制下方代码,打开上面的Github链接。(如果没有Github账号就注册一个)
在弹出的页面粘贴代码。
点击Authorize hacs即可。
回到之前页面,等待片刻,HACS安装完成,此时,左边栏就会出现HACS的选项。
HACS安装完成
至此,Home Assistant的基础配置基本完成。
19、hacs加速(cdn加速)
介绍了如何安装HACS,以及授权GitHub账号等相关操作,在一顿操作过后,结果发现,不管咋整,在安装组件的时候,总是加载转圈圈,不知道啥时候是个头?到最后总是会莫名其妙的失败。
毫无意外,出现这种情况,肯定是网络的锅
(路由器:看我干啥,不关我事.jpg)
既然出了这种事情,总得要解决啊?
所以本期的主要内容就是介绍如何解决HACS下载安装组件困难的问题
既然要解决问题,所以必须得明白问题的本质是什么?
HACS安装组件的核心功能就是通过调用GitHub的api接口获取到组件的文件真实地址,然后根据对应的类型下载到对应的文件夹中
所以问题出在下载文件这个环节,因为网络问题,特别是下载大文件的情况下,极其容易出现下载超时,然后直接就异常失败了
面对这个问题,我们首先需要寻找是否有国内的代理源,以及相关的替换解决方案
关于这方面的解决方案当然有很多,但是受限于技术方案的难易度和使用成本,一般不怎么稳定,对于不熟悉的用户来说,可能就有点困难,
还有就是毕竟是白嫖别人的服务,可能piao着piao着,服务就停止了
鉴于以上种种大坑,我也只能在坑中找到那些还算比较靠谱的解决方案推荐给大家
其中一种比较稳定的解决方案是使用CDN的方式
jsDelivr是一个免费、开源的加速CDN公共服务,托管了许多大大小小的项目,可加速访问托管的项目目录或图片资源
官方网站:https://www.jsdelivr.com/
关于如何利用好jsDelivr请看官方文档,本篇内容着重介绍在HACS中的使用
整体操作非常的简单,分三步走
- 找到hacs下载文件的方法
- 替换文件下载地址
- 重启homeassistan
首先我们找到hacs的执行下载方法的模块文件
文件路径:custom_components/hacs/ base.py 修改download函数
然后找到下载方法的名称:async_download_file,你可以使用快捷键Ctrl+F搜索,然后将以下内容放到
self.log.debug("Downloading %s", url) 下面,请仔细看图
# 显示原始下载地址
print(url)
# 源文件
if "https://raw.githubusercontent.com" in url:
arr = url.replace("https://raw.githubusercontent.com/", "").split("/")
arr[1] = arr[1] + "@" + arr[2]
arr[2] = ""
_list = ["https://cdn.jsdelivr.net/gh"]
for item in arr:
if item != "":
_list.append(item)
url = "/".join(_list)
self.log.debug("下载链接:%s", url)
# 发布文件
if "https://github.com/" in url and "/releases/download/" in url:
url = url.replace('https://github.com/', 'https://hub.fastgit.org/')
# 修改后的下载地址
print(url)
在重启之前,请千万认真非常仔细的瞄一瞄,格式是否正确,python对于缩进格式非常的严格,多一个或少一个空格可能就跑不起来,所以请万分注意
print方法是为了在终端上显示下载的文件地址,这样可以很直观的看到下载了哪些文件
重启完成之后,接下来就到了下载组件的时候,咱们首先安装一个小米设备集成组件试试水
点击下载后,我们就在终端中看到每一个下载的文件信息,然后在自定义组件目录中发现已经下载完成的文件了
选择主分支版本的下载方式有所不同,需要注意
静ip
nano /etc/network/interfaces
source /etc/network/interfaces.d/*
#auto lo
#iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 114.114.114.114 8.8.4.4