What We Do
利用机顶盒的低能耗、低价格以及高性能的特点,刷入各种固件,使其应用在各种场景:
刷入安卓/当贝桌面,绕开IPTV收费机制。适用于家庭收视场景;
刷入armbian64系统,做微型服务器。适用于微服务器、PT盒子、PCDN盒子等场景。
刷入OMV系统,做NAS。适用于轻量级家庭私有云场景。
刷入EmuELEC系统,做怀旧游戏机。适用于轻量聚会游戏(怀旧)场景。
准备
中兴B860AV2.1配置
芯片:S905L 四核 2GHz
存储:1G+8G
(猜测)接口:两个 USB,1 TF卡,1 网口,1 HDMI,有AV接口,无音频接口。
无线:有Wifi,无蓝牙
硬件/工具准备
双工USB线,可自己改造可网购。
- 讲究的话可以直接购买,家里如果有富足数据线,剪断后只要两个usb公头。正常数据线有四根线,红色为正极,黑色为负极,白色、绿色为数据传输。按颜色对接即可。如果无颜色,只能借助万用表,确保两个公头的线序一致即可。(如图)
- 讲究的话可以直接购买,家里如果有富足数据线,剪断后只要两个usb公头。正常数据线有四根线,红色为正极,黑色为负极,白色、绿色为数据传输。按颜色对接即可。如果无颜色,只能借助万用表,确保两个公头的线序一致即可。(如图)
短接工具:镊子、别针等导电物件,或网购“专用免拆短接HDMI刷机S905”(型号不一定通用,注意芯片信号)
网线以及机顶盒电源线
我用的小米的万能遥控是可行的,原始的遥控器可能在刷机后不通用了
TF卡以及读卡器,TF卡最少8G。如果需要刷EmuELEC,建议选用64G的TF卡,可以刷入更全的游戏包。
软件准备
刷机软件:Amlogic USB Burning Tool,提取码:iw8h
过时硬件的驱动:某些系统如果无法识别盒子的驱动,需要下载安装Amlogic USB Driver Android [Download] - GSM USB Drivers
线刷安卓固件(带ROOT):带ROOT安卓固件,提取码:wmmh
卡刷固件烧写工具:balenaEtcher - Flash OS images to SD cards & USB drives
卡刷Armbian固件:Armbian20.10,提取码:zt7u
卡刷EmuELEC固件:emuelec4.3正式版-S905M-S905L-58G,提取码:intl
其他场景以及其他设备型号的固件自行搜索,操作原理和过程类似。
避坑预警
这些坑可能遇见,但是我没遇见。做个备份
拿到B860AV2.1盒子卡刷、Recovery、TTL写入、ADB都会锁,只能通过线刷才能成功。以上刷机方法都试过,很坑,建议大家不要去试。
线刷一般会发生以下三个错误
线刷驱动装不上,win10要关闭驱动签名;
线刷98%失败,Amlogic Usb burning tool 2.1.6.8以后的版本做了超时退出,固件太大,验证时间超过30秒就会失败,这个地方卡了最久,建议使用2.1.6这个版本;
遥控左键、电源键都触发不了线刷时,拆机断电后短接C125位置的空位。
盒子优先从TF卡启动,eMMC和TF卡都有系统从TF卡启动;
CoreELEC,wifi驱动没有;需要自己编辑红外遥控键码;
Armbian 系统长时间不使用,UI就会卡顿;
潜龙的固件有几个版本不能自动获取IP,需要手动配置。
刷入底包
以上的场景中,需要首先线刷底包,包括安卓或者当贝桌面等基于安卓系统的固件。后续才可以借助TF卡 or U盘卡刷其它系统。这里介绍刷安卓固件的步骤,当贝桌面换个固件写入即可。
短接
这个操作只需要在线刷底包的时候进行。如果买了HDMI口的免拆工具,直接插上就行。如果型号不匹配或者不具备条件,参考以下方法短接电阻。注意B860AV2.1的短接入口为C125,后面带字母的可能需要短接的电阻不一样,例如B860AV2.1-A是短接C128。
短接工具可以选回形针、镊子,甚至你可以选择焊上然后再吸锡器去除焊接点。
刷机
打开USB Burning Tool,左上角点击文件加载烧录包,之前下载的压缩包记得解压,用的是.img后缀的文件。选中刷机包后,把软件右侧所有能选中的勾都去掉,否则可能变砖。
选择刷安卓底包用来刷其他系统的需要勾选刷写Boot Loader,以此来完成写入Emmc的操作。
盒子不要通电。把双头USB一端连接到盒子的挨着网线的那个USB插孔,另一端连接上电脑的USB接口。
这里得特殊说一下,因为盒子USB插孔选不对,电脑也不识别。正常情况下,盒子连接上电脑,指示灯会点亮。如果不亮,针对这两种情况,可以用以下步骤排除:
若先插USB(盒子指示灯不亮),再短接C125,再插盒子电源(指示灯亮),电脑识别,松开短接,开始刷机。
若先插USB(盒子指示灯亮)(再拔掉USB),则先短接C125,再插USB,再插盒子电源,电脑识别,松开短接,开始刷机。
所以选择第一种情况。插机箱的USB,盒子先不亮这种。(如果你用的是笔记本,那就得判断用灯是先亮还是后亮的USB口了)此时,盒子跟电脑已经用USB线连接,盒子没有插电源。用短接工具把盒子电路板上的C125处两个针脚连接上。别松手,把盒子电源插上。
这时候USB Burning Tool工具会提示“连接成功”。
然后点击开始等待写入完成即可。这里埋点记录写入过程中可能存在的BUG。一般来说,重启或者重新尝试。
刷机在4% 刷写u-boot的时候一定不要松开。等到7%开始格式化EMMC分区的时候就可以松开了。中途会失败,在点击开始即可。
后续
底包刷入很简单,后续接入显示器,借助遥控器(Maybe需要重新编译,但我有的时候可以用小米的万能遥控)
刷入armbian系统
如果是高安版本就不要折腾了,高安可以线刷(固件与非高安不通用)但不能ROOT,无法启动和刷入Armbian
准备
这一步建立在刷入带root权限的安卓系统的基础上
需要准备rebootupdate.apk),如果原始网站不可用,可以选择百度云-rebootupdate.apk,提取码:1f8l 。用来完成root权限的写入。点击刚才装的软件,选择首次运行。允许root执行。此时立刻插入U盘到USB2口。SD卡的话可以在启动机顶盒前就插入;
使用BalenaEtcher将armbian固件写入TF卡(U盘可能出错)
刷写过程
将armbian固件成功写入之后,修改/boot分区中的
/extlinux/exlinux.conf
文件:在rk3399那两句前添加#
,选择s905x-p212.dtb
(去掉#即可),其他非aml可删除:将/boot分区中文件
uboot-s905x...
修改为uboot.ext
从TF卡启动并刷入Emmc
可以TF卡启动,也可以刷入Emmc。插了TF卡的话默认使用TF卡启动,刷入Emmc方便后续刷OMV再挂载硬盘。不刷的话启动方法更灵活一些。
打开rebootupdate,待安卓完全关闭后,重启前,插入SD卡,防止文件污染
进入armbian(sd卡)系统,设置用户名和密码等
cd /boot
,输入ls
列出文件目录删除
System....Infmation
文件夹,使用rm -rf 'System....Infmation'
(带引号),如有dir等安卓文件,一并删除在root文件夹中,有
install-aml.sh
,写入emmc(不要使用是s905-emmc)赋予权限
chmod 755 install-aml.sh
./install-aml.sh
等待刷写完成,重启即可。
成功刷入armbian,并写入emmc:
此时即可进入arm系统开始玩耍啦~
TIPS
使用SSH在内网环境下登录系统。可以用端口转发+DDNS,利用软路由实现公网访问。
首次进入会让你重新设置密码;如果开机一直显示reset high-speed usb device number 2 using xhci-hcd
说明设备USB供电不足,建议换一个U盘(USB2.0)或者直接使用SD卡
刷入OMV系统
自动安装
使用SSH登入刷了armbian系统的机顶盒,输入指令
armbian-config
选择自动安装:
- 方向键移到Software⇨回车
- 方向键移到Softy⇨回车
- 方向键移到OMV⇨ 空格键选择⇨回车确定
- 等待安装完成
手动安装
手动安装的原因是自动安装容易出错,下载进度缓慢
添加OMV软件源
1
2echo "deb http://packages.openmediavault.org/public arrakis main" > /etc/apt/sources.list.d/openmediavault.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7E7A6C592EF35D13 24863F0C716B980B设置环境变量
1
2
3export LANG=C
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none开始安装OMV
1
2
3apt update
apt install openmediavault-keyring postfix
apt install openmediavault
耐心等待安装完成即可。
TIPS
安装出现错误后,输入如下命令即可安装成功:
apt --fix-broken install
浏览器输入机顶盒的
IP
即可进入OMV系统,其中默认用户名为admin
,密码为openmediavault
基础设置
共享移动硬盘
注意: NFS 只是一小众的文件共亨协议,应用的不多,但苹果系统下应用很广,建议还是用SMB协议吧。通用性较强些。
01 挂载移动硬盘
- 插上移动硬盘接到n1的usb口
OMV不支持EXT2,3,extFat,所以最好用ext4或NTFS
- 存储器→文件系统
- 选择移动硬盘→点击[挂载]→保存并应用
02 添加移动硬盘中需要共享的文件夹
- 访问权限管理→点击[共享文件夹]
- 点击[添加]
名称:share
设备:选择移动硬盘
路径:点击选择,/表示共享整个移动硬盘
- 点击[保存]
03 新建用户
- 访问权限管理->用户->点[添加]
名称 注意不能为root
密码
确认密码
用户组 勾选users
04 设置新建用户对文件夹的权限
- 点击新建的用户
- 点击[特权]→勾选[读和写]
- 保存并应用
05 通过smb把共享文件夹共享出去
- [服务]→[SMB/CIFS]
- [设置]→常规设置→勾选[启用]→保存并应用
- [共享]→点击[添加]
共享文件夹:选择 share
- 保存并应用
之后就可以去[我的电脑]->[网络]中看到 名为“AML”的磁盘,输入刚创建的用户名和密码就可以登入
06 设置移动硬盘待机
- 存储器→磁盘
- 选择 移动硬盘→点击[编辑]
高级电源管理:1-待机状态时最低功耗
自动声音管理:禁用
停转时间:20分钟
写入缓存:勾选 [开启写入缓存]
安装配置transmission以及syncthing
Omv5支持的插件还很少,所以transmission和syncthing只能通过
armbian-config
命令安装。
- SSH登陆后
armbian-config
,[Software] → [Softy] → 空格选择上[Transmission、Syncthing]→ 回车确认安装
Transmission
修改账号密码:
- 文件路径
vim /etc/transmission-daemon/settings.json
# rpc-username rpc-password
都填明文;download-dir为
下载路径。:wq!
保存并退出vimsystemctl reload transmission-daemon
使改动生效
- 文件路径
换UI
- 直接参考,傻瓜式更换: Github
Syncthing基础配置
- 打开UI界面,http://{omv-ip}:8384/,右上角操作,显示id
- 手机安装Syncthing app(开源项目地址,安卓apk可以通过F-Droid下载),设备,有上角+,输入上述id,过一会,网页显示有设备请求连接,连接即可;
- 手机上添加需要备份的文件夹,版本控制无,共享给远程已连接的omv设备;
- WEB UI上看到手机共享的文件,选择一个路径保存,版本控制选回收站,参数“在该时间后清除”填0
- 有时候,手机清理了一下,会发生
folder markermissing
错误,在手机需要备份的目录下创建空白文件夹.stfolder
,并配置手机清理白名单。
OMV外网访问及同步
DDNS + 端口转发
组网拓扑暂不细述,有两种思路:
光猫桥接+R2S软路拨号+外接omv:
- 确认对应传输端口,在R2S软路由侧设置端口转发,监听、转发并开放对应端口(防火墙):
- 一般是在OMV Web UI中设置了相应传输协议的端口,但需要注意的是例如FTP的21端口为发送命令端口,主动模式下的FTP的传输文件端口是
命令端口号-1
;被动传输文件端口随机,其他的协议端口自行查询。 - Syncthing:在WEB UI(http://{omv-ip}:8384/)中检查连接记录(默认的dynamic地址的端口是否为22000),转发开放22000和48149端口
- 一般是在OMV Web UI中设置了相应传输协议的端口,但需要注意的是例如FTP的21端口为发送命令端口,主动模式下的FTP的传输文件端口是
通过R2S的DDNS_ip以及转发的端口号完成连接
- 确认对应传输端口,在R2S软路由侧设置端口转发,监听、转发并开放对应端口(防火墙):
光猫桥接+R2S拨号+交换机+omv或者光猫拨号+omv:
- 主要需要让omv直接获取到公网ip,然后在omv中启用ddns的docker实现外网访问。
- 这种实现方式最优,但要么牺牲组网可拓展性要么牺牲钱包买交换机。
Syncthing外网访问
打开上述下载安装的手机app:Syncthing,进行相关设置。无需端口转发以及DDNS之类的操作。此项目基于GO语言开发,类似torrent协议但只存储在个人设备上。须要注意以下几点:
一定一定要确认好自己的硬盘挂载路径,否则默认同步到EMMC中,很快就占满空间了。方法可参考:输入
mount -l
和挂载项对比,如图所示:然后在OMV端的Syncthing UI配置OMV端同步文件夹,可以看到是正在同步状态:
做好id和标签的规划和命名以方便管理,建议在OMV的Syncthing UI和手机端均勾选上自动接受,以免后续同步的时候需要手动点击同意创建文件夹。同时注意勾选相关权限和共享文件夹以保证同步可达性。
刷入EmuELEC系统
刷入安卓底包后用SD卡完成卡刷,具体步骤类似以上,暂时不再赘述了,图的话有兴趣了补上。