作者:casatift
哈嘍,艾瑞巴蒂。我是你們的智能家居領(lǐng)路人CT。在之前的文章中,我分別介紹過使用N1盒子和章魚星球刷入openwrt,利用docker部署home assitant智能家居中樞系統(tǒng),有興趣的大家可以復(fù)習(xí)下:
當(dāng)時(shí)評論里有不少人提及,為啥不用玩客云刷,玩客云只要40來塊。我當(dāng)時(shí)的回復(fù)是玩客云刷機(jī)沒那么方便,并且s805雖然是四核芯片,但是是32bit的,并且內(nèi)存1G怎么都有點(diǎn)捉襟見肘的樣子。而最近在刷機(jī)盒子界,又出現(xiàn)了一款炙手可熱的新“垃圾”——移動(dòng)定制款盒子魔百和,其中CM311-1A YST版售價(jià)僅50-60元,配置為Amlogic S905L3 (S905X2馬甲版)4核Cortex-A53,主頻1.8G,采用了12nm進(jìn)程制造,所以發(fā)熱量及功耗表現(xiàn)都非常優(yōu)秀。下圖為三款盒子的SOC對比:
可以看到,魔百和CM311-1A對于N1的S905基本是吊打,而在部分項(xiàng)目甚至超過了8核的S912,不過略有不足的是Amlogic S905L3的網(wǎng)口只有百兆,這就決定了其在作為軟路由,旁路由時(shí)帶寬不夠,并且魔百和CM311-1A沒有WIFI,目前armbian藍(lán)牙驅(qū)動(dòng)也尚在完善,所以其售價(jià)也長時(shí)間保持低位,當(dāng)然,我這里更推薦魔百和的另一個(gè)原因是,其存儲(chǔ)空間有較其他盒子兩倍的16GB,對于折騰Home assitanta來說可以說是非常適合的一個(gè)大小,因?yàn)橹T如N1和章魚星球的8G通常在刷完系統(tǒng)之后只剩余5G左右,HA用掉2G,NR用掉1G,其他雜七雜八的插件安裝完成后,emmc通常也就剩個(gè)1-2G,如果正常使用的話問題不大,但是偶爾升級docker,如果操作順序不對,就很容易把磁盤寫滿,把docker給整崩潰了。所以在使用N1和章魚星球時(shí),大家都推薦外接U盤使用,但是介于USB2.0的接口,在使用時(shí)能明顯體會(huì)到啟動(dòng),讀取的速度非常慢,直觀點(diǎn)說,使用內(nèi)置emmc,我的HA docker啟動(dòng)速度大約是15秒,而優(yōu)盤就需要2-3分鐘甚至更長。好了,閑話不說,我們下面就來看看魔百和CM311-1A的Armbian刷機(jī)實(shí)戰(zhàn)。
刷入安卓固件
市面上能買到的魔百和大都是從運(yùn)營商那當(dāng)垃圾收回來的,所以一般也都不是全新。
不過成色一般都能沖新,如果買單機(jī)不含配件的話還能再便宜10塊錢(我的購買價(jià)是51+運(yùn)費(fèi)),但是需要提醒的是,卡刷需要遙控器。我這次買了2臺,包裝格局都是不一樣的,不過型號都是CM311-1A YS(S)的,因?yàn)槟О俸偷男吞?,代工廠數(shù)量很多,所以這里的卡刷教程也僅針對這款CM311-1A YS(S),其他類似型號(主型號CM311-1A相同,后綴YS(S)不同)能不能刷成得看緣分了。
除了盒子之外,我們還需要準(zhǔn)備一個(gè)優(yōu)盤,不要大,但是要老,最好是USB2.0的,這點(diǎn)切記,如果一個(gè)優(yōu)盤刷不過,就換一個(gè)再刷,這坑說起來都是淚:
然后我們就可以準(zhǔn)備我們的刷機(jī)包了:
將優(yōu)盤格式化,然后打開刷機(jī)包其中默認(rèn)開啟adb的安卓固件,將里面的三個(gè)固件全部拷貝至優(yōu)盤:
然后將優(yōu)盤插在魔百和的優(yōu)盤口上(兩個(gè)都可以),盒子連接好HDMI,遙控器電池裝好。然后開機(jī),同時(shí)不停的對著魔百和的紅外接收窗按遙控器左鍵,這時(shí)應(yīng)該觀察到盒子的LED燈也會(huì)隨著按鍵的按動(dòng)閃動(dòng),一直按:
直到顯示器(電視)出現(xiàn)畫面并進(jìn)入系統(tǒng)升級界面:
然后迅速的關(guān)閉盒子電源并立即再次打開電源,魔百和會(huì)自動(dòng)再次進(jìn)入更新模式,不過這個(gè)時(shí)候界面會(huì)有所不同:
靜待刷機(jī)結(jié)束后盒子自動(dòng)重啟進(jìn)入新刷的安卓界面:
如果你就像把魔百和當(dāng)做電視盒子使用的話,這時(shí)你就可以通過系統(tǒng)自帶的當(dāng)貝市場來安裝各類APP使用了。
寫入Armbian固件
我們首先從/ophub/amlogic-s9xxx-armbian/releases大佬的倉庫下載最新版的S905l3固件,因?yàn)楣碳elease會(huì)自動(dòng)編譯最新版,所以后面的版本號和日期戳可能不同,如果不介意較舊版本也可以使用打包文件內(nèi)的版本。
然后使用balenaEtcher將其直接寫入優(yōu)盤待用:
然后解壓刷機(jī)包內(nèi)的開心電視助手(其實(shí)道理上使用adb工具的adb shell reboot update命令也能實(shí)現(xiàn)同樣功能,不過不知道為何我一直失敗,大家可以自行嘗試),連接盒子,然后選擇調(diào)試工具里的從U盤/SD卡啟:
按下的同時(shí)將U盤插入盒子的USB口,這時(shí)盒子就會(huì)自動(dòng)從優(yōu)盤啟動(dòng)Armbian系統(tǒng)。下面我們就要用到putty了:
在路由器內(nèi)找到盒子的IP地址,然后SSH連接上,使用root賬戶以及默認(rèn)密碼1234登錄,登錄之后會(huì)要求設(shè)置新的root密碼和command shell,這里依照我的習(xí)慣選了bash,然后創(chuàng)建新用戶,設(shè)置時(shí)區(qū)位置等,等全部結(jié)束,就可以在優(yōu)盤上暢快的使用Armbian系統(tǒng)了,不過我們的初衷是為了體驗(yàn)emmc的快感才選的魔百和,所以自然要進(jìn)行下一步,將Armbian系統(tǒng)寫入emmcundefined這里使用的命令是armbian-install:
這里首先要選盒子型號,這里一定要看仔細(xì),選擇CM311A-YST版本,因?yàn)椴煌姹镜腁RMBIAN固件序號會(huì)有微調(diào),在這一版本為305,然后選擇文件格式,我這里用的BTRFS,你也可以使用傳統(tǒng)的ext4。然后就靜待文件寫入成功,提示你拔除U盤后重啟。這里提醒一下,刷入emmc之后盒子的ip地址會(huì)變。
安裝Samba
我們繼續(xù)使用putty遠(yuǎn)程連接上盒子,先在系統(tǒng)里面建立一個(gè)共享文件夾,我這里是在/home目錄下直接建立了一個(gè)share文件夾,因?yàn)榫钟蚓W(wǎng)使用,直接簡單粗暴的把其權(quán)限寫到最高:
這里的兩條命令是:
mkdir /home/share
chmod 777 /home/share
然后我們就可以安裝samba服務(wù)了,首先還是先update和upgrade一把,遇到詢問選Y就是:
apt-get update&&apt-get upgrade
接著安裝samba服務(wù):
apt install samba
然后為samba添加用戶名,我這里用的是share
smbpasswd -a share
會(huì)提示你輸入密碼,之后創(chuàng)建新用戶成功之后我們編輯/etc/samba/smb.conf文件,內(nèi)容如下:
ctrlX保存退出后執(zhí)行重啟samba服務(wù)的命令:
service smbd restart
這時(shí)你通過局域網(wǎng)使用剛才創(chuàng)建的用戶名密碼應(yīng)該就能訪問和修改魔百和上/home/share文件夾的內(nèi)容了:
安裝docker及portainer
docker的安裝非常方便,就一句命令:
apt install docker.io
安裝完成后就可以使用了,不過相信如果你能看到這,應(yīng)該是對命令行不太感冒的人,所以我們這里可以安裝一個(gè)可視化的docker管理工具——portainer:
首先我們運(yùn)行命令:
docker pull portainer/portainer-ce:latest
拉取最新的portainer-ce鏡像,然后執(zhí)行以下命令創(chuàng)建容器:
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,創(chuàng)建成功之后打開瀏覽器,使用https://魔百盒IP地址:9443就能直接進(jìn)入portainer的圖形界面了:
首次使用會(huì)要求創(chuàng)建新用戶,密碼要求12位以上,之后選擇本地的docker環(huán)境,進(jìn)去之后就能看到目前已有一個(gè)鏡像,一個(gè)容器,也就是我們的portainer容器本身。
使用portainer安裝home assitant core
雖然portainer的使用非常簡單,但既然說了是保姆級教程,那么再簡單也不能漏,這里我就以home assitant core為例,來教大家如何使用portainer運(yùn)行容器:
首先側(cè)邊欄選取Containers,然后右側(cè)選擇+ Add Container進(jìn)入添加容器界面:
這里我們只要填上容器名稱,鏡像名稱,勾選Always pull the image就行。然后在最下方的Advanced container settings點(diǎn)擊Volumes設(shè)定卷:
這里就是設(shè)定映射文件夾也就是docker命令中的-v部分,記得一定要選Bind,然后上方填容器內(nèi)目錄,下面填主機(jī)對應(yīng)的文件夾。然后是Network,這里根據(jù)需要選擇的是host:
然后Env也就是命令中的-e,我們這里只設(shè)置了時(shí)區(qū):
接著一般還需要設(shè)定的是Restart policy重啟策略:
這里選擇always,也會(huì)有鏡像要求用unless stopped的,兩者的共同點(diǎn)是如果非手動(dòng)停止容器,容器會(huì)無限嘗試重啟退出的容器,但是在手動(dòng)停止容器之后,unless stopped的容器會(huì)永遠(yuǎn)停止除非再次手動(dòng)打開,而always的容器在下次docker daemon重啟之后就會(huì)再次啟動(dòng)。
之后我們就能按下Deploy the container按鈕啟動(dòng)容器了:
然后我們打開瀏覽器輸入IP+8123端口號就能訪問我們新建的Home Assitant了。
照葫蘆畫瓢,大家可以非常輕松的裝上mqtt,zigbee2mqtt,nodered等其他容器。
最后,祝大家玩的開心。
聯(lián)系客服