QNAP Qhora-301W 全网最全玩机攻略
前言
平民法拉利,8072A + 双 10G RJ45 只要 500。要出给群友了,记录一下怎么折腾的
- 安全千万条,备份第一条。刷机不规范,亲人两行泪。
- 相关资源
配置
| SoC | 无线 | 存储 | 网口 | 电源 |
|---|---|---|---|---|
| IPQ8072A | AX3600(非大陆) | 1GB + 4GB + USB 3.0*2 | 10GbE*2 + 1GbE*4 | 12V / 3.33A |
SoC:IPQ8072A,四核 A53 2.2GHz 14nm
2.4GHz:4x4 MIMO 40MHz 1147Mbps
- 基带芯片:SoC 集成
- RF 芯片:QCN5024
- FEM 芯片:SKY85347-11*4
- 天线:4.5dBi 增益 PCB 内置天线*4
5GHz:4x4 MIMO 80MHz 2402Mbps / 2x2 MIMO 160MHz 2402Mbps(原厂固件用 160MHz 需要 WAN 口 IP 非中国大陆)
- 基带芯片:SoC 集成
- RF 芯片:QCN5054
- FEM 芯片:SKY85755-11*4
- 天线:5.2dBi 增益 PCB 内置天线*4
网口
- 10GbE*2: AQR113C (PHY) *2
- 1GbE*4: QCA8075 (PHY)
内存:512MB*2 DDR3 1600
闪存:8MB SPI NOR(ART、MIBIB、CDT、U-Boot 等启动引导分区)+ 4GB eMMC NAND(固件操作系统分区 kernel 和 rootfs 等)
MTD 分区表
1
2
3
4
5
6
7
8
9
10
11
12
13dev: size erasesize name
mtd0: 00050000 00010000 "0:SBL1"
mtd1: 00010000 00010000 "0:MIBIB"
mtd2: 00180000 00010000 "0:QSEE"
mtd3: 00010000 00010000 "0:DEVCFG"
mtd4: 00010000 00010000 "0:APDP"
mtd5: 00040000 00010000 "0:RPM"
mtd6: 00010000 00010000 "0:CDT"
mtd7: 00020000 00010000 "0:APPSBLENV"
mtd8: 00100000 00010000 "0:APPSBL"
mtd9: 00040000 00010000 "0:ART"
mtd10: 00080000 00010000 "0:ETHPHYFW"
mtd11: 003d0000 00010000 "reserved"MMC 分区表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Partition Map for MMC device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000022 0x00008021 "0:HLOS" attrs: 0x0000000000000000 type: b51f2982-3ebe-46de-8721-ee641e1f9997 guid: 1a373c3c-588e-eff4-5182-68ad83e0e62e
2 0x00008022 0x00010021 "0:HLOS_1" attrs: 0x0000000000000000 type: a71da577-7f81-4626-b4a2-e377f9174525 guid: 7d35f31d-0980-2220-edfd-6228595b79d2
3 0x00010022 0x00018021 "0:HLOS_2" attrs: 0x0000000000000000 type: 3e972198-336f-11ea-baa1-52540063a6b7 guid: 964e7e67-6666-7303-312a-291b757640e8
4 0x00018022 0x00118021 "rootfs" attrs: 0x0000000000000000 type: 98d2248d-7140-449f-a954-39d67bd6c3b4 guid: 2a213133-47f8-80a1-5d66-1d565a2ec756
5 0x00118022 0x00218021 "rootfs_1" attrs: 0x0000000000000000 type: 5647b280-dc2a-485d-9913-cf53ac40fa32 guid: 77f91baf-6750-e138-dbe5-434eaeded6dd
6 0x00218022 0x00318021 "rootfs_2" attrs: 0x0000000000000000 type: cd26dc90-3370-11ea-baa1-52540063a6b7 guid: 8530d17c-21e3-f82b-12ec-87fd429a600e
7 0x00318022 0x0031a021 "0:WIFIFW" attrs: 0x0000000000000000 type: 5911fd72-35be-424e-975d-69c957ad3a43 guid: 9420c4b0-ba83-2b38-6ba6-2839be048c92
8 0x0031a022 0x00322021 "reserved" attrs: 0x0000000000000000 type: 8da63339-0007-60c0-c436-083ac8230908 guid: e590e607-3410-795e-afbc-888e9b2ea17b
9 0x00322022 0x0073d821 "rootfs_data" attrs: 0x0000000000000000 type: ab1760da-a8bb-4d6f-98d2-9ad3ab9009cd guid: d1402149-3e8e-0709-99d9-170bfab2f66c
额外
- USB:5Gbps Type A *2
- 按键:Reset*1 + WPS*1 + 开关*1
- 电源:12V / 3.33A
- 尺寸:250mm * 180mm * 48mm
- 重量:1.9kg

