QNAP QHora 301W刷OpenWrt指南

威联通QHora-301W 是2021年推出的一款无线路由器,搭载了高通IPQ8072A四核 Cortex-A53 2.2GHz处理器,1GB RAM,4GB eMMC,机身配置了2个万兆网口(支持1G/2.5/10G自适应)、4个千兆网口,可灵活配置多WAN口并整合多个外网接入。支持满血WiFi 6(802.11ax)协议,内置8根5dBi高增益天线,双频并发可达3600M。机身还配置有2个USB3.2 Gen1接口,1个WPS按钮。

该款路由器性能强大,但官方固件功能较少,可玩性不强。@lean @asushugo为301W路由器开发了OpenWrt固件,大大拓展了该款路由器的功能!

最近入手了一台QHora-301W,下面结合自己的刷机经历介绍刷写OpenWrt固件的过程。教程仅限lean的qsdk闭源固件,其他固件请参考网络上的其他教程。

无损刷机

1、开启SSH服务

路由器通电,打开电源开关,等待一段时间,听到“嘟”一声后,表示系统启动完成。长按路由器WPS 键,直到听到两次“嘟”声后松开(大约 12 秒),顺利打开SSH功能。

2、连接路由器后台

默认开启SSH的端口号为22200,用户名是admin,密码是路由器网页登录密码(默认密码在路由器后面的贴纸上)。

在Windows或MAC OS下,输入以下命令:

ssh [email protected] -p 22200

然后输入登录密码,进入路由器的shell环境。也可以使用putty或MobaXterm进行连接,简化操作过程。

3、切换第二分区启动

QHora-301W有两个启动分区,默认保存了两个官方固件,我们把OpenWrt固件刷入第一启动分区,以后也可以用命令切换回第二分区的官方固件。

输入以下命令,将启动分区切换为第二分区。

sudo fw_setenv current_entry 1

提示输入密码,输入前面登录ssh的密码。

输入以下命令重启系统:

sudo reboot

4、检查路由器当前启动分区

按前面1、2的步骤重新打开ssh,输入以下命令检查启动分区:

sudo fw_printenv -n current_entry

如果输出1,OK。如果不是,重复步骤3。

5、刷写固件

使用MobaXterm或Winscp将kernel.binrootfs.bin两个文件上传到路由器后台的/tmp目录(文章末尾有下载地址)。

依次执行以下命令,完成刷机

sudo 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 reboot

6、刷入10G PHY的firmware

OpenWrt系统的默认登录地址:192.168.1.1,账号密码:root/password。系统刷完后,万兆网卡还不能启动,还需要刷入网卡的firmware。

  1. 使用MobaXterm将AQR_ethphyfw_5.6.7.mbn文件上传到路由器的/tmp目录。
  2. 使用MobaXterm进入路由器后台,执行以下命令,抹除原ethfw分区mtd10的数据:
    mtd erase /dev/mtd10
  3. 执行以下命令,刷入fw文件:
    mtd -n write /tmp/AQR_ethphyfw_5.6.7.mbn /dev/mtd10
  4. 运行命令:fw_setenv bootcmd “aq_load_fw 0; aq_load_fw 8; bootipq”,修改环境变量。
  5. 运行以下命令看下是否有这条记录”bootcmd=aq_load_fw 0; aq_load_fw 8; bootipq”
    fw_printenv 
  6. 运行命令:reboot,重启完成刷机。

TTL刷机

如果按照免拆方法成功完成刷机,就无须TTL刷机。如果你像我一样,输错了命令,造成刷机后路由器不断重启,无法进入系统,那就只能用TTL刷机来拯救了。

1、拆解路由器

四个胶垫下面各有一颗螺丝,中间有一颗螺丝,右上的标签贴纸下面有一颗黑色的小螺丝(如下图所示),一共6颗螺丝。

拧下全部螺丝后,用塑料拆机工具,从两侧的缝隙撬开卡扣,就能取下外壳。

2、连接TTL

背板上有TTL插针,中间 3 根从左到右的顺序分别是TX-GND-RX,参数设置115200, 8N1, 3.3 V。

