N1 盒子刷最新版 armbian 及软件安装
写在前面
前段时间关注了#如何玩转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 什么的了:
选择 Network / WiFi 后,可以选择自己的 SSID 进行连接了(支持2.4G和5G)
配置软件源
连上网之后我们就可以安装软件了,安装之前我们先修改一下软件包源。修改的过程也可以通过 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:
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 的配置界面了:
安装 HomeAssistant 等 docker 包
docker 安装软件的过程大概分为 docker pull 和创建 container 两个过程。以 HomeAssistant 为例,我们首先要知道自己需要拉取的包名字,如:
docker pull homeassistant/aarch64-homeassistant:latest
然后可以通过 portainer 或者直接用 docker run 的方式来创建容器。
配置 samba
samba 的配置很简单,第一步配置共享目录,第二步设置用户密码,第三步重启服务即可:
共享目录配置文件在 /etc/samba/smb.conf,只需要在文件末尾添加共享名称(显示在Explorer里的名称)和 path 以及授权用户即可
用户密码通过 smbpasswd [用户名] 来设置。如果是新用户需要用 smbpasswd -a [用户名] 来添加用户。
然后运行 systemctl restart smbd.service 重启服务器,打开资源管理器输入 盒子IP 就能访问了。盒子默认 host 为 aml,所以也可以通过 aml 访问:
配置 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 目录
最后,如果你有公网 IP 要挂 pt 的话,别忘了在路由器上打开端口转发,把 tr 的 peer 端口共享出去。
总结
N1 + armbian 的玩法还有很多,包括 nextcloud、媒体服务、旁路由等,甚至可以作为一台小型服务器用来提供 web 服务,而且性能相当不错。在我这里同时运行两个 docker 服务,开 tr 下载,然后通过 samba 看盒子里下的电影,CPU 也不过个位数,内存才用了三百兆左右;还有其它的玩法就等值友们共同开发了
sahara11
校验提示文案
蓝天之翼
校验提示文案
Tianli
校验提示文案
zllbright
校验提示文案
值友5783006477
配置一个 U 盘,用来引导 EMMC 上的系统
这个意思是?我想用EMMC 上的系统,还是必须要插一个u盘才行,离开了u的引导,盒子还是跑不起来?
校验提示文案
老大爷呢
校验提示文案
vegaone
校验提示文案
等等党威武
校验提示文案
重庆南翔
校验提示文案
nowwo
校验提示文案
值友7756522056
校验提示文案
007的9527
校验提示文案
梅加雨
校验提示文案
没有核的核桃
校验提示文案
伪装者X
校验提示文案
ozdroid
校验提示文案
九星花园
校验提示文案
我叫哦麦糕
校验提示文案
执业值评师
校验提示文案
王乙乙
校验提示文案
值友5783006477
配置一个 U 盘,用来引导 EMMC 上的系统
这个意思是?我想用EMMC 上的系统,还是必须要插一个u盘才行,离开了u的引导,盒子还是跑不起来?
校验提示文案
买卖成仁义在
校验提示文案
wangheng669
校验提示文案
华小腊
BOOT分区的格式是 FAT16
校验提示文案
值友8315322539
校验提示文案
跳跃幻想
校验提示文案
爱的昵称
校验提示文案
重庆南翔
校验提示文案
lee008
校验提示文案
[已注销]
校验提示文案
哈利哈利啵
校验提示文案
余风
校验提示文案
Ho---
校验提示文案
FMZxx
校验提示文案
jeffery
校验提示文案
独猎鹏
校验提示文案
Null_毕方
多谢
校验提示文案
happystayfoolish
校验提示文案
liweiwp
校验提示文案
highwill
校验提示文案