作者:casatift
哈喽,艾瑞巴蒂。我是你们的智能家居领路人CT。在之前的文章中,我分别介绍过使用N1盒子和章鱼星球刷入openwrt,利用docker部署home assitant智能家居中枢系统,有兴趣的大家可以复习下:
当时评论里有不少人提及,为啥不用玩客云刷,玩客云只要40来块。我当时的回复是玩客云刷机没那么方便,并且s805虽然是四核芯片,但是是32bit的,并且内存1G怎么都有点捉襟见肘的样子。而最近在刷机盒子界,又出现了一款炙手可热的新“垃圾”——移动定制款盒子魔百和,其中CM311-1A YST版售价仅50-60元,配置为Amlogic S905L3 (S905X2马甲版)4核Cortex-A53,主频1.8G,采用了12nm进程制造,所以发热量及功耗表现都非常优秀。下图为三款盒子的SOC对比:
可以看到,魔百和CM311-1A对于N1的S905基本是吊打,而在部分项目甚至超过了8核的S912,不过略有不足的是Amlogic S905L3的网口只有百兆,这就决定了其在作为软路由,旁路由时带宽不够,并且魔百和CM311-1A没有WIFI,目前armbian蓝牙驱动也尚在完善,所以其售价也长时间保持低位,当然,我这里更推荐魔百和的另一个原因是,其存储空间有较其他盒子两倍的16GB,对于折腾Home assitanta来说可以说是非常适合的一个大小,因为诸如N1和章鱼星球的8G通常在刷完系统之后只剩余5G左右,HA用掉2G,NR用掉1G,其他杂七杂八的插件安装完成后,emmc通常也就剩个1-2G,如果正常使用的话问题不大,但是偶尔升级docker,如果操作顺序不对,就很容易把磁盘写满,把docker给整崩溃了。所以在使用N1和章鱼星球时,大家都推荐外接U盘使用,但是介于USB2.0的接口,在使用时能明显体会到启动,读取的速度非常慢,直观点说,使用内置emmc,我的HA docker启动速度大约是15秒,而优盘就需要2-3分钟甚至更长。好了,闲话不说,我们下面就来看看魔百和CM311-1A的Armbian刷机实战。
刷入安卓固件
市面上能买到的魔百和大都是从运营商那当垃圾收回来的,所以一般也都不是全新。
不过成色一般都能冲新,如果买单机不含配件的话还能再便宜10块钱(我的购买价是51+运费),但是需要提醒的是,卡刷需要遥控器。我这次买了2台,包装格局都是不一样的,不过型号都是CM311-1A YS(S)的,因为魔百和的型号,代工厂数量很多,所以这里的卡刷教程也仅针对这款CM311-1A YS(S),其他类似型号(主型号CM311-1A相同,后缀YS(S)不同)能不能刷成得看缘分了。
除了盒子之外,我们还需要准备一个优盘,不要大,但是要老,最好是USB2.0的,这点切记,如果一个优盘刷不过,就换一个再刷,这坑说起来都是泪:
然后我们就可以准备我们的刷机包了:
将优盘格式化,然后打开刷机包其中默认开启adb的安卓固件,将里面的三个固件全部拷贝至优盘:
然后将优盘插在魔百和的优盘口上(两个都可以),盒子连接好HDMI,遥控器电池装好。然后开机,同时不停的对着魔百和的红外接收窗按遥控器左键,这时应该观察到盒子的LED灯也会随着按键的按动闪动,一直按:
直到显示器(电视)出现画面并进入系统升级界面:
然后迅速的关闭盒子电源并立即再次打开电源,魔百和会自动再次进入更新模式,不过这个时候界面会有所不同:
静待刷机结束后盒子自动重启进入新刷的安卓界面:
如果你就像把魔百和当做电视盒子使用的话,这时你就可以通过系统自带的当贝市场来安装各类APP使用了。
写入Armbian固件
我们首先从/ophub/amlogic-s9xxx-armbian/releases大佬的仓库下载最新版的S905l3固件,因为固件release会自动编译最新版,所以后面的版本号和日期戳可能不同,如果不介意较旧版本也可以使用打包文件内的版本。
然后使用balenaEtcher将其直接写入优盘待用:
然后解压刷机包内的开心电视助手(其实道理上使用adb工具的adb shell reboot update命令也能实现同样功能,不过不知道为何我一直失败,大家可以自行尝试),连接盒子,然后选择调试工具里的从U盘/SD卡启:
按下的同时将U盘插入盒子的USB口,这时盒子就会自动从优盘启动Armbian系统。下面我们就要用到putty了:
在路由器内找到盒子的IP地址,然后SSH连接上,使用root账户以及默认密码1234登录,登录之后会要求设置新的root密码和command shell,这里依照我的习惯选了bash,然后创建新用户,设置时区位置等,等全部结束,就可以在优盘上畅快的使用Armbian系统了,不过我们的初衷是为了体验emmc的快感才选的魔百和,所以自然要进行下一步,将Armbian系统写入emmcundefined这里使用的命令是armbian-install:
这里首先要选盒子型号,这里一定要看仔细,选择CM311A-YST版本,因为不同版本的ARMBIAN固件序号会有微调,在这一版本为305,然后选择文件格式,我这里用的BTRFS,你也可以使用传统的ext4。然后就静待文件写入成功,提示你拔除U盘后重启。这里提醒一下,刷入emmc之后盒子的ip地址会变。
安装Samba
我们继续使用putty远程连接上盒子,先在系统里面建立一个共享文件夹,我这里是在/home目录下直接建立了一个share文件夹,因为局域网使用,直接简单粗暴的把其权限写到最高:
这里的两条命令是:
mkdir /home/share
chmod 777 /home/share
然后我们就可以安装samba服务了,首先还是先update和upgrade一把,遇到询问选Y就是:
apt-get update&&apt-get upgrade
接着安装samba服务:
apt install samba
然后为samba添加用户名,我这里用的是share
smbpasswd -a share
会提示你输入密码,之后创建新用户成功之后我们编辑/etc/samba/smb.conf文件,内容如下:
ctrlX保存退出后执行重启samba服务的命令:
service smbd restart
这时你通过局域网使用刚才创建的用户名密码应该就能访问和修改魔百和上/home/share文件夹的内容了:
安装docker及portainer
docker的安装非常方便,就一句命令:
apt install docker.io
安装完成后就可以使用了,不过相信如果你能看到这,应该是对命令行不太感冒的人,所以我们这里可以安装一个可视化的docker管理工具——portainer:
首先我们运行命令:
docker pull portainer/portainer-ce:latest
拉取最新的portainer-ce镜像,然后执行以下命令创建容器:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /home/share/dockerconfig/portainer_data:/data portainer/portainer-ce:latest
其中映射的文件夹下/dockerconfig/portainer_data,创建成功之后打开浏览器,使用https://魔百盒IP地址:9443就能直接进入portainer的图形界面了:
首次使用会要求创建新用户,密码要求12位以上,之后选择本地的docker环境,进去之后就能看到目前已有一个镜像,一个容器,也就是我们的portainer容器本身。
使用portainer安装home assitant core
虽然portainer的使用非常简单,但既然说了是保姆级教程,那么再简单也不能漏,这里我就以home assitant core为例,来教大家如何使用portainer运行容器:
首先侧边栏选取Containers,然后右侧选择+ Add Container进入添加容器界面:
这里我们只要填上容器名称,镜像名称,勾选Always pull the image就行。然后在最下方的Advanced container settings点击Volumes设定卷:
这里就是设定映射文件夹也就是docker命令中的-v部分,记得一定要选Bind,然后上方填容器内目录,下面填主机对应的文件夹。然后是Network,这里根据需要选择的是host:
然后Env也就是命令中的-e,我们这里只设置了时区:
接着一般还需要设定的是Restart policy重启策略:
这里选择always,也会有镜像要求用unless stopped的,两者的共同点是如果非手动停止容器,容器会无限尝试重启退出的容器,但是在手动停止容器之后,unless stopped的容器会永远停止除非再次手动打开,而always的容器在下次docker daemon重启之后就会再次启动。
之后我们就能按下Deploy the container按钮启动容器了:
然后我们打开浏览器输入IP+8123端口号就能访问我们新建的Home Assitant了。
照葫芦画瓢,大家可以非常轻松的装上mqtt,zigbee2mqtt,nodered等其他容器。
最后,祝大家玩的开心。
联系客服