YY3568 刷 FnNAS 后修复 WiFi 和 USB 3.0 的方法
背景
YY3568(风火轮)刷了 FnNAS ARM 版镜像后,WiFi 和蓝色 USB 3.0 口都不工作。
原因是 FnNAS 自带的设备树是 Firefly Station P2(rk3568-roc-pc.dtb),和 YY3568 的硬件布局有两处关键差异:
- WiFi: Station P2 用 SDIO 接 Broadcom AP6256 WiFi,而 YY3568 用 M.2 PCIe 接 RTL8822CE 。Station P2 的 DTB 里 SATA 占了 PCIe 通道,导致 WiFi 芯片无法初始化。
- USB 3.0: YY3568 蓝色 USB 3.0 口的 5V 供电走的是 GPIO0_D6(gpio-30),Station P2 的 DTB 里没有这个 regulator,导致 USB 3.0 口没有 VBUS 供电,插什么设备都识别不到。
修复方法
通过 DT overlay 覆盖设备树,不需要替换整个 DTB,可以安全回滚。
1. SSH 登录板子
ssh root@<你的板子IP>
2. 创建 DT overlay 源文件
cat > /tmp/yy3568-fixes.dts << 'EOF'
/dts-v1/;
/plugin/;
/ {
compatible = "rockchip,rk3568";
/* 给蓝色 USB 3.0 口加上 5V 供电(YY3568 专用 GPIO0_D6) */
fragment@0 {
target-path = "/";
__overlay__ {
usb30-5v-regulator {
compatible = "regulator-fixed";
regulator-name = "usb30_5v";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio0 30 0>;
enable-active-high;
regulator-always-on;
regulator-boot-on;
};
};
};
/* 禁用 SATA2,释放 combphy 给 PCIe WiFi */
fragment@1 {
target = <&sata2>;
__overlay__ {
status = "disabled";
};
};
/* 启用 PCIe2x1,给 M.2 WiFi 用 */
fragment@2 {
target = <&pcie2x1>;
__overlay__ {
status = "okay";
};
};
/* 禁用 SDIO WiFi(YY3568 没有 SDIO WiFi) */
fragment@3 {
target = <&sdmmc2>;
__overlay__ {
status = "disabled";
};
};
};
EOF
3. 编译并安装 overlay
mkdir -p /boot/overlay-user
dtc -@ -I dts -O dtb -o /boot/overlay-user/yy3568-fixes.dtbo /tmp/yy3568-fixes.dts
4. 配置 FnNAS 加载 overlay
编辑 /boot/fnEnv.txt,先备份:
cp /boot/fnEnv.txt /boot/fnEnv.txt.bak
在文件末尾添加一行:
user_overlays=yy3568-fixes
5. 重启
reboot
修复效果
重启后:
WiFi + 蓝牙:
$ lspci
01:00.0 Network controller: Realtek RTL8822CE 802.11ac PCIe Wireless
$ ip link show wlp1s0
wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> state UP
USB 3.0(蓝色口插 U 盘):
$ lsusb -t
Bus 04.Port 1: Driver=xhci-hcd, 5000M
|__ Port 1: Dev 2, Class=Mass Storage, Driver=usb-storage, 5000M
之前插蓝色口完全无反应,现在 5Gbps SuperSpeed 正常。
回滚
如果出问题,恢复原始配置:
cp /boot/fnEnv.txt.bak /boot/fnEnv.txt
reboot
技术细节
- 内核版本:
6.12.41-trim
- 启动时 dmesg 会有一条
rockchip-naneng-combphy fe830000.phy: wait phy status ready timeout 警告,这是 mainline 内核 combphy 驱动的超时值太短(1ms),不影响实际使用
- YY3568 官方 DTS 源码参考: https://github.com/youyeetoo/yy3568-linux-kernel.5.10/blob/master/arch/arm64/boot/dts/rockchip/rk3568-yy3568.dts