前几年我爸问我能不能让他们房间的老电视连上网看电视剧,我灵机一动给他买了台斐讯 N1 做电视盒子。从二手市场淘了一台,收到时已经刷了 YYF 的电视系统还配备了 T1 的遥控器,我再从网上买了个 HDMI 转 AV 转换器,甚至也不用我折腾了,索性直接拿去给我爸用了。
后来由于原来的老电视实在太老又或者是转换器的问题,电视的显示信号总是不太稳定,DIY 系统也远不如客厅的智慧屏系统用的方便,在尝鲜了一段时间后,我爸就再也没用它看过电视,我一直也没有太大兴趣再去折腾。一直到最近搬家,我打算把这台搁置很久的 N1 好好利用起来,开整!
目录
- Android + CoreElec 双系统刷机
- 安装 Docker + Portainer (图形界面)
- NAS:~~CloudDrive2~~ Alist
- 私人影库:~~Jellyfin~~ Xiaoya
- 游戏机系统:EmuElec
- 智能家居:HomeAssistant
- 内网穿透
- 准备工具 {#menu_index_1}
- N1 * 1
- U 盘 * 1
- USB 双公头数据线 * 1
- HDMI 视频线 * 1
- Windows 电脑 * 1
- Android + CoreElec 双系统 {#menu_index_2}
首先是系统问题,使用的 joyo1 大佬的双系统固件。CoreElec 为 Kodi 深度优化过的基于 JeOS(Just Enough OS)的精简 Linux 系统,适用于大多数搭载 Amlogic 处理器的设备,之后的软件大部分都将会挂在 CoreElec 上,而安卓则主要作为 U 盘启动的中转。
1.1 开始刷机 {#menu_index_3}
如果是未刷过机的原版固件则需要先降级,具体步骤可以自行搜索,我这里从 YYF 系统刷其它系统直接开始线刷就好了。
- 下载 USB_Burning_Tool 刷机工具和系统固件,安装过程中会提示安装驱动
- 打开 USB_Burning_Tool,导入 img 格式的系统镜像,然后只勾选擦除 flash,点击开始,此时进入就绪状态
- 用 USB 数据线连接 N1 和电脑,断开 N1 电源,再马上插回去,在开机的瞬间会自动进入刷机模式,软件会自动开始进行烧录,耐心等待就好了
等待烧录完成后,默认进入安卓系统,可以插一个 USB 键盘进行控制,重启到 CoreElec 系统。
1.2 打开 SSH {#menu_index_4}
这个是核心,大部分东西都要通过 SSH 安装。
打开 CoreElec 设置 -> CoreElec -> 服务 -> 启用 SSH
- 安装 Docker + Portainer(可选) {#menu_index_5}
我这里 CoreElec 的官方库连接不上,所以选择了下载插件包到电脑,再通过 Windows/SMB 共享的方式,在 CoreElec 中添加局域网共享的目录,然后在安装插件的地方选择"从 ZIP 文件安装",选择共享目录中的插件,正常安装即可。
Docker 装好后就可以开始安装 Docker 的 Web 图形管理界面 Portainer,直接连接 SSH 然后使用命令:
docker run -d \
--name Portainer \
--restart=always \
-p 9000:9000/tcp \
-v /storage/portainer/data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce:latest
等待安装完成后打开浏览器输入 IP:9000 即可打开 Portainer,设置好密码后就可以开始可视化管理 Docker
CoreElec Docker 插件包下载: https://relkai.coreelec.org/?dir=addons/Amlogic-ng/21.0/arm/repository.linuxserver.docker
- NAS {#menu_index_6}
CloudDrive2 的部分内容已经弃用,现在用 Alist 代替
由于 N1 本身的容量只有 8GB,想要本地 Nas 的话只有扩容或者外置硬盘十分不美观,所以这里采用的是云盘做 Nas。这里我用的是 CloudDrive2 + 阿里云盘 的方案,主要是给私人影库做云存储。
3.1 安装 fuse3
在正式安装 CloudDrive2 之前,还需要安装 fuse3 这个依赖。
先安装包管理器entware,CoreElec 直接内置了安装脚本:
installentware
接着开始安装fuse3:
opkg install fuse3-utils
等待安装完成就好了。
3.2 CloudDrive2
这里安装 CloudDrive2 的 Docker 版本,启动命令如下:
docker run -d \
--name clouddrive \
--restart unless-stopped \
--env CLOUDDRIVE_HOME=/Config \
-v /storage/jellyfin/media:/CloudNAS:shared \
-v /storage/cloudrive:/Config \
--network host \
--pid host \
--privileged \
--device /dev/fuse:/dev/fuse \
cloudnas/clouddrive2
/storage/jellyfin/media
和 /storage/cloudrive
是映射目录,分别是作为云盘挂载目录和 CloudDrive2 配置存放目录,可以自行更改。
默认管理面板的端口是19789
,打开后注册账号进入面板,点击左上角云图标选择"阿里云盘 Open"扫码登陆。
之后就是把阿里云盘挂载到本地,这是选择使用 CloudDrive2 的主要原因,它支持把网盘内容直接挂载到本地,同样也是为了后面的私人影库做准备。
选择你的阿里云盘,点击上面一排的挂载到本地,名称这里可以自己随意更换,挂载点选择/CloudNAS
(刚在启动时映射的目录)。
此时就可以进服务器打开挂载的目录看一下是否挂载成功,如果里面有你阿里云盘的目录那就是成功了。
3.1 安装 Alist {#menu_index_7}
这部分待完善...
- 私人影库 {#menu_index_8}
Jellyfin 的部分内容已经弃用,现在用 Alist + 小雅代替
4.1 安装 Jellyfin
私人影库用的是 Jellyfin,Jellyfin 是一个开源的媒体系统,目前客户端包括 Web、Windows、MacOS、Android TV、Apple TV、Android、IOS 等。这里也可以装个小雅作为内容扩展。
还是用 Docker 安装:
docker run -d \
--name jellyfin \
--restart always \
-p 8096:8096 \
-v /storage/jellyfin/config:/config \
-v /storage/jellyfin/media:/media \
jellyfin/jellyfin
默认端口是8096
,注意这里 /storage/jellyfin/media
也是上面 CloudDrive2 的映射目录,这样就可以在 Jellyfin 中访问到 CloudDrive2 中挂载的阿里云盘文件了。
4.2 添加媒体库
打开 Jellyfin,根据提示安装然后登陆管理员账号,进入控制台添加媒体库,文件夹选择你阿里云盘存放电影的目录,剩下的根据需要设置即可。
4.1 安装小雅(Xiaoya) {#menu_index_9}
小雅同样是通过 Docker 进行安装,下面是官方给的一键安装脚本:
# bridge 模式
bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)"
# host 模式
bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)" -s host
但是如果你直接这么安装会出现报错,提示/etc
目录么没有写权限,这也是 CoreElec 系统设计的缘故,所以需要把配置文件转移到别的地方。
手动将官方安装脚本中的/etc/
全部替换成/storage/
,文末附上替换好的安装脚本,把替换好的文件上传到 N1,执行脚本:
# bridge 模式
bash -c /更新脚本.sh
# host 模式
bash -c /更新脚本.sh -s host
- 游戏机系统 EmuElec {#menu_index_10}
这里因为写教程的时候和操作间隔时间比较久也没有截图,所以只简单讲一下。
需要准备一个至少 32G 的 U 盘,然后下载人中日月大佬的整合包(文末附地址),用 balenaEtcher 把镜像烧录到 U 盘里。
这里可能会遇到的一个问题就是,32G 的整合包内容可能会超过 32G U 盘的容量,出现这个问题的话需要先对镜像进行缩容,具体方法可以看这篇文章:《80后游戏,N1刷EmuELEC变身游戏盒子,内含救砖和缩容方法适合新手》
U盘烧录成功后 N1 进入安卓系统,插上U盘,选择重启 LibreELEC 后会自动进入U盘的 EmuElec 系统。
- 智能家居 HomeAssistant {#menu_index_11}
6.1 安装 Supervisor {#menu_index_12}
首先配置跳过健康检查
docker run -d \
--name hassio_supervisor \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \
-v /storage/hassio:/data \
-e SUPERVISOR_SHARE="/storage/hassio" \
-e SUPERVISOR_NAME=hassio_supervisor \
-e HOMEASSISTANT_REPOSITORY="homeassistant/qemuarm-64-homeassistant" \
--restart unless-stopped \
homeassistant/aarch64-hassio-supervisor
6.2 安装 HomeAssistant {#menu_index_13}
docker run -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v /storage/hass:/config \
--network=host \
homeassistant/home-assistant:stable
6.3 安装 Node-red(可选) {#menu_index_14}
docker run -it \
-p 1880:1880 \
--restart=unless-stopped \
-v /storage/hass/node-red:/data \
--name mynodered \
-e TZ=Asia/Shanghai \
-u root \
nodered/node-red
安装好后打开 IP + 8123 打开 HomeAssistant。
后面关于如何将米家或者其他智能设备接入HomeAssistant 的部分内容太多了,而且网上现成的教程跟着来基本不会出现什么问题,这里就只记录安装命令。
- 内网穿透 {#menu_index_15}
此方案需要一台有公网 IP 的服务器作为中转。
7.1 服务端 {#menu_index_16}
7.1.1 配置 {#menu_index_17}
首先配置服务端,前往Releases · fatedier/frp (github.com)页面下载服务器对应架构的版本,上传到服务器后解压,会发现里面主要就四个文件,分别是frpc
开头和frps
开头的文件,frps
的两个文件就是服务端需要的文件,打开frps.toml
,可以设置 FRP 服务的连接端口,默认是 7000。
bindPort = 7000
7.1.2 启动 {#menu_index_18}
./frpc -c frps.toml
可以看到frps started successfully
表示启动成功。
7.2 客户端 {#menu_index_19}
客户端配置同理,先去下载客户端对应的 FRP 版本,然后保留frps
开头的文件即可。
7.2.1 配置 {#menu_index_20}
打开客户端配置文件frpc.toml
serverAddr = "127.0.0.1"
serverPort = 7000
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
简单说一下这几个配置项:
serverAddr
服务器IPserverPort
服务器连接端口(即frps.toml
中bindPort
的值)localPort
本地需要内网穿透的服务端口remotePort
穿透后供外网访问的端口
7.2.2 启动 {#menu_index_21}
./frpc -c frpc.toml
在客户端和服务端上均可以看到success
字样,FRP 连接成功,可以开始愉快的玩耍了。
服务端用到的bindPort
和remotePort
这两个端口需要在防火墙和服务器安全组中放行才可以正常连接。
7.3 设置后台运行和开机启动 {#menu_index_22}
7.3.1 服务端 {#menu_index_23}
我这里系统是 Debian 11,如果不同系统请参照自己系统的开机启动设置方法。
创建一个frps.service
的服务文件:
vim /etc/systemd/system/frps.service
添加以下内容,ExecStart
配置项修改为自己的 FRP 位置:
[Unit]
Description=FRP Server Daemon
After=network.target
[Service]
ExecStart=你的 FRP 路径/frps -c 你的 FRP 路径/frps.toml
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
重新加载systemd配置,设为开机启动并运行 frps 服务:
systemctl daemon-reload
systemctl enable frps.service
systemctl start frps.service
7.3.2 客户端 {#menu_index_24}
CoreElec中 etc
目录是只读的,所以用上面的方法行不通。
新建启动脚本:
vi /storage/.config/autostart.sh
加入如下内容,中间路径换成自己的 frp 目录:
#!/bin/bash
(
/storage/frp/frpc -c /storage/frp/frpc.toml
)&
重启一下或者直接启动脚本,穿透成功!
参考文档 {#menu_index_25}
CoreELEC通过entware安装tr、qb和de小白教程
N1安装Jellyfin媒体服务器-斐讯无线路由器以及其它斐迅网络设备
80后游戏,N1刷EmuELEC变身游戏盒子,内含救砖和缩容方法适合新手