『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 99206|回复: 83

[基础教程] 斐讯 N1 速刷 Armbian5.88 + HomeAssistant

  [复制链接]

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
发表于 2019-7-19 18:37:09 | 显示全部楼层 |阅读模式
本帖最后由 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系统
github主页是: https://github.com/armbian 主要作者是 @igorpecovnik
直接去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-n1-image.png

我下载的是  
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分钟)


主要分两步,过程其实是很简单的,也很快,安心~

材料准备:
  • USB双公头线(老式移动硬盘有,不行直接买一根)先不要插,看下面步骤需要的时候插上
  • 8G U盘一个
  • N1盒子通电(先不要联网,因为会自动升级系统)连接HDMI到显示器,连接USB键盘,连接鼠标(仅最开始用一次)


预先下载(4个文件):
下载完成后:
  • 将下载好的platform-tools-latest-windows.zip解压到platform-tools目录(随便放哪)
  • 将N1降级image里面的3个.img文件直接解压到platform-tools目录
  • 在platform_tools目录右键“在此处打开cmd/powershell 窗口”,目录结构如下供参考


armbian-adb.png

刷机步骤:
  • N1系统降级

    • 开启adb调试
    • 启动到fastboot
    • 刷写降级用img

  • Armbian系统刷写

    • 使用Armbian镜像制作U盘启动
    • 插上U盘安装Armbian


N1系统降级

看一下你的N1盒子版本,如果是2.19可以跳过刷写降级用img的步骤,如果高于2.19,恭喜你,降级吧。确认完系统版本,请将N1盒子连上网络。

a. 开启adb调试
用鼠标点击N1官方固件版本号4次,出现"adb调试开启"即可,鼠标可以拔下后面用不到了
b. 启动到fastboot
在打开的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



c. 刷写降级用img
现在插上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系统刷写


a. 使用Armbian镜像制作U盘启动
打开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

