Adding OpenWrt support for QNAP QHora-301W

I couldn't do anything more and just opened the router and connected to the serial console.
I see this now


I'll need a little more help what to do next.
When I reboot the router it stops at the last line below but I can see the above OpenWrt console screen. It seems to me that the OpenWrt is running but I cannot access it via LAN ports.

[    4.152047] * NSS Data Plane driver
[    4.158460] **********************************************************
[    4.171950] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    4.171998] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    4.176477] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe65 hci version 0x110 quirks 0x0000000002010010
[    4.183981] xhci-hcd xhci-hcd.1.auto: irq 111, io mem 0x08a00000
[    4.193412] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    4.199544] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    4.204821] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    4.212674] hub 1-0:1.0: USB hub found
[    4.218972] hub 1-0:1.0: 1 port detected
[    4.222874] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.226992] hub 2-0:1.0: USB hub found
[    4.234856] hub 2-0:1.0: 1 port detected
[    4.238684] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    4.242493] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 3
[    4.247914] xhci-hcd xhci-hcd.2.auto: hcc params 0x0220fe65 hci version 0x110 quirks 0x0000000002010010
[    4.255369] xhci-hcd xhci-hcd.2.auto: irq 112, io mem 0x08c00000
[    4.264820] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    4.270960] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 4
[    4.276259] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
[    4.284049] hub 3-0:1.0: USB hub found
[    4.290414] hub 3-0:1.0: 1 port detected
[    4.294317] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.298427] hub 4-0:1.0: USB hub found
[    4.306292] hub 4-0:1.0: 1 port detected
[    4.312224] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.320809] init: - preinit -
[    4.503664] random: jshn: uninitialized urandom read (4 bytes read)
[    4.523897] random: jshn: uninitialized urandom read (4 bytes read)
[    4.536120] random: jshn: uninitialized urandom read (4 bytes read)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    6.651888] loop0: detected capacity change from 0 to 1048576
[    6.663536] loop0: detected capacity change from 1048576 to 1024256
[    6.670108] mount_root: failed to mount -t ext4 /dev/loop0 /tmp/overlay: No such device
[    6.682591] urandom-seed: Seed file not found (/etc/urandom.seed)
[    6.705004] procd: - early -
[    6.705078] procd: - watchdog -
[    7.230055] procd: - watchdog -
[    7.236582] procd: - ubus -
[    7.256147] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.288359] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.288522] random: ubusd: uninitialized urandom read (4 bytes read)
[    7.295468] procd: - init -
Please press Enter to activate this console.
[    7.416797] urngd: v1.0.2 started.
[    7.430510] random: crng init done
[    7.430559] random: 27 urandom warning(s) missed due to ratelimiting
[    7.439459] kmodloader: loading kernel modules from /etc/modules.d/*
[    7.449267] tun: Universal TUN/TAP device driver, 1.6
[    7.459930] qca-nss 39000000.nss: Direct firmware load for qca-nss0.bin failed with error -2
[    7.459978] qca-nss 39000000.nss: Falling back to sysfs fallback for: qca-nss0.bin
[    7.545777] ffffffc000a22300: request_firmware failed with err code: -12
[    7.545797] ffffffc000a22300: firmware load from driver failed
[    7.551604] qca-nss: probe of 39000000.nss failed with error -12
[    7.557797] qca-nss 39400000.nss: Direct firmware load for qca-nss1.bin failed with error -2
[    7.563411] qca-nss 39400000.nss: Falling back to sysfs fallback for: qca-nss1.bin
[    7.595696] ffffffc000a29c00: request_firmware failed with err code: -12
[    7.595715] ffffffc000a29c00: firmware load from driver failed
[    7.601568] qca-nss: probe of 39400000.nss failed with error -12
[    7.614519] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    7.616851] nat46: module (version 1182f30785e4274913f01a8c3d7e1b5437ae3819) loaded.
[    7.620634] gre: GRE over IPv4 demultiplexor driver
[    7.628607] ip_gre: GRE over IPv4 tunneling driver
[    7.634058] ip6_gre: GRE over IPv6 tunneling driver
[    7.640261] QCA multicast snooping installed successfully
[    7.642405] nss_vlan_mgr_init_module[1926]:Module (Build Build Id: 06/12/23, 23:48:38) loaded
[    7.651212] PPP generic driver version 2.4.2
[    7.664778] NET: Registered PF_PPPOX protocol family
[    7.666844] PPTP driver version 0.8.5
[    7.682131] <NSS-CRYPTO>:module loaded Build_ID - 06/12/23, 23:43:28 SoC=ipq807x
[    7.686915] GACT probability on
[    7.689303] Mirror/redirect action on
[    7.696370] u32 classifier
[    7.696406]     input device check on
[    7.698019]     Actions configured
[    7.707313] Loading modules backported from Linux version v6.1.24-0-g0102425ac76b
[    7.707356] Backport generated by backports.git v5.15.92-1-44-gd6ea70fafd36
[    7.721941] NET: Registered PF_QIPCRTR protocol family
[    7.725086] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[    7.726017] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[    7.738174] xt_time: kernel timezone is -0000
[    7.759722] nf_conntrack_rtsp v0.7 loading
[    7.762471] nf_nat_rtsp v0.7 loading
[    7.780665] ath11k c000000.wifi: ipq8074 hw2.0
[    7.780699] ath11k c000000.wifi: FW memory mode: 0
[    7.784241] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[    7.789725] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[    8.532274] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up
[    8.536596] kmodloader: done loading kernel modules from /etc/modules.d/*
[    8.576890] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[    8.583340] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[    8.583367] ath11k c000000.wifi: fw_version 0x290c84a5 fw_build_timestamp 2023-03-25 07:34 fw_build_id WLAN.HK.2.9.0.1-01385-QCAHKSWPL_SILICONZ-1
[    8.661800] ath11k c000000.wifi: qmi failed to load CAL data file:cal-ahb-c000000.wifi.bin
[    8.661870] ath11k c000000.wifi: failed to load board data file: -12
[   12.190158] ECM init
[   12.190239] ECM database jhash random seed: 0x1f2d321a
[   12.208655] ECM init complete
bird4: Cannot determine router ID, please configure it manually

I've opened a new thread.
I've finally recovered from this, but at the moment cannot save any settings.
I've made it this way "just in case".

I want to return to robimarko's build (currently with AugustinLorenzo NSS build which cannot keep setting changes). When I upload -sysupgrade.bin I get the same message I 've got when I 've done the opposite flash and I've lost access to the router.


Any suggestions?

Edit - I've answered myself my own questions here.
It wasn't so obvious and easy but at least now I have properly working OpenWrt build.

I will have to cool down the rush a bit.
So let's do it again slowly this time.
I have few questions. Using robimarko's build I get errors about robimarko's repo when I try software update list.
For example trying to install block-mount gives this.

Executing package manager

Multiple packages (libgcc1 and libgcc1) providing same name marked HOLD or PREFER. Using latest.
Installing block-mount (2023-02-28-bfe882d5-1) to root...
Downloading https://downloads.openwrt.org/snapshots/targets/ipq807x/generic/packages/block-mount_2023-02-28-bfe882d5-1_aarch64_cortex-a53.ipk
Installing libubox20230523 (2023-05-23-75a3b870-1) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/libubox20230523_2023-05-23-75a3b870-1_aarch64_cortex-a53.ipk
Installing libblobmsg-json20230523 (2023-05-23-75a3b870-1) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/libblobmsg-json20230523_2023-05-23-75a3b870-1_aarch64_cortex-a53.ipk
Configuring libubox20230523.
Configuring libblobmsg-json20230523.
Configuring block-mount.

Errors

Error loading shared library libubus.so.20220615: No such file or directory (needed by /sbin/block)
Error relocating /sbin/block: ubus_free: symbol not found
Error relocating /sbin/block: ubus_lookup_id: symbol not found
Error relocating /sbin/block: ubus_connect: symbol not found
Error relocating /sbin/block: ubus_invoke_fd: symbol not found

On Software Tab I see Free Space as 99% (460.96 MiB). The eMMC is 4GB. Where is the other space? Shouldn't this partition be the biggest one, for example 3GB or more?
Currently I have this.

WLAN LED wasn't working by default so I had to add it to the LED Configuration and then it started working.

Does anyone know what kind of internal buzzer QHora-301W has built-in. I want to install a package (I see there is a package "Beep" to control internal speaker but I don't know whether it is suitable) to control the internal buzzer for some actions. For example if CPU temperature is high I want a buzzer to alarm about it.

I've tried Attended Sysupgrade to upgrade but it fails with message "Impossible package selection".

I just bought my 2nd 301w. I am happy enough with this device to shell out the cash on a 2nd one.

Just FYI, for those interested...

Running snapshot, regular github build (none of the custom builds etc)... I got about 250mb/s inbound and about 300mb/s outbound on the 10gb adapter.

Edit : After updating my NIC firmware, as well as tuning some things I have landed on about 300mb/s inbound and 250mb/s outbound.

Not bad!

What firmwares is that? Any link?

Client side.

I would love to update the firmware on the 301w end, but the brief searches I have done came up with nothing available beyond the firmware that everyone uses when they switch over to OpenWRT.

Hi, I skimmed through the thread to get an overview but it wasn't really obvious, so I have to ask: I plan to get a 10gbe capable home router and I wanted to ask how well OpenWRT supports this device. Does it make sense to get this device if I want a stable and performant OpenWRT experience?

Thanks!

I own two of these.

I highly recommend this device, with the following things in mind:

If you need / want 10gbe... You will be hard pressed to find anything better unless you custom build. Even then, unless you are willing to accept a "small pc" sized form factor... You will still have trouble finding something that can take 2x mini pcie AND have 10gbe.

Bottom line : Want something "router sized" with AX + 10gbe? This is really your only option.

You will need to run the NSS build to get anywhere near 10gbe LAN or WAN performance. There is a thread where I am quite active the last week here on the forum. The NSS build is stable, very much so. But get ready to self compile and make the whole openwrt experience a little less plug and play. Once the build is installed and running, you will notice no difference, except when upgrading. Two things do not work for me: SQM and MWAN3... I was able to code a custom mwan3 like script... But the SQM is still up in the air.

Bottom line : Stock OpenWRT? Maxes out at about 2.5gbe. NSS build? Maxes out at around 8gbe (for me anyways).

This is not the cheapest of devices. I was happy enough with it to buy a 2nd one.

1 Like

The device works, and it should work well - however to achieve routing throughputs of 10 GBit/s (or anything remotely close to that), it would depend on NSS offloading, which is not available in OpenWrt (and most likely never will be). While externally patchsets exist in the community (like they did for ipq806x before), I would not buy a new device with this in mind. Have a look at a small/ low-power mini-PC (mid-range i3 or better, personally I wouldn't bother below entry-range i5) with two- or more 10 GBit/s network cards (skylake/ kaby-lake i5 SFF PCs from the big four -Dell, Fujitsu, HP, Lenovo- come to mind), add a nice 802.11ax device as dumb-AP and you're set.

2 Likes

I'd add a small note here - if one is looking for a small form factor 10G/2.5G router, and WiFi isn't that important, my recommendation would be the R86S Mini PC, in the U3 or U4 configuration. Those models come with an Intel N6005, 2x 10Gb SFP+, 3x 2.5Gb (Intel I226V), and NVMe slot. It's a bit more pricey (around £375 from AliExpress, compared to the £275 of the 301W), but you get a solid x86 CPU, USB-C power input, small form factor, plus you could run a whole load of other services from it (e.g. a Home Assistant instance, Plex with transcoding, etc.).

2 Likes

Finally, a proper fix for modern speeds including 2.5G is in the works:

It actually finally advertises 2500BaseT as well.

4 Likes

In Japan there is Buffalo WXR-AX5950AX12 which is better, it has 8x8 (80MHz) or 4x4 (160MHz) and with ext. antenna the WiFi should be better than 301W.

2 Likes

I wouldn't say N6005 is a solid x86 CPU, if you don't need SQM it's quite OK though, I am still struggling because I know a direct way to buy from China which can be less than 50% of price you see on AliExpress. The latest version is N100/N305 however the PCI-E slot is only x4 and the dual port X520 10G NIC needs x8, if you want to push it to the limit you'll find the bandwidth is limited by the NIC but not CPU for new generation.

You are correct! I did see the buffalo device... It's a bit tricky to find outside of Japan, but it is possible to have it shipped. I'm sure this is a top end device, I am sure.

I made a new build with this patch, but it still appears to be suffering major issues getting over 300-400mbit. Right after I start a Speedtest, it'll launch up to ~1100mbit, then immediately drop back down.

ethtool shows 2500mbit link rate.

That had nothing to do with speedups, just finally allowing 2.5G to be advertised.

Right, my point was, previously using ethtool to allow 2.5G negotiation made speeds on the 10G ports really slow. This netifd change does NOT fix that, and 2.5G mode still performs significantly worse than when it is in 1G.

Well, obviously not, it just allows advertising modern speeds.

The actual slow speed cause needs to debugged by somebody, its not going to fix itself.

1 Like

i have wan port connected to a media converter with inside ont sfp, is there way to reach the internal sfp ip from qhora?

Hi, is anyone running 23.05.0 final (or it's branch) on the 301W? It's listed as supported on the firmware selector, this being the first release branch a build is available for on there. It's not specifically mentioned on the release notes, although they note that many devices were added beyond the summary list. The changelog has a few mentions of it as well. Most of the wiki pages still point to master snapshots though a few of the links on the device hardware data page point to the release.

1 Like

There's no reason why it wouldn't be supported by 23.05.0, like any other ipq807x device.

The wiki would need manul updating and the release notes are assembled by parsing the commit log for the typical phrases used for new device additions (in other words, they will miss a lot).

1 Like