玩客云刷Armbian系统,装Docker、Portainer、Home Assistant和qBittorrent教程

前几年在京东抢到了玩客云没转手卖掉赚差价,而是选择自己挖链克,然后就亏成狗了。这些天研究Home Assistant的时候发现玩客云可以刷Armbian系统之后安装Home Assistant,所以就有了本文。

文章介绍

玩客云一代(好像现在最新的是3代)机器,刷Armbian系统,内核版本5.10.68-aml-s812。

安装了Nginx、Docker、Portainer、Home Assistant和qBittorrent。

分别有啥用处?

Nginx用来给玩客云做了一个内网导航,把安装的程序都直接弄网页上,方便进入,如下图:

Docker是一个开放源代码软件,是一个开放平台,用于开发应用、交付应用、运行应用。你可以简单理解成一个非常方便好用的虚拟机。

Portainer是一个图形化管理Docker的程序,管理Docker镜像什么的就更简单了。

Home Assistant是用来管理家里智能家居的开源程序,我主要也是为了装它才研究的本文。

qBittorrent是一款跨平台的自由BitTorrent客户端,可以让玩客云24小时挂机下载。

用到的工具:

  1. 双头USB线一根(买或者自己做,网上有教程);
  2. 电脑一台;
  3. 镊子或者别针(或者其他导电的东西,用来短接主板);
  4. 螺丝刀,电吹风(加热背胶更好撕);
  5. U盘一个(刷机和扩展玩客云硬盘容量都用得上);
  6. 下面这些链接里面的资源下载备用。

刷机固件和软件:

一共3个链接,你可以所有东西都下,也可以选择性下载链接里面的以下几个文件:

  1. USB_Burning_Tool_v2.1.3.zip(资源一里)
  2. usb-image-tool.rar(资源一里)
  3. bullseye.tar.gz(资源二)
  4. 首选底包.img(资源三里)

资源一:

链接:https://pan.baidu.com/s/1BNwv61YDj3b4r3IjmJjheA
提取码:6666

资源二:

链接: https://pan.baidu.com/s/1dw99gWcDuvCbUHdlUQec5A  密码: shpq

上面链接这个bullseye.tar.gz是奶爸最终刷入并且使用的固件,下载后解压,最终名字为Armbian_20.12_Aml-s812_bullseye_dev_5.10.68.img

资源三:

https://cloud.189.cn/t/b6Jfiy6jqe6r(访问码:31jo)

参考资料

留下深刻印象的参考资料主要是下面这几篇:

  1. 你的需求,也许30块就能搞定【Powersee】(视频,新手推荐观看,一次性搞明白)
  2. 玩客云 debian bullseye kernel 5.10.68 (最终采用的固件包)
  3. 玩客云Armbian_20.11_Aml-s812_5.9.0-支持USB-WIFI最终完美版.img.xz (用了几天也还不错的固件)

拆机教程

拆机这部分可以直接参考Powersee分享的视频,更加直观。

https://www.bilibili.com/video/BV1sU4y1s7Yu?spm_id_from=333.999.0.0

撬开之后,螺丝刀拆下螺丝,然后拿出主板就行了。

刷机过程

主板拆出来之后,双头USB线一头接电脑,另外一头插靠近HDMI边的USB口,电源备用。

1、刷入系统底包,让玩客云从U盘启动