插一句,这是@yangxuan8282贡献给Linux内核的设备文件,从v5.0-rc1开始有,感谢! (https://github.com/yangxuan8282/phicomm-n1/wiki/My-Contribution

armbian-image-flash.png
b. 插上U盘安装Armbian
将制作好的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盘,完成!
armbian-console.jpg



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
论坛用户可以选择hassio一键装机脚本,忽略下面的手工安装步骤,当然想知道每一步安装细节的同学,可以参考下面的安装步骤,也非常简单。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

现在只需要在Armbian上安装HomeAssistant(Hass.io)即可,一般有两种方法1. 使用python安装 2. 使用docker安装
从简洁易用和速刷的角度来说,我推荐使用docker安装,这次10分钟之内就能搞定~

步骤如下:
  • 安装Docker CE
  • 安装Hass.io


安装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方面的技术干货文章。

                               
登录/注册后可看大图


评分

参与人数 8金钱 +101 收起 理由
a164162007 + 1 大佬给做个最新的备份呗,!命令太多小白搞不.
goldstep + 10 大神666!
rickynow + 5 我来瀚思就为看你!
airow + 5 总结的细致全面
neroxps + 20 加精加精
+ 20 厉害了word楼主!
xieahui + 20 以前的资料不合适只能参考,这个好.
antsunzj + 20

查看全部评分

回复

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
 楼主| 发表于 2019-7-19 18:37:10 | 显示全部楼层
本帖最后由 hassio-newbie 于 2019-7-19 18:21 编辑

N1 Armbian蓝牙问题

之前在论坛发现好多人有蓝牙问题,所以我装完Armbian5.88之后也留了个心眼,希望这个最新版没有问题。结果也发现 hciconfig列出的蓝牙设备好像不太正常,Mac地址一个是00:00,一个是AA:AA,但是可以scan出附近的设备。
root@aml:~# hciconfig

hci1:   Type: Primary  Bus: SDIO

    BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0

    DOWN

    RX bytes:0 acl:0 sco:0 events:0 errors:0

    TX bytes:0 acl:0 sco:0 commands:0 errors:0

hci0:   Type: Primary  Bus: UART

    BD Address: AA:AA:AA:AA:AA:AA  ACL MTU: 1021:8  SCO MTU: 64:1

    UP RUNNING

    RX bytes:4205 acl:0 sco:0 events:113 errors:0

    TX bytes:3048 acl:0 sco:0 commands:103 errors:0

查询开机信息得到一些报错
root@aml:~# dmesg | grep -i Bluetooth

[    5.679654] Bluetooth: hci0: BCM: chip id 107

[    5.681531] Bluetooth: hci0: BCM: features 0x2f

[    5.704228] Bluetooth: hci0: BCM4345C0

[    5.704242] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000

[    5.708181] bluetooth hci0: Direct firmware load for brcm/BCM4345C0.hcd failed with error -2

[    5.708194] Bluetooth: hci0: BCM: Patch brcm/BCM4345C0.hcd not found

[    5.887355] Bluetooth: Generic Bluetooth SDIO driver ver 0.1

[ 2467.065350] Bluetooth: BNEP (Ethernet Emulation) ver 1.3

[ 2467.065443] Bluetooth: BNEP filters: protocol multicast

[ 2467.065457] Bluetooth: BNEP socket layer initialized



解决办法:安装缺少的BCM4345C0.hcd文件,重启即可

$ wget https://github.com/RPi-Distro/bluez-firmware/raw/master/broadcom/BCM4345C0.hcd
$ cp BCM4345C0.hcd /lib/firmware/brcm/
$ reboot



评分

参与人数 2金钱 +12 收起 理由
ciasdmxhxjjpd@c + 10
wwek + 2 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
 楼主| 发表于 2019-7-19 18:37:11 | 显示全部楼层
本帖最后由 hassio-newbie 于 2019-7-19 18:24 编辑

问题1:每次重启MAC地址总是变
原因:遇到这个问题的应该是插网线的,这是Armbian系统的特性,每次重启自动生成新的MAC地址,但是对于我们想要用HomeAssistant则需要固定IP地址,必须解决。

解决方法:编辑 /etc/network/interfaces 文件,设定固定的MAC地址,类似这样
source /etc/network/interfaces.d/*

# Wired adapter #1
allow-hotplug eth0
no-auto-down eth0
iface eth0 inet dhcp
   hwaddress ether fc:7c:02:e9:81:b4



问题2:文件权限变成1023:1023
原因:产生这个问题的原因是插入刷机U盘的时机,正确的操作顺序是在执行完adb reboot update之后插入一般不会有问题;如果在N1还在原生系统的界面上,识别到了你插入的刷机U盘,这时候Android系统就会改写你刷机U盘里的文件权限,这样即使Armbian刷成功,也会有文件权限问题,后续安装脚本不能正确执行。

解决办法:
  • 重做安装U盘,注意插入时机
  • 做两个一模一样的刷机U盘,假设第1个文件权限不对了,接着用第2个U盘再刷一遍,就OK了


问题3:蓝牙不能正常工作
解决办法:安装缺少的BCM4345C0.hcd文件,重启即可

$ wget https://github.com/RPi-Distro/bluez-firmware/raw/master/broadcom/BCM4345C0.hcd
$ cp BCM4345C0.hcd /lib/firmware/brcm/
$ reboot



问题4:如何重新安装新版系统,比如从5.88重装成5.91
解决办法:用新版镜像制作新的安装U盘,reboot,覆盖安装即可,注意这样旧系统里面的东西就完全没有了,该备份的先备份

问题5:如何修改系统时间,确切的说是改时区
解决办法:
$ timedatectl set-timezone 'Asia/Shanghai'

问题6:如何恢复成原版N1系统
解决办法:使用ddbr工具,将这个你的原版镜像备份复制到/ddbr目录,也可以用我的备份 链接: https://pan.baidu.com/s/1hkZY4_SuHCRYsga3rXK_Bw 提取码: j6ep
不熟悉Linux的同学可以用WinScp工具

回复

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
 楼主| 发表于 2019-7-19 18:37:12 | 显示全部楼层
占楼,备用,解决同学们可能遇到的问题
回复

使用道具 举报

6

主题

226

帖子

3723

积分

论坛元老

Rank: 8Rank: 8

积分
3723
金钱
3497
HASS币
0
发表于 2019-7-19 19:42:20 | 显示全部楼层
顶,纯干货
回复

使用道具 举报

0

主题

177

帖子

1100

积分

金牌会员

Rank: 6Rank: 6

积分
1100
金钱
923
HASS币
0
发表于 2019-7-19 20:45:17 | 显示全部楼层
本帖最后由 撸大师 于 2019-7-19 20:50 编辑

回复

使用道具 举报

16

主题

245

帖子

1191

积分

金牌会员

Rank: 6Rank: 6

积分
1191
金钱
946
HASS币
0
发表于 2019-7-19 21:06:50 | 显示全部楼层
hassio-newbie 发表于 2019-7-19 18:37
占楼,备用,解决同学们可能遇到的问题

楼主我关注你公众号了,今天也看到你的文章,有个问题请教下,我写入了U盘,也能启动,可是不能联网,插网线也不能识别
回复

使用道具 举报

0

主题

316

帖子

1732

积分

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1416
HASS币
0
发表于 2019-7-19 21:07:49 | 显示全部楼层
一口气好多的干货吃的饱饱的真舒服
回复

使用道具 举报

22

主题

656

帖子

4574

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4574
金钱
3903
HASS币
40
发表于 2019-7-19 23:25:37 | 显示全部楼层
顶,硬核玩家
回复

使用道具 举报

12

主题

327

帖子

1814

积分

论坛技术达人

积分
1814
金钱
1482
HASS币
40
发表于 2019-7-19 23:26:51 | 显示全部楼层
赞一个,楼主费心了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 14:28 , Processed in 0.229844 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表