author: delph1s
date: 2024-10-28T18:18:18
warning: 部分内容摘自 OpenWrt 官方网站 Ubiquiti EdgeRouter 6P 硬件教程。文章在官网教程上加工创作,转载请注明出处。
tags:
- Ubnt EdgeRouter 6P
- OpenWrt
简介
Ubiquiti EdgeRouter 6P 是一款基于 Cavium Octeon III 平台的 6 端口路由器。它可以进行千兆路由。它有 5 个普通千兆以太网端口和一个 SFP 端口。OpenWRT 目前不支持该设备通过 5 个以太网端口进行无源 POE 的功能。
OpenWrt Ubiquiti EdgeRouter 6P 官方教程
开始折腾
下载系统
官方系统
在此处下载 OpenWrt 官方系统,以及包含软件包的升级包。(可进行自定义打包的软件包)
点击下载映像中的 KERNEL(内置最简文件系统的 Linux 内核,适用于首次安装或故障恢复。)以及 SYSUPGRADE(使用 Sysupgrade 映像以更新现有运行 ImmortalWrt 的设备。该映像可以在 LuCI 界面或终端中使用。)
第三方系统(ImmortalWrt)
也可在此处下载 ImmortalWrt 版本系统,包含了常用的软件包。(可进行自定义打包的软件包)
点击下载映像中的 KERNEL(内置最简文件系统的 Linux 内核,适用于首次安装或故障恢复。)
初始预安装软件包列表如下:
base-files block-mount busybox ca-bundle default-settings-chn dnsmasq-full dropbear e2fsprogs firewall4 fstools ipv6helper kmod-nf-nathelper kmod-nf-nathelper-extra kmod-nft-offload libc libgcc libustream-openssl logd luci luci-app-opkg luci-compat luci-lib-base luci-lib-ipkg mkf2fs mtd netifd nftables opkg ppp ppp-mod-pppoe procd procd-seccomp procd-ujail uci uclient-fetch urandom-seed urngd kmod-gpio-button-hotplug kmod-leds-gpio kmod-of-mdio kmod-sfp kmod-usb3 kmod-usb-dwc3 kmod-usb-storage-uas
根据CrazyBoyFeng大佬的描述,打包列表可以适当精简,我的配置如下:
base-files block-mount busybox ca-bundle default-settings-chn dnsmasq-full dropbear e2fsprogs luci-i18n-firewall-zh-cn fstools ipv6helper kmod-nf-nathelper kmod-nf-nathelper-extra kmod-nft-offload libc libgcc libustream-openssl logd luci-i18n-opkg-zh-cn luci-compat luci-lib-base luci-lib-ipkg mkf2fs mtd netifd nftables ppp ppp-mod-pppoe procd procd-seccomp procd-ujail uci uclient-fetch urandom-seed urngd kmod-gpio-button-hotplug kmod-leds-gpio kmod-of-mdio kmod-sfp kmod-usb3 kmod-usb-dwc3 kmod-usb-storage-uas
[!ERROR] 大佬建议精简部分出错
- 如果未安装
libustream-openssl
,会导致无法更新软件包列表,报需要安装libustream-*
包。需要自己在这里下载libubox20220927_2022-09-27-ea560134-1_mips64_octeonplus.ipk
、libopenssl3_3.0.8-9_mips64_octeonplus.ipk
、libustream-openssl20201210_2023-02-25-498f6e26-1_mips64_octeonplus.ipk
上传安装进行修复。- 如果未安装
luci-compat
,会导致在软件包列表中安装luci-app-openclash
后,luci
界面报错,无法使用。需要通过连接 Console 端口,输入命令opkg install luci-compat
进行手动安装。
请求构建完毕后再下载新的映像 SYSUPGRADE(使用 Sysupgrade 映像以更新现有运行 ImmortalWrt 的设备。该映像可以在 LuCI 界面或终端中使用。)
[!NOTE] 系统
以下内容基于 ImmortalWrt 系统撰写。OpenWrt 官方系统同理(例如将使用到的文件名改为 openwrt-*)。
写入固件到 USB 闪存
格式化 USB 闪存
将闪存格式化为 VFAT
或 FAT32
文件格式。
使用软件
这里以 macOS 为例,在访达(Finder)中打开 Applications
→ Utilities
→ Disk Utility
选择硬盘,并点击上方的格式化(Erase)按钮,选择格式为 FAT。
使用命令行
这里以 macOS 为例,使用命令 sudo diskutil eraseDisk FAT32 <disk_name> </path/of/usb>
进行格式化。
# 查看硬盘
diskutil list
# 格式化目标硬盘
sudo diskutil eraseDisk FAT32 OPENWRT /dev/disk2
复制固件到闪存
将下载的固件和升级文件复制到 USB 闪存。这里将 immortalwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
(或openwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
) 和 immortalwrt-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
(openwrt-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
)复制到 USB 闪存中。
连接设备 Console 端口
Console 端口
Console 端口是设备的控制台接入端口,用于用户通过终端(或仿真终端)对设备进行初始配置和后续管理。一般情况下,设备是 RJ45 的接口,也有老设备是 DB9 或 DB25 的接口,但无论是什么接口,它的协议都是 RS232,即在无流情况下是一收一发共四条连接线。
一般的 VPN 设备都带有一个 Console 端口,用来连接计算机或其他终端设备,通过特定软件来进行路由器的配置。该端口提供了一个 EIA/TIA-232 异步串行接口,用于在本地对路由器进行配置(首次配置必须通过控制台端口进行)。
[!NOTE] 购买线材
可购买 USB(type A 或 type C) 转 RJ45 的 Console 端口连接线。
终端连接 Console 端口
Ubiquiti 官方教程
支持的型号和串行控制台设置:
设备 | Console 端口 | 设备 | Console 端口 |
---|---|---|---|
ER-4 | 有 | ER-12 | 有 |
ER-6 | 有 | ER-12P | 有 |
ER-8-XG | 有 | ER-10X* | 有 |
ERPro-8 | 有 | EP-R8 | 有 |
ERLite-3 | 有 | ER-X-SFP | 无 |
ERPoE-5 | 有 | ER-X | 无 |
ER-8 | 有 | EP-R6 | 无 |
默认串行端口设置如下:
- Baud rate: 115200
- Data bits: 8
- Parity: NONE
- Stop bits: 1
- Flow control: NONE
[!NOTE] ER-10X
ER-10X 要求将波特率设为 57600。
[!NOTE] 连接到控制台
- RJ45 至 DB9 串行控制台电缆(翻转电缆)
- USB 至 DB9 适配器
- 终端仿真程序,如 PuTTY 或 macOS/Linux 终端
Windows 使用 PuTTY 连接
macOS 使用终端连接
# 查找 USB 设备
ls -ltr /dev/*usb*
# 输出示例
crw-rw-rw- 1 root wheel 99, 31 Dec 8 23:59 /dev/cu.usbserial-<serial_num>
crw-rw-rw- 1 root wheel 99, 31 Dec 9 23:59 /dev/tty.usbserial-<serial_num>
# 连接 Console
screen /dev/tty.usbserial-<serial_num> 115200
刷入系统
步骤:
- 确认设备处于关闭状态并且未连接电源线。
- 将 USB 闪存盘连接到 EdgeRouter 6P 前置 USB 端口
- 使用前端控制台 RJ45 端口连接串行电缆
- 将电源线连接至 EdgeRouter 6P
- 将终端连接到控制台,查看 uboot 启动过程(以 macOS 终端为例)
screen /dev/tty.usbserial-<serial_num> 115200
- 连接 EdgeRouter 6P 的电源线
- 按键盘上的(随机)按钮中断启动,登录到 uboot
- 在控制台键入
usb start
检测已连接的闪存盘
# 例子
Octeon ubnt_e300(ram)# usb start
(Re)start USB...
USB0: Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1: Starting the controller
USB XHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
- 检测到硬盘后,通过键入以下内容将 initramfs+kernel 载入内存:
fatload usb 0:1 0x20000000 immportalwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
# 例子
Octeon ubnt_e300(ram)# fatload usb 0:1 0x20000000 immportalwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
reading immportalwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
24939160 bytes read in 1396 ms (17 MiB/s)
[!ERROR] USB 位置
这里 USB 的位置可能处于别的地方,比如我的设备就是fatload usb 0:2 immportalwrt-octeon-generic-ubnt_edgerouter-6p-initramfs-kernel.bin
- 将 initramfs+kernel 加载到内存后,输入:
bootoctlinux 0 numcores=4 endbootargs mem=0
# 例子
Octeon ubnt_e300(ram)# bootoctlinux 0 numcores=4 endbootargs mem=0
Allocating memory for ELF segment: addr: 0xffffffff81100000 (adjusted to: 0x1100000), size 0x292337c
## Loading big-endian Linux kernel with entry point: 0xffffffff818d66b8 ...
Bootloader: Done loading app on coremask:
0xf
Starting cores:
# 其他内容....
- 启动过程应该已经结束,按下回车键后,你将看到控制台
- 创建 U 盘挂载目录,键入:
mkdir /tmp/sda
- 如果可能,可将闪存驱动器挂载到该目录,键入:
mount /dev/sda1 /tmp/sda
- 将固件闪存到路由器内部存储空间,键入:
sysupgrade /tmp/sda/immportalwrt-octeon-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
# 例子
root@OpenWrt:/tmp/sda# sysupgrade /tmp/sda/immportalwrt-octeon-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
Fri Feb 16 18:19:51 UTC 2024 upgrade: Image metadata not present
Cannot save config while running from ramdisk.
Fri Feb 16 18:19:51 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions.
Watchdog handover: fd=3
- watchdog -
Watchdog does not have CARDRESET support
Fri Feb 16 18:19:52 UTC 2024 upgrade: Sending TERM to remaining processes ...
Fri Feb 16 18:19:57 UTC 2024 upgrade: Sending KILL to remaining processes ...
[ 802.198113] stage2 (3364): drop_caches: 3
Fri Feb 16 18:20:03 UTC 2024 upgrade: Switching to ramdisk...
Fri Feb 16 18:20:04 UTC 2024 upgrade: Performing system upgrade...
flashing kernel to /dev/mmcblk0p1
flashing rootfs to /dev/mmcblk0p2
788+1 records in
788+1 records out
# 其他内容....
-
如果第 14 步中的 USB 设备无法工作(例如:不存在设备
/dev/sda1
),可以尝试以下方法:15.1 将 EdgeRouter 6P 的 eth0 端口连接到可连接互联网的路由器或交换机上。连上网线后控制台跳出端口连接信息。
# 例子 [ 351.133726] lan0: 1000 Mbps Full duplex, port 1, queue 1 [ 351.139077] IPv6: ADDRCONF(NETDEV_CHANGE): lan0: link becomes ready
15.2 转到新创建的文件夹:
cd /tmp/sda/
。# 例子 root@OpenWrt:/# cd /tmp/sda/ root@OpenWrt:/tmp/sda#
15.3 使用
wget
命令下载固件https://downloads.immortalwrt.org/releases/23.05.4/targets/octeon/generic/immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
(或者构建完毕的自定义软件包的链接)# 例子 root@OpenWrt:/tmp/sda# wget https://downloads.immortalwrt.org/releases/23.05.4/targets/octeon/generic/immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar Downloading 'https://downloads.immortalwrt.org/releases/23.05.4/targets/octeon/generic/immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar' Connecting to 151.101.130.132:443 Writing to 'https://downloads.immortalwrt.org/releases/23.05.4/targets/octeon/generic/immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar' immortalwrt-23.05.4-octe 100% |*******************************| 13630k 0:00:00 ETA Download completed (13957120 bytes)
15.4 将固件闪存到路由器内部存储空间,键入:
sysupgrade /tmp/sda/immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
# 例子 root@OpenWrt:/tmp/sda# sysupgrade immortalwrt-23.05.4-octeon-generic-ubnt_edgerouter-6p-squashfs-sysupgrade.tar Fri Feb 16 18:19:51 UTC 2024 upgrade: Image metadata not present Cannot save config while running from ramdisk. Fri Feb 16 18:19:51 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions. Watchdog handover: fd=3 - watchdog - Watchdog does not have CARDRESET support Fri Feb 16 18:19:52 UTC 2024 upgrade: Sending TERM to remaining processes ... Fri Feb 16 18:19:57 UTC 2024 upgrade: Sending KILL to remaining processes ... [ 802.198113] stage2 (3364): drop_caches: 3 Fri Feb 16 18:20:03 UTC 2024 upgrade: Switching to ramdisk... Fri Feb 16 18:20:04 UTC 2024 upgrade: Performing system upgrade... flashing kernel to /dev/mmcblk0p1 flashing rootfs to /dev/mmcblk0p2 788+1 records in 788+1 records out # 其他内容....
-
设备将重新启动,启动后您将看到运行 openwrt 的 edgerouter 6p
用网线链接路由器上的端口 eth1 - eth4 任一端口,在浏览器中输入 192.168.1.1
即可进入 luci
界面。
还原原厂固件
注意点:拔掉电源,按着 reset 键,再插入电源进入恢复模式