刷机
这机器的 eMMC 有 4GB,为 A / B 双分区,两个分区里的内容一模一样。我们要刷机一般是切到分区 1,然后把 OpenWrt 写到分区 0,也就是
/dev/mmcblk0p2和/dev/mmcblk0p51
2
3
4
5
6
7
8
9/dev/mmcblk0p1 --- "0:HLOS" --- 16MB --- 系统 0 kernel 分区
/dev/mmcblk0p2 --- "0:HLOS_1" --- 16MB --- 系统 1 kernel 分区
/dev/mmcblk0p3 --- "0:HLOS_2" --- 16MB --- 系统 2 kernel 分区(空的,官方未刷入固件,也无法引导到该分区,忽视)
/dev/mmcblk0p4 --- "rootfs" --- 512MB --- 系统 0 rootfs 分区
/dev/mmcblk0p5 --- "rootfs_1" --- 512MB --- 系统 1 rootfs 分区
/dev/mmcblk0p6 --- "rootfs_2" --- 512MB --- 系统 2 rootfs 分区(空的,官方未刷入固件,也无法引导到该分区,忽视)
/dev/mmcblk0p7 --- "0:WIFIFW" --- 4MB --- 无线的 Firmware 分区
/dev/mmcblk0p8 --- "reserved" --- 16MB --- 保留分区(没用的)
/dev/mmcblk0p9 --- "rootfs_data" --- 2.1GB --- rootfs 的数据分区,多个官方系统共用的数据分区,目前 OpenWrt 固件没有使用该分区刷机有 TTL 和免拆两种刷法,只要「不动原厂 U-Boot」 基本上就是刷不死
但是如果想免拆刷,不免要动 MTD 分区。比如刷 Lean 的不死 U-Boot,肯定得写 mtd8 分区,操作不谨慎就有概率砖。而且作为这台机器唯一的第三方 U-Boot,它说自己支持双分区切换,实则不能。想刷回原厂 U-Boot,就只能在 OpenWrt 下写 mtd8 分区。但是很多 OpenWrt 系统默认 MTD 分区为只读,想写就得装
kmod-mtd-rw,又是一个可能写坏 MTD 分区的坑点。免拆涉及 MTD 分区的写入都得谨慎,出错了就得上夹子咯当然如果你不想回原厂系统的话,以上其实无所谓。但是如果想双系统切换的话,尽量还是 TTL 吧,不动原厂 U-Boot 基本就是刷不死。当然也可以免拆刷,做好备份万一给 MTD 分区刷寄了,拿编程器刷回去呗
刷 QSDK 和万兆驱动
开启 SSH
在开启路由器可以正常进系统的状态下,长按路由器后的 WPS 键,直到听到第二声“嘟”松开(大约 12 秒)就 OK连接路由器后台
- 端口:22200
- 用户名:admin
- 密码:Web 后台登陆密码
将启动分区切换到分区 1
1
sudo fw_setenv current_entry 1
重启
1
sudo reboot
检查确实切换到分区 1
1
sudo fw_printenv -n current_entry
如果为
0就重复前面操作上传 QSDK 的
kernel.bin和rootfs.bin到/tmp重中之重!!!:备份整个 MTD 和 eMMC 分区
1
2
3
4
5
6
7
8
9
10
11
12
13sudo dd if=/dev/mtd0 of=/tmp/mtd0.bin
sudo dd if=/dev/mtd1 of=/tmp/mtd1.bin
sudo dd if=/dev/mtd2 of=/tmp/mtd2.bin
sudo dd if=/dev/mtd3 of=/tmp/mtd3.bin
sudo dd if=/dev/mtd4 of=/tmp/mtd4.bin
sudo dd if=/dev/mtd5 of=/tmp/mtd5.bin
sudo dd if=/dev/mtd6 of=/tmp/mtd6.bin
sudo dd if=/dev/mtd7 of=/tmp/mtd7.bin
sudo dd if=/dev/mtd8 of=/tmp/mtd8.bin
sudo dd if=/dev/mmcblk0p1 of=/tmp/mmcblk0p1
sudo dd if=/dev/mmcblk0p4 of=/tmp/mmcblk0p4
sudo dd if=/dev/mmcblk0p7 of=/tmp/mmcblk0p7
sudo dd if=/dev/mmcblk0p9 of=/tmp/mmcblk0p9然后把
mtd0 - 8.bin、mmcblk0p1、mmcblk0p4、mmcblk0p47、mmcblk0p9下到本地妥善保存将 QSDK 刷入
0分区1
2
3
4
5sudo dd if=/tmp/kernel.bin of=/dev/mmcblk0p1
sudo dd if=/tmp/rootfs.bin of=/dev/mmcblk0p4
sudo fw_setenv current_entry 0
sudo fw_setenv boot_0 good
sudo rebootIP:192.168.1.1
用户名:root
密码:password
上传 10G PHY 驱动
AQR_ethphyfw_5.6.7.mbn到/tmp刷入 10G PHY 驱动
1
2
3
4
5
6# 抹除原 ethfw 分区 mtd10 的数据
mtd erase /dev/mtd10
# 刷入驱动文件
mtd -n write /tmp/AQR_ethphyfw_5.6.7.mbn /dev/mtd10
# 修改 bootcmd 环境变量
fw_setenv bootcmd "aq_load_fw 0; aq_load_fw 8; bootipq"检查是否刷入成功
1
fw_printenv
如果有
bootcmd=aq_load_fw 0; aq_load_fw 8; bootipq就没问题
免拆和拆机 TTL 刷机
免拆刷机
在 QSDK 下,上传 Lean 的 U-Boot
uboot.bin到/tmp该 U-Boot 标称自己支持分区切换,实则不行
刷入 U-Boot(请确保自己已经备份了整个 MTD 分区!!!)
1
mtd write /tmp/uboot.bin /dev/mtd8
路由器断电按住 RESET 键,插上电源,等待能访问
http://192.168.1.1时松手- 如果是 QWRT,直接刷就行
- 其他固件的话,按照以下方式刷入
- 刷入
initramfs-uImage.itb固件:官方 KERNEL 固件 - 在 Web 后台直接升级想要刷入的 Sysupgrade 固件即可(不保留配置)
- IP: 192.168.1.1
- 用户名:root
- 密码:无
- 刷入
如果免拆刷机想要回原厂固件的话,按以下操作进行(请确保自己已经备份了整个 MTD 分区!!!)
临时将 MTD 分区改成可写
1
2
3opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1如果模块路径不自动识别:
1
insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
上传之前备份的
mtd8.bin到/tmp写入 mtd8 分区
1
2mtd unlock /dev/mtd8 || true
mtd write /tmp/mtd8.bin /dev/mtd8切换为分区 0 回到原厂固件
1
2
3fw_setenv current_entry 1
fw_setenv boot_1 good
reboot如果你开不了机了,请左转拆机上编程器,拆开外壳迎面的右下角这颗闪存就是

