部分在 macOS 下操作。

准备

  • N1
  • 双公头 USB 数据线
  • 8GB U盘
  • HDMI 线
  • USB 键鼠
  • MacBook
  • RJ45 网线
  • 刷机包

降级

现在一般拿到手的 N1 版本都会比较新,我们需要先把版本降到 2.19 以下,降级步骤如下:

为了避免 N1 在连接网络时自动更新,我们暂时先把路由器的外部网络断开,然后将网线从 N1 连接到路由器的 LAN 口,插上 HDMI 和鼠标并通电开机。

开启 ADB 调试:

N1 开机后,会显示天天链盒子的页面,鼠标点击官方固件版本号 4 次,下方会出现「ADB调试开启」字样即可。

重启至 fastboot 模式:

安装 Homebrew(非科学环境可能略慢)。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

将以上命令粘贴至 终端,然后按回车键。脚本会在执行前暂停,并说明将它将做什么,按回车继续。

如果屏幕提示您输入密码,请输入 Mac 的用户密码以继续。当您输入密码时,它不会显示在屏幕上,但系统会接受它。所以只需输入密码,然后按回车键。然后等待命令完成。

通过 Homebrew 安装 ADB 调试工具:

brew cask install android-platform-tools

# 测试是否正常安装
adb devices

应该会检测到 N1 的设备信息,然后我们连接 N1,将该 IP 替换为你自己的。

adb connect 192.168.50.111:5555

如果返回类似 connected to 192.168.50.111,即表示连接成功。

连接成功后输入:

adb shell reboot fastboot

此时 N1 会重启至 fastboot 模式。

刷入降级关键分区:

将你的 N1 用双公头 USB 数据线与 MacBook 连接,务必连接至 靠近 HDMI 接口的那个 USB 接口

终端执行 fastboot devices 查看 fastboot 工具是否已识别设备。

如果返回类似 XXXXXXXXXX(该为序列号) fastboot 这样的提示,即表示成功识别,然后就可以刷入降级分区了。

依次输入命令刷入各个分区,在输入指令后,可把相应文件直接拖入「终端」,避免手动输入路径的麻烦,文件路径以你自己的为准。

fastboot flash boot /Users/saintw/n1/boot.img

fastboot flash bootloader /Users/saintw/n1/bootloader.img

fastboot flash recovery /Users/saintw/n1/recovery.img

如果没有返回任何错误信息,即表示降级成功。

输入 fastboot reboot 重启设备。

重启完成再次开启 ADB 调试并通过 adb connect 192.168.50.111:5555 连接上 N1。

之后执行 adb shell reboot update 进入刷机模式 (此时 N1 处于关机状态)。

至此,降级步骤完成,可以放心的刷各种固件了。

刷入 Armbian

Windows 的话可以使用 USB 烧录工具将 这个帖子 中的 Armbian 写入 U盘,该贴固件已替换过 dtd。

macOS 的话,可以通过 dd 命令烧录 U盘,以下为 macOS 步骤。

终端执行 diskutil list 看看磁盘设备列表:

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 B3559850-25F0-409D-A081-927AB2B16E3C
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *8.0 GB     disk2
   1:             Windows_FAT_32 NUC6_WIN10              8.0 GB     disk2s4

所以很明显,U盘是 /dev/disk2,先把它卸载了,设备号以您自己的为准:

$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

然后就是将 IMG 文件写入 U盘了,这个过程得花点时间,同时你还需要输入 macOS 账户密码来确认,注意替换文件名及设备号:

$ sudo dd if=armbian_n1.img of=/dev/disk2 bs=1m
Password:
655+0 records in
655+0 records out
686817280 bytes transferred in 162.123944 secs (4236372 bytes/sec)

最后就是弹出U盘,收工。

$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected

随后把 U盘插入处在 刷机模式 的 N1 并通电开机。

此时将通过 U盘启动的 N1 接入路由器,使用 SSH 登录 N1,默认账户 root 密码 1234,首次登录需要修改密码并创建一个普通用户,按提示操作即可。

刷入 OpenWrt

不可描述.7z 解压得到 img,随后将其重命名为 openwrt-n1.img,再使用 SFTP 将其上载到 N1 的 /root/ 目录下。

随后依次执行下方命令:

# 创建 mbr 分区表
/boot/create-mbr-linux.sh

# 将 Armbian 写入 EMMC
./install.sh

# 创建文件夹
mkdir /emmc2

# 将 EMMC 系统分区挂载到目录
mount /dev/mmcblk1p2 /emmc2

# 清理该分区所有文件
rm -rf /emmc2/*

# 将 img 挂载为设备
losetup -f -P --show openwrt-n1.img

# 将 img 挂载设备的系统分区再挂载到 media 目录
mount /dev/loop0p2 /media

# 将 media 目录下所有文件拷贝到 EMMC
cp -R /media/* /emmc2

# 卸载 img 挂载目录 
umount /dev/loop0p2

# 卸载 img 挂载设备
losetup -d /dev/loop0

# 卸载 EMMC 挂载
umount /dev/mmcblk1p2

# 关机
poweroff

随后取下 U盘,断电重启即可进入 OpenWrt。

设置旁路由

此时将 N1 网口直连 MacBook,网络地址使用 DHCP 获取。

随后打开 192.168.1.1 进入 OpenWrt。

默认账户名 root,密码 password

在 OpenWrt 网络接口中将 br-lan 接口的 IPv4 地址修改为主路由网段中的一个地址,比如 192.168.50.2

再将网关设置为主路由的地址,如 192.168.50.1

IPv4 广播设置为 192.168.50.255

DNS 地址可自行发挥。

同时勾选下方的 不在此接口提供 DHCP 服务。

保存,然后将 N1 连接到主路由的 LAN 口。

进入主路由后台中,将主路由的 DHCP 的默认网关设置为 192.168.50.2,同时将 DNS 服务器也修改为 192.168.50.2

解决 DNS 问题

如果您在 LuCi 遇到一直显示 正在收集数据…,则进行以下操作。

使用 SSH 登录 OpenWrt 执行以下两条命令,随后重启(似乎是因为 PDNSd)。

# 删除文件
rm /etc/resolv.conf

# 软链接
ln -s /tmp/resolv.conf.auto /etc/resolv.conf

解决 opkg 问题

该固件默认的软件源已经不提供 http 访问了。

系统 -> 软件包 -> 配置 中,将发行版软件源的地址全部修改为 https 后提交即可。

参考