Ubiquiti Edgerouter 6p 刷入 OpenWrt 折腾笔记


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)

Github - 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] 大佬建议精简部分出错

  1. 如果未安装 libustream-openssl,会导致无法更新软件包列表,报需要安装 libustream-* 包。需要自己在这里下载 libubox20220927_2022-09-27-ea560134-1_mips64_octeonplus.ipklibopenssl3_3.0.8-9_mips64_octeonplus.ipklibustream-openssl20201210_2023-02-25-498f6e26-1_mips64_octeonplus.ipk 上传安装进行修复。
  2. 如果未安装 luci-compat ,会导致在软件包列表中安装 luci-app-openclash 后,luci 界面报错,无法使用。需要通过连接 Console 端口,输入命令 opkg install luci-compat 进行手动安装。

请求构建完毕后再下载新的映像 SYSUPGRADE(使用 Sysupgrade 映像以更新现有运行 ImmortalWrt 的设备。该映像可以在 LuCI 界面或终端中使用。)

[!NOTE] 系统
以下内容基于 ImmortalWrt 系统撰写。OpenWrt 官方系统同理(例如将使用到的文件名改为 openwrt-*)。

写入固件到 USB 闪存

格式化 USB 闪存

将闪存格式化为 VFATFAT32 文件格式。

使用软件

这里以 macOS 为例,在访达(Finder)中打开 ApplicationsUtilitiesDisk Utility

image-20241026180721

选择硬盘,并点击上方的格式化(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.taropenwrt-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 连接

image-20241026183004

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

刷入系统

步骤:

  1. 确认设备处于关闭状态并且未连接电源线。
  2. 将 USB 闪存盘连接到 EdgeRouter 6P 前置 USB 端口
  3. 使用前端控制台 RJ45 端口连接串行电缆
  4. 将电源线连接至 EdgeRouter 6P
  5. 将终端连接到控制台,查看 uboot 启动过程(以 macOS 终端为例)
screen /dev/tty.usbserial-<serial_num> 115200
  1. 连接 EdgeRouter 6P 的电源线
  2. 按键盘上的(随机)按钮中断启动,登录到 uboot
  3. 在控制台键入 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
  1. 检测到硬盘后,通过键入以下内容将 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

  1. 将 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:
# 其他内容....
  1. 启动过程应该已经结束,按下回车键后,你将看到控制台
  2. 创建 U 盘挂载目录,键入: mkdir /tmp/sda
  3. 如果可能,可将闪存驱动器挂载到该目录,键入:mount /dev/sda1 /tmp/sda
  4. 将固件闪存到路由器内部存储空间,键入: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
# 其他内容....
  1. 如果第 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
    # 其他内容....
    
  2. 设备将重新启动,启动后您将看到运行 openwrt 的 edgerouter 6p

用网线链接路由器上的端口 eth1 - eth4 任一端口,在浏览器中输入 192.168.1.1 即可进入 luci 界面。

还原原厂固件

原厂固件下载

恢复教程

注意点:拔掉电源,按着 reset 键,再插入电源进入恢复模式

11 Likes

第一第一:smiling_imp::smiling_imp::smiling_imp::+1:t2:

1 Like

:smiling_imp::smiling_imp::smiling_imp: 不愧是霸天虎成员

1 Like

好教程!
是我玩不起的路由器 :tieba_009:

1 Like

可以捡个战痕累累的洋垃圾 :bili_057:

1 Like

太强了,天哥 :bili_057:

1 Like

:bili_110: :bili_110: :bili_110: 谢谢 Jay

2 Likes

太强了!威震天!

1 Like

太强了!大帅哥!

1 Like

不愧是赛博坦星人

1 Like

太强了!!! :muscle:

1 Like

还的是派总哇

派总有石粒!!!

:bili_110: 哇首席来啦

:bili_057: 不愧是 Jay!

1 Like