将电脑IP地址设置为192.168.10.1/24,打开tftpd软件,将服务器地址选择为刚才设置的IP地址,将openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb文件放入tftpd所在的目录,关闭系统的防火墙和杀毒软件。

连接好TTL线,将TTL连接板插上电脑,启动teraterm软件,设置好串口参数,打开路由器,在teraterm显示窗口出现字符后一直按空格键,中断启动,进入uboot界面。如果连接后无字符显示,请调换一下插针位置。

依次输入以下命令:

setenv serverip 192.168.10.1
setenv ipaddr 192.168.10.10
saveenv

然后执行下面命令:

tftpboot openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb

等到完成后,再执行以下命令重新启动系统:

bootm

3、刷写固件

完成第二步后,系统刷入了一个恢复固件,默认访问地址:192.168.1.1,默认账号:root/password,SSH默认开启。

刷机步骤与免拆刷机部分的4-6步相同,这里不再赘述。以下是固件的截图。

切换原厂固件

SSH连接路由器,输入以下命令切换:

1、启动OpenWrt

fw_setenv current_entry 0

2、切回原厂固件

fw_setenv current_entry 1

然后重启完成切换。

最后,要感谢LEAN提供了OpenWrt固件,得以发挥301W的最大性能,让我们有了更多的玩法。

参考文章:

  1. QNAP 301W免拆刷机方法
  2. 威联通301W刷Openwrt教程
  3. ​QNAP 301W拆机​

固件下载地址:点我下载

