本帖最后由 hassio-newbie 于 2019-7-30 20:55 编辑
起因
最近为了薅羊毛上了拼多多的车,一发不可收拾,相继入了DC1插排,TC1插座盒,N1盒子。DC1和TC1官方App因为众所周知的原因都不能用了,幸好有几位大神进行了硬件研究并且自制固件,得以起死回生,现在可以通过刷固件的方式接入Hass,信价比相当的高,就是要拆机有点费力气,刷插排主要是follow别人的教程步骤,回头可以记录个流水账分享。斐讯家的产品,堆料做工都还是扎实的,好好的做产品,搞啥0元购呢...
而N1盒子的刷机,在强大的恩山论坛有不少旨在详细的教程,但也有各种问题,还有人做了包含HA的整个镜像,但是这个可维护性不行,论坛里大多还设了回复可见之类的,太水不喜欢。我也是看了半天帖子,最终还是没有找到合适的教程可以follow,决定还是自己整理最靠谱,而且是安装较新的Armbian5.88. 这个版本还没人写过,各种旧的教程要修改这个修改那个,有点过时了不建议照着一步步操作,不过那些旧贴还是有价值的,至少让我明白了大概的刷机步骤。
当然希望你看这篇文章的时候,也要抱着怀疑的态度,多方参考,实践的时候才能一次成功。
再强调一下,如果你是小白用户,不熟悉Linux,不建议使用N1安装HomeAssistant!!!那用什么?首选树莓派3B+.
刷机教程计划分成两部分写
(1) 在 N1 上刷 Armbian5.88 (注意:公众号发布于2019-06-07,论坛文章发布于2019-07-19,目前最新的版本是5.91,流程类似,新刷机的同学可以选择较新版本 )
(2) 基于Armbian系统安装HomeAssistant
Q&A
Armbian是什么?
Armbian是轻量级的Debian系统和为ARM开发板专门发行并重新编译的Debian系统
直接去armbian官网的找下载的话,你会发现提供的是对应不同硬件的下载链接,对应各种Pi型号主板,这里是找不到N1的。
N1能装的版本是Armbian forum里面@balbes150大神为Amlogic S9xxx系列制作好的系统镜像,这就要说到N1的硬件用的Amlogic S905D 64-bit 4-Core的CPU. 所以我就明白了各种安装教程的第一手资料其实来源于Armbian forum.
系统镜像的下载地址:
https://yadi.sk/d/pHxaRAs-tZiei
https://mega.nz/#F!j9QSDQSQ!6WpasOlbZYIInfw6yo4phQ
我下载的是
Armbian_5.88_Aml-s905_Ubuntu_bionic_default_5.1.0_20190530.img.xz
5.88: armbian系统版本
Aml-s905: CPU型号,这个系列多用于各种电视盒子
Ubuntu_bionic: ubuntu 18.04
5.1.0: Linux内核版本号
desktop: 图形界面版 (这里我没有选有_desktop的版本,做服务器用不需要)
刷机流程概述(整个过程约20分钟)
主要分两步,过程其实是很简单的,也很快,安心~
材料准备:
预先下载(4个文件):
下载完成后:
将下载好的platform-tools-latest-windows.zip解压到platform-tools目录(随便放哪)
将N1降级image里面的3个.img文件直接解压到platform-tools目录
在platform_tools目录右键“在此处打开cmd/powershell 窗口”,目录结构如下供参考
刷机步骤:
N1系统降级
开启adb调试
启动到fastboot
刷写降级用img
Armbian系统刷写
使用Armbian镜像制作U盘启动
插上U盘安装Armbian
N1系统降级
看一下你的N1盒子版本,如果是2.19可以跳过刷写降级用img的步骤,如果高于2.19,恭喜你,降级吧。确认完系统版本,请将N1盒子连上网络。
用鼠标点击N1官方固件版本号4次,出现"adb调试开启"即可,鼠标可以拔下后面用不到了
在打开的cmd或者powershell窗口,执行
> adb connect N1_IP:5555
> adb shell reboot fastboot
下面是我执行成功的例子
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>adb connect 192.168.2.114:5555
connected to 192.168.2.114:5555
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>adb shell reboot fastboot
复制代码
现在插上USB双公头线,将N1与电脑连接,注意使用距离HDMI接口近的USB口,然后打开Windows设备管理器,等待识别出ADB设备,如果有个黄色小感叹号,需要右键更新驱动程序。
还是在刚才的命令行,执行 > fastboot devices ,正常的话会显示成功的N1设备序列号,下面是我执行成功的例子,可以看到我也稍等了一会儿才成功,过程中间更新了一下驱动
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot devices
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot devices
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot devices
复制代码
接着依次执行降级img的刷写,照旧下面部分是成功输出的例子
> fastboot flash boot boot.img
> fastboot flash bootloader bootloader.img
> fastboot flash recovery recovery.img
成功之后,就可以重启了
> fastboot reboot
重启之后,USB双公头线也可以取下。
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot flash boot boot.img
Sending 'boot' (13858 KB) OKAY [ 0.646s]
Writing 'boot' OKAY [ 0.509s]
Finished. Total time: 1.269s
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot flash bootloader bootloader.img
Sending 'bootloader' (656 KB) OKAY [ 0.038s]
Writing 'bootloader' OKAY [ 0.038s]
Finished. Total time: 0.122s
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot flash recovery recovery.img
Sending 'recovery' (17866 KB) OKAY [ 0.826s]
Writing 'recovery' OKAY [ 0.757s]
Finished. Total time: 1.696s
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>fastboot reboot
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.005s
复制代码
Armbian系统刷写
打开balenaEtcher,加载 “Armbian_5.88_Aml-s905_Ubuntu_bionic_default_5.1.0_20190530.img.xz”,选择U盘,然后Flash!简单到爆有木有
完成之后,拔下U盘再重新插回Windows,注意不要格式化
修改BOOT分区 uEnv.ini 第一行,改成下面这样就OK了
dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb
将制作好的U盘插到N1距离HDMI近的USB口,然后还是在Windows上那个打开的命令行里面再>adb connect 一下N1,然后执行>adb reboot update 进入更新模式
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>adb connect 192.168.2.114:5555
already connected to 192.168.2.114:5555
C:\Users\hao\Desktop\TC1_DC1\N1\platform-tools>adb reboot update
复制代码
这时候N1盒子就会重启,进入U盘的Linux系统,默认的帐号/密码是root/1234,根据提示你需要重新设置密码,创建一个新用户,然后你可以运行armbian-config (5.88没有,5.89开始才有) 使用基于命令行的类图形界面,完成配置网络,首先> ddbr,然后选 b,备份!!!最后一步是安装到emmc系统,这样U盘就不需要一直插着了。
在N1上执行 ./install.sh 完成最后一步安装,完成后reboot,拔掉U盘,完成!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
论坛用户可以选择hassio一键装机脚本,忽略下面的手工安装步骤,当然想知道每一步安装细节的同学,可以参考下面的安装步骤,也非常简单。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
现在只需要在Armbian上安装HomeAssistant(Hass.io)即可,一般有两种方法1. 使用python安装 2. 使用docker安装
从简洁易用和速刷的角度来说,我推荐使用docker安装,这次10分钟之内就能搞定~
步骤如下:
安装Docker CE
1. 安装Docker官方GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
复制代码
2. 安装Docker repository
还是参考N1的硬件, CPU Amlogic S905D ARMv8-A Cortex-A53,这里aarch64 和 amd64 对于我们安装docker来说暂且先认为是一回事。
$ uname -m
aarch64
$ sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
复制代码
3. 安装Docker CE
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
复制代码
4. 验证Docker是否安装成功,成功的话你会看到类似下面的输出
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
3b4173355427: Pull complete
Digest: sha256:0e11c388b664df8a27a901dce21eb89f11d8292f7fca1b3e3c4321bf7897bffe
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
复制代码
安装Hass.io
1. 安装依赖包
sudo apt install jq curl dbus avahi-daemon apparmor
复制代码
2. 使用hassio-installer安装Hass.io
可以指定两个参数
-d /usr/share/hassio/ 默认值,hassio的data目录,回头可以samba share出来直接编辑
-m qemuarm-64, N1指定这个就好,qemuarm可能也行,没试
$ curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | bash -s -- -m qemuarm-64
[Info] Install supervisor Docker container
[Info] Install supervisor startup scripts
Created symlink /etc/systemd/system/multi-user.target.wants/hassio-supervisor.service -> /etc/systemd/system/hassio-supervisor.service.
[Info] Run Hass.io
复制代码
大概2-3分钟之后,容器启动完成,就能打开HomeAssistant的页面,http://你的_N1_IP:8123
也可以同时用docker查询容器的运行状态,运行成功的容器会类似下面这样
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54c6c19536bd homeassistant/aarch64-hassio-supervisor "python3 -m hassio" 6 seconds ago Up 3 seconds hassio_supervisor
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95017553839b homeassistant/qemuarm-64-homeassistant "/usr/bin/entry.sh" 40 seconds ago Up 38 seconds homeassistant
54c6c19536bd homeassistant/aarch64-hassio-supervisor "python3 -m hassio" About a minute ago Up About a minute hassio_supervisor
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d68deb1fc1de homeassistant/qemuarm-64-homeassistant "/bin/entry.sh pytho…" 2 minutes ago Up 2 minutes homeassistant
54c6c19536bd homeassistant/aarch64-hassio-supervisor "python3 -m hassio" 5 minutes ago Up 5 minutes hassio_supervisor
复制代码
参考官方文档:
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-repository
https://github.com/home-assistant/hassio-installer
最后欢迎大家关注我的公众号 “Jarvis诞生记”,有一些智能家居DIY方面的技术干货文章。