电脑打开USB_Burning_Tool,选择底包镜像,然后点击开始。(系统底包有两个,作用都是一样的,不同的固件可能不同的底包有不同的疗效

玩客云主板这边,根据玩客云购买时间不同,分为了不同的主板型号,我这里是1.0的版本,其他版本的短接方法参见下文:

https://powersee.github.io/2021/01/wankeyun-server/

短接这里的时候,打开玩客云的电源(建议用带有开关的插座操作,或者喊一个人帮你插电源,不然短接不好操作)。

短接成功后,系统识别到玩客云会自动开始刷机,等到刷机完毕后拔掉USB线,关电源后放旁边备用。

2、写入固件到U盘。

用USB Image Tool或者USBWriter,把下载的固件包写入到U盘里面。

固件包可以自己随便刷,用的不舒服就再刷底包,然后刷另外的固件。下面的教程奶爸以Armbian_20.12_Aml-s812_bullseye_dev_5.10.68.img为例。

刷完后,把U盘插入靠近网线的USB口,然后插上电源开机。

如果刷机失败,写入底包后换U盘重来,有些U盘也刷不成功。

3、把固件数据写入到emmc(就是玩客云自带的存储里面)

正常情况,等几分钟就可以通过U盘成功启动玩客云,你可以在路由器里面查看到玩客云的IP(不同固件刷出来在路由器里面看到的主机名不一样的,我们这个固件的主机名是aml-s812)

接着使用putty或者xshell等ssh软件,连接上玩客云。

默认账号root

默认密码1234

连上后是像下面这样的界面

分别复制下面的命令粘贴到xshell的控制界面,回车。

cd /boot/install
./install.sh

接着等待自动写入系统到内置的EMMC存储里面,然后断电。

接着拔掉U盘,重启电源,开机。

后续操作

一切顺利的话,现在你的玩客云就已经刷好了Armbian系统,并且正常开机了。接下来我们进行后续操作,挂载U盘,安装docker等。

修改主机名

局域网里面也可以直接浏览器输入主机名访问玩客云,默认的主机名是aml-s812,可以修改成自己喜欢的主机名,命令如下:

hostnamectl set-hostname wky

wky改成你自己想要的主机名即可。

挂载U盘

刷完机后,玩客云磁盘总共就6.5G的空间,系统应该占用了16%的空间,如果我们想后续装很多软件,并且下载的话,那么这个空间明显是不够的。我从京东买了一个64G的U盘来当数据盘用。

我买的这个64G的U盘在Windows下看只能格式化成NTFS和exfat两种格式,而且只有这两种格式才能支持4G以上的单文件。

插上U盘(插到靠近HDMI的那个口,插网线这个口可能会进不去系统,具体还是看固件),下面以挂载exfat格式U盘为例。

输入下面的命令找到刚才插入的U盘

fdisk -l | grep NTFS

上图中,我们这里出现的分区是/dev/sda1

我们把他挂载到/mnt/upan目录下,输入下面命令先创建目录。

mkdir /mnt/upan

编写分区信息实现自动挂载。

vi /etc/fstab

(vi基础操作:按键盘i可以开始编写文件,编写完毕按ESC,然后:wq保存并退出)

在文件末尾插入下面这行代码

/dev/sda1 /mnt/upan exfat defaults 0 0(docker改目录的话不支持exfat格式,所以建议选下面的ntfs格式)

注意,这里如果你是ntfs格式的U盘,就下面这串代码。

/dev/sda1 /mnt/upan ntfs-3g defaults 0 0

保存后,玩客云在启动的时候会自动挂载U盘。

这里我们写的是U盘所在磁盘/dev/sda1,还有一种方法是写UUID,那个是直接定位到指定的U盘。

查看分区UUID用blkid,具体挂载的解释如下:

格式:

<fs spec> <fs file> <fs vfstype> <fs mntops> <fs freq> <fs passno>

具体说明:
<fs spec>:分区定位,可以给UUID或LABEL,例如:UUID=1E7A76767A764A93或LABEL=usb
<fs file>:具体挂载点的位置,例如:/mnt/usb
<fs vfstype>:挂载磁盘类型,linux分区一般为ext4,windows分区一般为ntfs
<fs mntops>:挂载参数,一般为defaults
<fs freq>:磁盘检查,默认为0
<fs passno>:磁盘检查,默认为0,不需要检查
然后输入mount -a检查下是否正确,如果不报错就可以重启测试是否挂载成功。

安装smaba

更新系统

sudo apt update && sudo apt upgrade

安装命令

apt install samba -y

查看安装状态

systemctl status nmbd

创建共享目录

mkdir /mnt/upan/downloads

编辑配置文件。

vi /etc/samba/smb.conf

把下面的内容加到末尾。

[share]
comment = share
path = /mnt/upan/downloads
public = yes
writable = yes
browseable=yes
available=yes
guest ok=yes

重启服务

systemctl restart nmbd

接着在电脑上打开 \\你玩客云ip ,应该就可以看到这个共享文件夹了。

SAMBA创建用户并用户访问

先创建一个用户名为wky

sudo adduser --no-create-home --disabled-password --disabled-login wky

接下来添加到samba

smbpasswd -a wky

然后修改配置文件

[share]
comment = share
path = /mnt/upan/downloads
public = no
writable = yes
browseable=yes
available=yes
guest ok=no
valid users = wky

重启服务

service smbd restart

如果你在windows上多个用户连接上samba的文件夹会报错,通过cmd运行下面命令断开链接重连即可。

net use * /del /y

安装docker

直接输入自动安装命令。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

查看docker基本信息

docker info

停止docker服务

systemctl stop docker.socket
systemctl stop docker.service

修改docker配置改掉默认目录

vi /etc/docker/daemon.json

复制下面内容进去

{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"data-root": "/mnt/upan/docker"
}

启动docker

systemctl start docker.socket
systemctl start docker.service

安装Portainer

直接复制下面命令

docker volume create portainer_data

docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

安装完毕,通过访问你玩客云ip加上端口9000就可以进入prtainer了。

默认安装的Portainer是英文的,网上有汉化教程,有需要的自行解决,第一次登录会让你创建一个账号,如下图:

进入后,点击home,就可以看到我们本地的Docker。

点击local的docker进入,主要用到的也就这Containers和Images两个部分的内容。

 

安装qbittorrent

直接复制下面的命令到ssh里面回车就行了,当然也可以在上面装的那个portainer里面去创建容器。

docker run -d \
--name=qbittorrent \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e WEBUI_PORT=8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8080:8080 \
-v /mnt/upan/qbittorrent/config:/config \
-v /mnt/upan/downloads:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/qbittorrent

安装完毕后可以通过玩客云ip+端口8080访问,默认账号为admin,默认密码为adminadmin

在下图这个位置可以设置中文语言。

 

安装Home Assistant

先拉取镜像

docker pull homeassistant/home-assistant

然后在prtainer里面创建容器,选择刚才拉取的镜像文件。

网络端口配置8123映射,如下图:

然后通过玩客云IP+8123端口访问,出现配置界面。

先创建一个账号。

这几点DETECT定位当前位置。然后直接点右下角的按钮到完成就行。

进入界面后,修改中文语言。

米家设备接入Home Assistant

家里小米的智能家居比较多,还有叮咚和天猫精灵,感觉接入要麻烦点,后面有时间再研究了。

小米的设备接入Home Assistant有两个比较方便的插件,Xiaomi Miio和Xiaomi Miot Auto。

其中Xiaomi Miio直接在Home Assistant、配置、集成、添加集成里面就可以搜到,如下图:

点击之后输入小米账号,就可以自动添加你的智能硬件。

另外一个Xiaomi Miot Auto感觉更强大一些,不过需要额外安装HACS.才能安装,方法如下:

Home Assistant 安装 HACS

官方教程链接:https://hacs.xyz/docs/setup/download#option-2-run-the-installer-inside-the-container

操作步骤:

1、在Portainer里面,找到homeassistant的容器后面的终端按钮,然后点击connect按钮。

2、输入安装命令回车,如下图:

但是由于网络问题,会下载失败,我们可以自己手动把相关代码写成文件手动执行。

打开下面网址,复制所有内容

https://raw.githubusercontent.com/hacs/install/main/install

把上面网址里面内容里的这个压缩包下载后替换链接。

https://github.com/hacs/integration/releases/latest/download/hacs.zip

然后回到Portainer的终端里面

vi ha.sh

按i之后把内容粘贴进去,然后esc,:wq保存。

bash ha.sh

就安装成功了,现在重启Home Assistant服务。

重启完毕之后,左下角配置、集成、添加集成,搜索HACS。

勾选4个i know后提交。

接着出现上图的验证界面,先点击1处网址,然后输入2提供的验证码。

这里如果提示Could not authenticate with GitHub, try again later.那么是因为玩客云没办法访问到github.com网站导致的。

可以进入Portainer里面Home Assistant容器的终端里面输入下面的命令修改hosts文件。

vi /etc/hosts

i

最末尾加上下面这串

52.192.72.89 github.com

这个ip自己用网上的ping工具去看世界各地解析出来的github.com的ip替换一个就行。

esc后:wq保存。

添加成功后在左侧就可以看到HACS的菜单入口。

点击HACS,然后点击集成,右下角浏览并下载存储库。

找到Xiaomi Miot Auto,然后右下角点击下载。

安装完毕后,重启Home Assistant。

重启完毕后,访问下面的链接,把新网页里面的地址改成你玩客云上Home Assistant的地址后打开。

https://my.home-assistant.io/redirect/config_flow_start/?domain=xiaomi_miot

然后配置的时候直接选择账号集成比较方便。

安装Nginx并设置导航

先安装Nginx

apt install nginx -y

然后编辑导航页面

vi /var/www/html/index.html

粘贴以下内容(ip换成自己的)

<!DOCTYPE html><html lang="zh"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>家庭玩客云导航</title><style>body{background-image:url(https://bing.biturl.top/?resolution=1920&format=image&index=0&mkt=zh-CN);background-repeat:no-repeat; background-size: cover;-moz-background-size:cover; background-position:center center;height: 99vh;}.inlineblock-div {padding-top: 20%;text-align: center;}.inlineblock-div a {border-radius:10px;padding:10px 38px;color:#fff;border-style:solid;text-decoration:none;width: 200px;display: inline-block;}@media screen and (max-width: 800px) {.inlineblock-div a {margin: 1em 2em;}} .center{text-align:center;}.inlineblock-div{display:inline-block;}</style></head><!-- ip换成自己的 --><body><div class="center"><div class="inlineblock-div"><a href="http://192.168.50.170:8123/">Home Assistant</a><a href="http://192.168.50.170:9000/">Portainer</a><a href="http://192.168.50.170:8080/">qBittorrent</a></div></div></body></html>

禁用armbian 日志

默认的Armbian会在var/log下面分配50MB存取日志,这个日志很容易就满了,对于我们菜鸟来说,这些日志跟天书区别不大,所以直接禁用相对来说更加省事,方法如下:

编辑 /etc/default/armbian-ramlog文件,修改代码为:

ENABLED=false

编辑/etc/cron.d/armbian-truncate-logs文件,注释掉计划任务:

# 0,15,30,45 * * * * root /usr/lib/armbian/armbian-truncate-logs

编辑/etc/cron.daily/armbian-ram-logging 文件,注释掉命令:
#!/bin/sh
#/usr/lib/armbian/armbian-ramlog write >/dev/null 2>&1

然后重启服务器即可。

安装Aria2 Pro和AriaNg

直接ssh连接上玩客云后输入下面代码安装Docker版的aria2

docker run -d \
--name aria2-pro \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-e PUID=$UID \
-e PGID=$GID \
-e RPC_SECRET=<TOKEN> \
-e RPC_PORT=6800 \
-e LISTEN_PORT=6888 \
-v $PWD/aria2-config:/config \
-v $PWD/aria2-downloads:/downloads \
p3terx/aria2-pro

上面命令种红色的<TOKEN>自己改一个中英文的字符串就行。

/downloads左边的内容是映射到那个盘,可以改成我们挂载的U盘或者硬盘上。

详细内容参见https://p3terx.com/archives/docker-aria2-pro.html

安装AriaNg的话运行下面的命令

# bridge 网络模式
docker run -d \
--name ariang \
--restart unless-stopped \
--log-opt max-size=1m \
-p 6880:6880 \
p3terx/ariang

# host 网络模式(如果你需要使用 IPv6 网络访问,这是最简单的方式)
docker run -d \
--name ariang \
--log-opt max-size=1m \
--restart unless-stopped \
--network host \
p3terx/ariang --port 6880 --ipv6

具体详情参见:https://p3terx.com/archives/aria2-frontend-ariang-tutorial.html

安装filebrowser文件管理器

docker run -d \
--name filebrowser \
--user $(id -u):$(id -g) \
-p 8080:8080 \
-v /DATA_DIR:/data \
-v /CONFIG_DIR:/config \
-e FB_BASEURL=/filebrowser \
hurlenko/filebrowser

注意8080端口不要和其他的应用冲突。

/DATA_DIR换成你文件管理器需要管理的根目录路劲

/CONFIG_DIR换成你保存应用配置的路径

猜你喜欢

© 本文著作权归作者 [奶爸] 所有,未经下1个好软件许可,不得转载使用。

5 条评论

geek

大神,我也是1.0的板子,在执行下面这步命令时:
docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

出现错误信息:
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: process_linux.go:508: setting cgroup config for procHooks process caused: bpf_prog_query(BPF_CGROUP_DEVICE) failed: function not implemented: unknown.

能否帮忙解决一下?

回复

geek

@geek 补充一下,用的是与你一样的固件

回复

1

@geek 这个固件不对,我试了多次跟你的结果一样,最后换了固件才解决的,可以结合这位大神的,https://post.smzdm.com/p/akx9l8xr/

回复

锋哥

@1 牛的

回复

发表评论