原厂固件切回 OpenWrt
1
2
3fw_setenv current_entry 0
fw_setenv boot_0 good
reboot
TTL 刷机
需要设备:USB 转 TTL 模块(比如 CH340)+ 母对母杜邦线*3
拧下螺丝:四个脚垫下均有螺丝,加上中间一颗和标签下面一颗,一共 6 颗
拆开外壳:外壳由卡扣固定,不是很紧
拆开外壳迎面的右下角,就是 TTL 针脚

接中间三根,从左到右依次是:TX、GND、RX,对应 TTL 转 USB 模块的 RXD、GND、TXD

TTL 转 USB 模块切换到 3.3V,MobaXterm 软件新建 Serial Session
- Serial port:TTL 转 USB 模块的 COM 口
- Speed:115200
- Data bits:8
- Stop bits:1
- Parity:None
- Flow control:None

路由器的千兆口 2 - 4 随便接一个到电脑上,电脑网卡设为 192.168.10.2/24。并在 MobaXterm 上打开 TFTP Server,然后把
initramfs-uImage.itb固件丢到指定目录:官方 KERNEL 固件,假设固件名为openwrt-25.12.4-qualcommax-ipq807x-qnap_301w-initramfs-uImage.itb
路由器通电,在 MobaXterm 会话出现字符后一直按空格键,中断启动
设置并保存 TFTP 相关环境变量
1
2
3setenv serverip 192.168.10.2
setenv ipaddr 192.168.10.10
saveenv刷入
initramfs-uImage.itb固件1
tftpboot openwrt-25.12.4-qualcommax-ipq807x-qnap_301w-initramfs-uImage.itb
重启
1
bootm
在 Web 后台直接升级想要刷入的 Sysupgrade 固件即可(不保留配置)
- IP: 192.168.1.1
- 用户名:root
- 密码:无
切换为分区 0 回到原厂固件
1
2
3fw_setenv current_entry 1
fw_setenv boot_1 good
reboot原厂固件切回 OpenWrt
1
2
3fw_setenv current_entry 0
fw_setenv boot_0 good
reboot
可选:编译 LibWrt 固件
安装依赖
1
2
3
4
5
6
7
8sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libfuse-dev libssl-dev libtool lrzsz \
genisoimage msmtp nano ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev拉取源码
1
2git clone --depth 1 --single-branch https://github.com/LiBwrt-op/openwrt-6.x.git libwrt
cd libwrt更新 feeds
1
./scripts/feeds update -a && ./scripts/feeds install -a
选择
Target System:Qualcomm Atheros 802.11ax WiSoC-s
Subtarget:Qualcomm Atheros IPQ807x
Target Profile:QNAP 301w1
make menuconfig
下载源码包
1
make download -j16
编译
1
make -j$(nproc) V=s
如果报错,可以单线程重试定位问题:
1
make -j1 V=s
编译结果在
libwrt/bin/targets/qualcommax/ipq807x/
结语
- 这台机器唯一的坑就是 Lean 的不死 U-Boot 是切不回原厂分区的
- 不用原厂系统的不用管
- 想双系统的话就别动原厂 U-Boot,按照上面方法操作完,以后直接不保留配置升级 Sysupgrade 固件即可





