固件构建器可将您的 Unifi NVR/Unifi NVR Pro 转换为 OpenMediaVault NAS 设备。
这个仓库仍在大力开发中,应该被视为 alpha!
请注意,由于该固件当前需要预构建的 Ubiquiti 软件,因此该存储库没有可用的预构建映像。这是为了防止 Ubiquiti 的 IP 重新分配,所以请不要询问!此外,使用此存储库即表示您接受与其相关的所有风险,包括但不限于使您的保修失效以及免除所有各方与您的设备和此软件相关的任何责任。自行承担风险!
下载设备所需的 UNVR 固件,并将其放置在 unifi-firmware 目录中。请参阅该目录中的 README.md 以获取更多信息。
确保您的 Linux 系统已安装此存储库所需的软件包,它们是:
docker-ce losetup wget sudo make qemu-user-static squashfs-tools
请注意,不支持从 OSX/Windows 构建。需要一台 Linux 主机。
使用您的板名称集运行 make,然后坐下来等待固件映像的构建。根据您的计算机,这可能需要大约一个小时左右。
对于 UNVR: BOARD=UNVR make
对于 UNVR Pro: BOARD=UNVRPRO make
完成后,您将在 ./output 中获得压缩的磁盘映像
请注意,当前安装过程需要 UART 来修改 u-boot env 进行引导。将来,如果我能获得最新的内核 GPL 源代码,就不需要这个了。
确保您的 UNVR/UNVR Pro 正在运行与 unifi-firmware 目录中的 README.md 中引用的相同的 Unifi 固件。
构建固件映像(遵循使用部分),然后将其放在格式化为 ext4 的 HDD/SSD 上。将上述硬盘作为唯一硬盘放入 UNVR/UNVR Pro 中。
将 UART 连接到 UNVR/UNVR Pro:
在 UNVR 上,UART 位于 SFP+ 笼后面的 PCB 上,靠近板的中间(4 个引脚)。
在 UNVR Pro 上,UART 位于 PCB 上靠近 DC 备用电源端口(4 个引脚)的位置。
启动 UNVR/UNVR Pro,并在 UART 控制台中,当提示进入 u-boot shell 时按 Escape (Esc) 两次。您只有 2 秒钟的时间来完成此操作!
运行以下命令来更新内核命令行并保存更改:
setenv rootfs PARTLABEL=rootfs
setenv bootargsextra boot=local rw
saveenv
启动进入恢复。这可以使用以下命令来完成,或者拔掉 UNVR/UNVR Pro 的插头,并在重新启动时按住重置按钮 10~ 秒。
run bootcmdrecovery
启动恢复后,使用ubnt:ubnt
或root:ubnt
登录。请注意,这可以通过 UART shell 来完成,或者如果您愿意,可以通过 telnet 进入恢复中的 UNVR/UNVR Pro 的 IP 地址(如果您已联网)。
使用固件映像安装 HDD,然后将我们的自定义固件刷新到 EMMC/存储。 (请注意,下面的示例预计您的带有固件的 HDD 位于 /dev/sda)
联合国VR:
将磁盘挂载到 /mnt
mount /dev/sda1 /mnt
将 UNVR-NAS 固件映像写入 EMMC/Storage
请注意,如果您有带有内部 USB 驱动器的旧版 UNVR,则需要将/dev/boot
替换为 USB 驱动器的路径!
gunzip /mnt/debian-UNVR.img.gz
dd if=/mnt/debian-UNVR.img of=/dev/boot bs=4M
sync
reboot
UNVR 专业版:
将磁盘挂载到 /mnt
mount /dev/sda1 /mnt
将 UNVR-NAS 固件映像写入 EMMC/Storage
gunzip /mnt/debian-UNVRPRO.img.gz
dd if=/mnt/debian-UNVRPRO.img of=/dev/boot bs=4M
sync
reboot
此时,您可以删除您使用的 HDD/SSD,并在您的 UNVR/UNVR Pro 上享受带有 OpenMediaVault 的 Debian 12! OpenMediaVault 的默认登录名是admin:openmediavault
。 SSH 登录信息为debian:debian
。请注意,首次启动可能需要一些时间,因为 cloud-init 会运行来完成设置。
要恢复出厂 UNVR/UNVR Pro 固件,您可以执行以下步骤:
开机时按住前面的“重置”按钮以启动进入恢复
一旦设备处于恢复模式,请远程登录到设备的 IP 地址(UNVR Pro 将在触摸屏上显示此信息)。在登录提示符处,使用ubnt:ubnt
或root:ubnt
登录。
擦除 uboot env,以删除我们的自定义引导命令。这应该是 mtd1/mtd2,但请首先使用cat /proc/mtd
进行验证,以防止您的设备变砖!不要跳过这一步!输出应与下面匹配,如果不匹配,请不要继续!
$ cat /proc/mtd
dev: size erasesize name
mtd0: 001c0000 00001000 "u-boot"
mtd1: 00010000 00001000 "u-boot env"
mtd2: 00010000 00001000 "u-boot env redundant"
mtd3: 00010000 00001000 "Factory"
mtd4: 00010000 00001000 "EEPROM"
mtd5: 01000000 00001000 "recovery kernel"
mtd6: 00e00000 00001000 "config"
识别出 uboot 环境后,删除它们以删除我们在安装过程中添加的设置覆盖:
dd if=/dev/zero of=/dev/mtd1
dd if=/dev/zero of=/dev/mtd2
接下来,擦除 EMMC,以便擦除所有分区:
请注意,如果您有带有内部 USB 驱动器的旧版 UNVR,则需要将/dev/boot
替换为 USB 驱动器的路径!
/sbin/parted -s -- /dev/boot mklabel gpt
现在您可以使用 Unifi Recovery WebUI 上传固件文件并恢复您的设备。