评论

  1. 王文杰
    2 年前
    2023-5-10 21:31:44

    我的机器不小心被玩成了砖头,现在通过TTL救砖,进行到使用tera term输入完命令,最后bootm启动系统,后面如何操作?电脑网卡要改地址后ssh连接路由器吗?无论如何操作,网卡灯都不亮,改什么地址呢?没有网址怎么通过SSH去刷入两个bin,请多指点,拜托了。

    • Avatar photo
      鉄血男兒
      博主
      王文杰
      2 年前
      2023-5-11 16:56:42

      完成了第二步,系统就刷入了一个恢复固件,电脑设置成192.168.1.0/24 的网段,访问192.168.1.1地址,刷入其他固件即可。
      检查能否PING通192.168.1.1,如果不能,重新执行第二步骤,确保正确刷入了恢复固件。

    • qq453339831
      王文杰
      7 月前
      2024-4-29 18:17:26

      和你一样的问题 ttl救活了 但是原厂固件没有了 只能用op了 请问你的修复好了吗?

  2. 王文杰
    2 年前
    2023-5-10 22:12:20

    现在启动后,Tera term显示如下:
    ## Loading kernel from FIT Image at 44000000 …
    Using ‘config@hk01’ configuration
    Trying ‘kernel-1’ kernel subimage
    Description: ARM64 OpenWrt Linux-5.10.176
    Type: Kernel Image
    Compression: gzip compressed
    Data Start: 0x440000ec
    Data Size: 49046364 Bytes = 46.8 MiB
    Architecture: AArch64
    OS: Linux
    Load Address: 0x41000000
    Entry Point: 0x41000000
    Hash algo: crc32
    Hash value: d25de5b7
    Hash algo: sha1
    Hash value: 3e13a2c256291800a9fc86b54b8bb909ff49616a
    Verifying Hash Integrity … crc32+ sha1+ OK
    ## Loading fdt from FIT Image at 44000000 …
    Using ‘config@hk01’ configuration
    Trying ‘fdt-1’ fdt subimage
    Description: ARM64 OpenWrt qnap_301w device tree blob
    Type: Flat Device Tree
    Compression: uncompressed
    Data Start: 0x46ec6584
    Data Size: 42671 Bytes = 41.7 KiB
    Architecture: AArch64
    Hash algo: crc32
    Hash value: ccd4c9f8
    Hash algo: sha1
    Hash value: 27f50b1253eddebfb79d57785c328cd146944f04
    Verifying Hash Integrity … crc32+ sha1+ OK
    Booting using the fdt blob at 0x46ec6584
    Uncompressing Kernel Image … Error: inflate() returned -5
    Image too large: increase CONFIG_SYS_BOOTM_LEN
    Must RESET board to recover
    Erasing SPI flash…Writing to SPI flash…done
    resetting …

    Format: Log Type – Time(microsec) – Message – Optional Info
    Log Type: B – Since Boot(Power On Reset), D – Delta, S – Statistic
    S – QC_IMAGE_VERSION_STRING=BOOT.BF.3.3.1-00158
    S – IMAGE_VARIANT_STRING=HAABANAZA
    S – OEM_IMAGE_VERSION_STRING=CRM
    S – Boot Config, 0x000002e1
    B – 203 – PBL, Start
    B – 2738 – bootable_media_detect_entry, Start
    B – 2885 – bootable_media_detect_success, Start
    B – 2889 – elf_loader_entry, Start
    B – 11379 – auth_hash_seg_entry, Start
    B – 11622 – auth_hash_seg_exit, Start
    B – 250660 – elf_segs_hash_verify_entry, Start
    B – 311329 – PBL, End
    B – 496723 – SBL1, Start
    B – 576511 – GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
    B – 586393 – pm_device_init, Start
    B – 770552 – PM_SET_VAL:Skip
    D – 182176 – pm_device_init, Delta
    B – 772961 – pm_driver_init, Start
    D – 5337 – pm_driver_init, Delta
    B – 779336 – clock_init, Start
    D – 2104 – clock_init, Delta
    B – 783331 – boot_flash_init, Start
    D – 15524 – boot_flash_init, Delta
    B – 802546 – boot_config_data_table_init, Start
    D – 1006 – boot_config_data_table_init, Delta – (575 Bytes)
    B – 810202 – Boot Setting : 0x00000618
    B – 813923 – CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0
    B – 820846 – sbl1_ddr_set_params, Start
    B – 824659 – CPR configuration: 0x30c
    B – 828105 – cpr_init, Start
    B – 830881 – Rail:0 Mode: 5 Voltage: 832000
    B – 836096 – CL CPR settled at 784000mV
    B – 838933 – Rail:1 Mode: 5 Voltage: 888000
    B – 843111 – Rail:1 Mode: 7 Voltage: 936000
    D – 16531 – cpr_init, Delta
    B – 850004 – Pre_DDR_clock_init, Start
    B – 854000 – Pre_DDR_clock_init, End
    B – 857294 – DDR Type : PCDDR3
    B – 863058 – do ddr sanity test, Start
    D – 1067 – do ddr sanity test, Delta
    B – 867816 – DDR: Start of HAL DDR Boot Training
    B – 872574 – DDR: End of HAL DDR Boot Training
    B – 878247 – DDR: Checksum to be stored on flash is -1541410861
    B – 888739 – Image Load, Start
    D – 335988 – QSEE Image Loaded, Delta – (1376448 Bytes)
    B – 1224819 – Image Load, Start
    D – 30 – SEC Image Loaded, Delta – (0 Bytes)
    B – 1232505 – Image Load, Start
    D – 9760 – DEVCFG Image Loaded, Delta – (26008 Bytes)
    B – 1242356 – Image Load, Start
    D – 25956 – RPM Image Loaded, Delta – (86584 Bytes)
    B – 1268403 – Image Load, Start
    D – 136579 – APPSBL Image Loaded, Delta – (556008 Bytes)
    B – 1405135 – QSEE Execution, Start
    D – 61 – QSEE Execution, Delta
    B – 1410930 – USB D+ check, Start
    D – 0 – USB D+ check, Delta
    B – 1417335 – SBL1, End
    D – 922899 – SBL1, Delta
    S – Flash Throughput, 4429 KB/s (2045623 Bytes, 461824 us)
    S – DDR Frequency, 466 MHz
    S – Core 0 Frequency, 1651 MHz

    U-Boot 2016.01 (Aug 18 2020 – 16:35:27 +0800)

    DRAM: smem ram ptable found: ver: 1 len: 4
    1 GiB
    NAND: Could not find nand_gpio in dts, no defaults defined
    Nand Flash error. Status = 80
    Reset cmd status failed
    SPI_ADDR_LEN=3
    SF: Detected W25Q64DW with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ipq_spi: page_size: 0x100, sector_size: 0x1000, size: 0x800000
    8 MiB
    MMC: : 0
    In: serial@78B3000
    Out: serial@78B3000
    Err: serial@78B3000
    machid: 8010000
    Hit any key to stop autoboot: 2

    Net: MAC0 addr:24:5e:be:55:78:52
    PHY ID1: 0x0
    PHY ID2: 0x0
    EDMA ver 1 hw init
    Num rings – TxDesc:1 (0-0) TxCmpl:1 (7-7)
    RxDesc:1 (15-15) RxFill:1 (7-7)
    ipq807x_edma_alloc_rings: successfull
    ipq807x_edma_setup_ring_resources: successfull
    ipq807x_edma_configure_rings: successfull
    ipq807x_edma_hw_init: successfull
    eth0

    • 阿猫的猫
      王文杰
      10 月前
      2024-1-12 17:21:02

      我也遇到了相同的情况!请问你最后是怎么解决的?非常感谢!

    • 阿猫的猫
      王文杰
      10 月前
      2024-1-12 21:03:14

      我解决了这个问题了!我的情况是不需要重刷系统,在uboot环境下输入printenv检查boot_0,boot_1和boot_2等于good还是bad,如果有类似boot_0=bad之类的就会阻止正常进系统导致变砖。全部改成good然后就能正常倒数进系统了。希望能帮到你和别人!

      • 阿猫的猫
        阿猫的猫
        10 月前
        2024-1-12 21:04:18

        以boot_0为例,在uboot下改成good的代码是setenv boot_0 “good”,其他以此类推

  3. 云上清风
    1 年前
    2023-8-01 15:31:38

    openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb;这个文件哪有下载?

  4. liubinbin
    1 年前
    2023-9-12 9:37:04

    楼主 您好 我已经成功把301W固件刷入。但是我在切换回官方系统后,就再也切不回open wrt 系统了。请指教。

    • Avatar photo
      鉄血男兒
      博主
      liubinbin
      1 年前
      2023-9-12 16:10:14

      如果命令切不回,那就重新来一次。正常刷完了,也没必要再切换了。

      • liubin
        鉄血男兒
        1 年前
        2023-9-15 22:19:00

        再重新刷一次呀好吧

        • 刷机故障
          liubin
          1 年前
          2023-11-08 15:07:51

          老师 我在今天重新刷openwrt时 在刷入万兆网卡固件时,在执行mtd -n write /tmp/AQR_ethphyfw_5.6.7.mbn /dev/mtd10这个命令时总是提示未找到 !最后重启reboot后路由器所有的网络接口都不能识别了指示灯也不亮了!也没有不能进入刚才还能进入的192.168.1.1!现在没办法进入后台了!怎么办

          • Avatar photo
            鉄血男兒
            博主
            刷机故障
            1 年前
            2023-11-09 9:50:26

            提示没找到,应该是文件没上传到 /tmp目录。连不上了还可以用TTL去刷。

  5. 666
    10 月前
    2024-2-03 11:19:24

    已变砖

    • 666
      666
      10 月前
      2024-2-03 11:45:35

      openwrt重启之后就失联了,有WiFi信号,但是拒绝加入

  6. openwrt爱好者
    10 月前
    2024-2-06 12:30:33

    请问老师,openwrt-ipq807x-R23.10.1-qnap_301w-squashfs-sysupgrade和openwrt-ipq807x-R23.10.1-qnap_301w-squashfs-factory这两个文件是干什么用的

    • Avatar photo
      鉄血男兒
      博主
      openwrt爱好者
      10 月前
      2024-2-07 10:16:36

      一个是引导固件,一个是升级固件。先刷引导固件,然后在引导固件里刷入升级固件

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