中华云盒M1刷Linux教程,N1 盒子刷最新版 armbian 及软件安装
N1 盒子刷最新版 armbian 及軟件安裝
2019-12-22 16:02:10
79點贊
754收藏
71評論
寫在前面
前段時間關注了#如何玩轉NAS 后,玩性大發,各路值友們分享的好玩東西都分別嘗試了一下,現在主力是一臺x86的小箱子做云存儲,部署了smb/jellyfin/nextcloud等。不過感覺最好玩的還是N1盒子,主要是玩法太多了。
不過最愛的還是 armbian,因為它有無限可能。不過包括某山和張大媽、各種網上資料里,系統版本都有點老了,一些內容已經過時。我自己踩了遍各種坑,現在整理一下,希望幫助到有興趣的值友,也作為自己的備忘。這篇文章并不適合所有人,由于armbian有一定上手難度,需要一些linux基礎,適合有嵌入式設備操作經驗的同學
關于N1如何線刷降級、如何準備各種軟件就不再贅述了。
截止目前,這個教程還沒有完全完善,最新系統從U盤刷入內置存儲后,盒子無法啟動,需要U盤輔助啟動。我也會跟進一下有沒有解決方案。
下載最新鏡像
我選用的鏡像從這里下載的,我是從19.11.3下載的最新版本,更新日期大約在19年11月27日左右,裝完后基本沒有需要更新的包。這個站點也有穩定的 5.99 等版本,大家可以自己選擇。
具體該選擇哪個文件呢?這里科普下 armbian 的命名規則,如我選的版本 Armbian_19.11.3_Aml-g12_buster_legacy_5.3.0_20191126.img.xz,包含以下部分:Armbian: 項目名稱,沒什么好說的
19.11.3: 版本,這里是不穩定版本所以是19開頭的,穩定版是類似5.99等
Aml-g12: 硬件信息,最早需要下載Aml-s905 或者 s9xx 的版本,現在因為各種硬件支持都集合在一起了所以無所謂
buster: 系統版本代號,buster 是debian 10的代號,是debian的最新發行版,類似還有:bionic: ubuntu 18
eoan: ubuntu 19
stretch: debian 9
xenial: ubuntu 16
5.3.0: Linux 內核版本
20191126: 編譯日期
img: 文件類型,img代表磁盤鏡像
xz: 壓縮算法
燒錄
下載完成后,我們需要將 img 文件解壓出來。在 windows 下可以用 rar/7z 等進行解壓,在 Linux/mac下面可以通過 xz d Armbian-xxxxx.img.xz 命令進行解壓。
得到的img文件就是U盤鏡像。里面是完整的U盤內容拷貝。我們需要找一個 U 盤,利用燒錄軟件將鏡像燒錄到 U 盤中。
windows 下面可以用 usb image tool 等進行燒錄。燒錄過程中有可能因為第一個分區被系統掛載了盤符導致燒錄失敗,這時候關掉文件管理器窗口重新燒錄就行。
linux下可以用下面的命令進行燒錄:sudo dd if=Armbian-xxxxx.img of=/dev/sdb
# 這里的 sdb 是 U 盤的設備描述符,也可能是 sdc 等,通過 lsblk 可以查看磁盤情況;
mac的情況類似,不過盤符應該是類似 /dev/disk2 這種,具體可以通過 Disk Utility 查看。另外,無論 linux 還是 mac,如果 U 盤被自動掛載了,務必先卸載再進行燒錄。
警告:燒錄有風險,如果輸錯了盤符或者U盤上有重要文件可能會導致數據丟失,請謹慎駕駛。燒錄不謹慎,親人兩行淚
修改啟動設置
燒錄成功后U盤上將會有兩個分區,一個較小的BOOT分區,格式是FAT,一個較大的ROOTFS分區,格式是ext4。我們需要掛載并修改 BOOT 分區的文件。
打開 uEnv.ini,可以看到如下內容:dtb_name=/dtb/amlogic/meson-xxx-n1.dtb
bootargs=root=LABEL=ROOTFS ...
我們需要修改dtb_name的文件名為類似 meson-gxl-s905d-phicomm-n1.dtb。
上電!
在N1斷開電源狀態下插入U盤到第一個USB口(HDMI接口附近那個),然后上電,應該可以看到Linux的啟動消息。
初次啟動會調整主分區大小,把主分區擴展到U盤剩余空間,這個過程比較慢可能要耗時幾分鐘。然后就看見登錄提示,輸入 root 密碼 1234 即可登錄。
初次登錄會提示修改 root 密碼和創建新用戶,第二個步驟不是必需的可以 ctrl-c 斷開。
到這一步安裝過程已經全部完成了,已經可以承接無限可能了
接下來的步驟并不是必需的,大家可以根據情況各取所需。
連接 Wi-Fi
Armbian 提供了命令行配置工具 armbian-config,可以進行連接 wifi、安裝軟件等操作。命令行工具可以通過 ssh 登錄的方式進行(當然必須是有有線連接或者已經連上 wifi 的前提下),也可以通過外接硬盤直接在終端進行。我這里通過有線連接后,ssh 上去進行配置的。windows 最新版已經內置了 ssh 命令,不需要額外裝 putty 什么的了:
命令行遠程登錄并運行 armbian-config
選擇 Network / WiFi 后,可以選擇自己的 SSID 進行連接了(支持2.4G和5G)
wifi 選擇界面,有可能會有渲染出錯不過沒關系
配置軟件源
連上網之后我們就可以安裝軟件了,安裝之前我們先修改一下軟件包源。修改的過程也可以通過 ssh 遠程連接的方式,這里不再贅述。由于我選擇的是 debian,所以默認的軟件源是 debian 默認的。可以直接把源地址修改成這一行(/etc/apt/source.list):deb http://mirrors.huaweicloud.com/debian buster main contrib non-free
Armbian 默認還增加了自己的源,不更新驅動和內核的話可以直接刪掉 /etc/apt/source.list.d/ 下面的文件。
鏡像源的設置包含三部分。第一部分是服務器地址,第二部分是系統版本,第三部分是需要的軟件包類型。完整的服務器地址可以從 https://www.debian.org/mirror/list.zh-cn.html 查看。其中國內的支持 aarch64 的有:ftp.cn.debian.org
ftp2.cn.debian.org
mirror.lzu.edu.cn # 蘭州大學
mirrors.huaweicloud.com # 華為
mirrors.tuna.tsinghua.edu.cn #清華大學
mirrors.ustc.edu.cn #中科大
然后運行 apt update,就可以更新軟件包列表了。
安裝到 EMMC
到目前為止系統都是跑在U盤上面的,為了更好的讀寫性能,我們可以將系統拷貝到內置的 EMMC 中。不過最新 armbian 的安裝過程是破壞性的,安裝完成后,盒子將不能直接啟動,必須插入外置 U 盤才能啟動。所以我們要做三件事情:備份 EMMC 上的分區,以備將來刷回舊的系統
將 U 盤上的系統刷到 EMMC 上
配置一個 U 盤,用來引導 EMMC 上的系統
第一步,我們可以通過 ddbr 命令來進行,選擇 backup (b) 然后使用壓縮 (y),將 EMMC 的內容備份到 U 盤上。備份文件放在 /ddbr/BACKUP-xxxxx.gz,請妥善保管,可以將這個文件拷貝出去到別的位置以防 U 盤損壞丟失。
將來如果要恢復盒子系統,需要繼續插入有 armbian 的 U 盤,然后運行 ddbr,將備份恢復到 EMMC。
然后運行 nand-sata-install 或者 /root/install.sh。安裝腳本將整個 EMMC 重新分區,并拷貝進去 BOOT 和 ROOTFS 的內容。
至此,盒子將不再可啟動,我們需要準備一個引導 U 盤。引導 U 盤上有一個 BOOT 分區,內置了 Linux 內核和啟動配置文件。當插入啟動 U 盤后,盒子會讀取 uEnv.ini 并加載內核。armbian 鏡像 U 盤中的系統根目錄盤符為 ROOTFS,所以 uEnv.ini 中的內核啟動參數為:bootargs=root=LABEL=ROOTFS。而當我們將系統寫入 EMMC 后,EMMC 上的盤符為 ROOT_EMMC,所以我們需要修改 uEnv.ini 中的 LABEL 參數。
可以另外準備一個空白 U 盤,在上面創建一個只有 128M 的分區,格式化為 FAT,并將盤符改為 BOOT。然后我們把剛才制作的啟動盤上的所有文件拷貝進去,并打開 uEnv.ini,修改內核參數:bootargs=root=LABEL=ROOT_EMMC ...
我們也可以復用 armbian 的鏡像 U 盤,只需要修改 uEnv.ini,當需要啟動 U 盤上的系統,將 LABEL 改為 ROOTFS,當需要啟動 EMMC 上的系統,將 LABEL 改為 ROOT_EMMC 即可。
安裝 Docker / portainer / Samba 等軟件
后續要安裝 HomeAssistant / openwrt / nextcloud 等,都可以通過 docker 來進行,所以我們先來看 docker 的安裝。armbian-config 提供了集成的安裝腳本,可以直接在里面進行安裝,路徑是 Software -> Softy:
Softy 軟件選擇界面
docker 默認通過 docker.io 拉取包,我們也可以改為國內的鏡像。關于 docker 如何修改 registry 我們不再贅述。
接下來安裝 portainer:docker pull portainer/portainer:latest
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock-v portainer_data:/data portainer/portainer:latest
通過 docker ps 可以查看啟動情況,啟動完成后,訪問 9000 端口就可以進入 portainer 的配置界面了:
portainer
安裝 HomeAssistant 等 docker 包
docker 安裝軟件的過程大概分為 docker pull 和創建 container 兩個過程。以 HomeAssistant 為例,我們首先要知道自己需要拉取的包名字,如:docker pull homeassistant/aarch64-homeassistant:latest
然后可以通過 portainer 或者直接用 docker run 的方式來創建容器。
配置 samba
samba 的配置很簡單,第一步配置共享目錄,第二步設置用戶密碼,第三步重啟服務即可:
共享目錄配置文件在 /etc/samba/smb.conf,只需要在文件末尾添加共享名稱(顯示在Explorer里的名稱)和 path 以及授權用戶即可
smb.conf
用戶密碼通過 smbpasswd [用戶名] 來設置。如果是新用戶需要用 smbpasswd -a [用戶名] 來添加用戶。
然后運行 systemctl restart smbd.service 重啟服務器,打開資源管理器輸入 盒子IP 就能訪問了。盒子默認 host 為 aml,所以也可以通過 aml 訪問:
訪問 smb 文件
配置 transmission 下載
transmission 運行在 N1 上很不錯,整體消耗很小而且安裝配置簡單。我們通過 armbian-config 安裝 transmission 后,先進行簡單的配置,并掛載一個移動硬盤用來下載。
需要注意,transmission 在運行時直接修改配置文件可能不生效,所以我們需要先將服務停掉:systemctl stop transmission-daemon.service。
打開 /etc/transmission-daemon/settings.json,我們可以看到所有的配置選項。這里我們先改下用戶名和密碼,分別是 rpc-username 和 rpc-password。再次啟動服務后,rpc-password 將被加密,不過我們不用擔心。
將外置 usb 存儲掛載到系統上后,我們在上面創建一個下載目錄并修改 owner,以允許 tr 寫入:cd /media/pool # 外置硬盤的掛載地址
mkdir bt
chown debian-transmission:debian-transmission bt
然后在下載的時候將存儲目錄指定為這個目錄或其子路徑即可。也可以直接在配置文件里或者 web 界面里修改。訪問 http://{盒子 IP}:9091 即可打開 transmission 目錄
transmission web 界面
最后,如果你有公網 IP 要掛 pt 的話,別忘了在路由器上打開端口轉發,把 tr 的 peer 端口共享出去。
總結
N1 + armbian 的玩法還有很多,包括 nextcloud、媒體服務、旁路由等,甚至可以作為一臺小型服務器用來提供 web 服務,而且性能相當不錯。在我這里同時運行兩個 docker 服務,開 tr 下載,然后通過 samba 看盒子里下的電影,CPU 也不過個位數,內存才用了三百兆左右;還有其它的玩法就等值友們共同開發了
總結
以上是生活随笔為你收集整理的中华云盒M1刷Linux教程,N1 盒子刷最新版 armbian 及软件安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞猪项目管理数字化实践
- 下一篇: 2980 买帽子