分享

N1 盒子刷最新版 armbian 及软件安装

 贪吃小熊熊 2019-12-22

前段时间关注了#如何玩转NAS 后,玩性大发,各路值友们分享的好玩东西都分别尝试了一下,现在主力是一台x86的小箱子做云存储,部署了smb/jellyfin/nextcloud等。不过感觉最好玩的还是N1盒子,主要是玩法太多了。

不过最爱的还是 armbian,因为它有无限可能。不过包括某山和张大妈、各种网上资料里,系统版本都有点老了,一些内容已经过时。我自己踩了遍各种坑,现在整理一下,希望帮助到有兴趣的值友,也作为自己的备忘。

  1. 这篇文章并不适合所有人,由于armbian有一定上手难度,需要一些linux基础,适合有嵌入式设备操作经验的同学

  2. 关于N1如何线刷降级、如何准备各种软件就不再赘述了。

  3. 截止目前,这个教程还没有完全完善,最新系统从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 断开。

到这一步安装过程已经全部完成了,已经可以承接无限可能了N1 盒子刷最新版 armbian 及软件安装 接下来的步骤并不是必需的,大家可以根据情况各取所需。

连接 Wi-Fi

Armbian 提供了命令行配置工具 armbian-config,可以进行连接 wifi、安装软件等操作。命令行工具可以通过 ssh 登录的方式进行(当然必须是有有线连接或者已经连上 wifi 的前提下),也可以通过外接硬盘直接在终端进行。我这里通过有线连接后,ssh 上去进行配置的。windows 最新版已经内置了 ssh 命令,不需要额外装 putty 什么的了:

命令行远程登录并运行 armbian-config命令行远程登录并运行 armbian-config

选择 Network / WiFi 后,可以选择自己的 SSID 进行连接了(支持2.4G和5G)

wifi 选择界面,有可能会有渲染出错不过没关系wifi 选择界面,有可能会有渲染出错不过没关系

配置软件源

连上网之后我们就可以安装软件了,安装之前我们先修改一下软件包源。修改的过程也可以通过 ssh 远程连接的方式,这里不再赘述。由于我选择的是 debian,所以默认的软件源是 debian 默认的。可以直接把源地址修改成这一行(/etc/apt/source.list):

deb http://mirrors./debian buster main contrib non-free

Armbian 默认还增加了自己的源,不更新驱动和内核的话可以直接删掉 /etc/apt/source.list.d/ 下面的文件。

镜像源的设置包含三部分。第一部分是服务器地址,第二部分是系统版本,第三部分是需要的软件包类型。完整的服务器地址可以从 https://www./mirror/list.zh-cn.html 查看。其中国内的支持 aarch64 的有:

ftp.cn.

ftp2.cn.

mirror.lzu.edu.cn # 兰州大学

mirrors. # 华为

mirrors.tuna.tsinghua.edu.cn #清华大学

mirrors.ustc.edu.cn #中科大

然后运行 apt update,就可以更新软件包列表了。

安装到 EMMC

到目前为止系统都是跑在U盘上面的,为了更好的读写性能,我们可以将系统拷贝到内置的 EMMC 中。不过最新 armbian 的安装过程是破坏性的,安装完成后,盒子将不能直接启动,必须插入外置 U 盘才能启动。所以我们要做三件事情:

  1. 备份 EMMC 上的分区,以备将来刷回旧的系统

  2. 将 U 盘上的系统刷到 EMMC 上

  3. 配置一个 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 软件选择界面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 的配置界面了:

portainerportainer

安装 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.confsmb.conf

用户密码通过 smbpasswd [用户名] 来设置。如果是新用户需要用 smbpasswd -a [用户名] 来添加用户。

然后运行 systemctl restart smbd.service 重启服务器,打开资源管理器输入 盒子IP 就能访问了。盒子默认 host 为 aml,所以也可以通过 aml 访问:

访问 smb 文件访问 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 界面transmission web 界面

最后,如果你有公网 IP 要挂 pt 的话,别忘了在路由器上打开端口转发,把 tr 的 peer 端口共享出去。

总结

N1 + armbian 的玩法还有很多,包括 nextcloud、媒体服务、旁路由等,甚至可以作为一台小型服务器用来提供 web 服务,而且性能相当不错。在我这里同时运行两个 docker 服务,开 tr 下载,然后通过 samba 看盒子里下的电影,CPU 也不过个位数,内存才用了三百兆左右;还有其它的玩法就等值友们共同开发了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多