Need help finding cause of seemingly random reboots of OpenWrt One

I have had an OpenWrt One for some weeks and love it – except for the frequent reboots that I have not been able to find the cause for.

Sometime it runs for a day, sometime not even a minute before it reboots. In addition, the wifi access point can also go offline temporarily. I haven't managed to figure out what causes this.

I kept a computer connected to the USB-C serial console during multiple reboots. My only clue is that it is somehow related to the network adapters getting disabled. (I have complete boot logs, but I'm not sure if they contain any sensitive information, so I'll start by sharing what it looks like before the reboot.)

In addition node exporter is exposing metrics. I see nothing there building up before the reboot.

How do I go on to investigate this further? If there's any way I can get more verbose logs of whatever is happening? It seems strange to me that there is no log of an actual shutdown. Is the power simply cut? Could it be a hardware issue?

...
[   18.552729] Loading modules backported from Linux version v6.18.26-0-g1fe060681
[   18.560046] Backport generated by backports.git 6ecbb44
[   18.573577] rtc-pcf8563 0-0051: registered as rtc0
[   18.579597] rtc-pcf8563 0-0051: setting system clock to 2026-08-31T06:42:42 UTC (1788158562)
[   18.992079] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20240823161240a
[   19.235778] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20240823161304
[   19.354777] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20240823161841
[   19.452886] mt798x-wmac 18000000.wifi: registering led 'mt76-phy0'
[   19.503758] mt798x-wmac 18000000.wifi: registering led 'mt76-phy1'
[   19.569326] PPP generic driver version 2.4.2
[   19.575137] NET: Registered PF_PPPOX protocol family
[   19.585748] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.570714] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[   24.657959] mtk_soc_eth 15100000.ethernet eth1: PHY [mdio-bus:00] driver [MediaTek MT7981 PHY] (irq=POLL)
[   24.671622] mtk_soc_eth 15100000.ethernet eth1: configuring for phy/gmii link mode
[   24.681521] br-lan: port 1(eth1) entered blocking state
[   24.686769] br-lan: port 1(eth1) entered disabled state
[   24.692077] mtk_soc_eth 15100000.ethernet eth1: entered allmulticast mode
[   24.699053] mtk_soc_eth 15100000.ethernet eth1: entered promiscuous mode
[   24.824529] mtk_soc_eth 15100000.ethernet eth0: PHY [mdio-bus:0f] driver [Airoha EN8811H] (irq=53)
[   24.833909] mtk_soc_eth 15100000.ethernet eth0: configuring for phy/2500base-x link mode
[   26.378678] br-lan: port 2(phy0-ap0) entered blocking state
[   26.384297] br-lan: port 2(phy0-ap0) entered disabled state
[   26.389919] mt798x-wmac 18000000.wifi phy0-ap0: entered allmulticast mode
[   26.396954] mt798x-wmac 18000000.wifi phy0-ap0: entered promiscuous mode
[   26.787110] br-lan: port 2(phy0-ap0) entered blocking state
[   26.792752] br-lan: port 2(phy0-ap0) entered forwarding state
[   26.799450] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   26.813958] br-lan: port 1(eth1) entered blocking state
[   26.819203] br-lan: port 1(eth1) entered forwarding state
[   27.273073] br-lan: port 3(phy1-ap0) entered blocking state
[   27.278662] br-lan: port 3(phy1-ap0) entered disabled state
[   27.284309] mt798x-wmac 18000000.wifi phy1-ap0: entered allmulticast mode
[   27.291348] mt798x-wmac 18000000.wifi phy1-ap0: entered promiscuous mode
[   28.043459] br-lan: port 3(phy1-ap0) entered blocking state
[   28.049046] br-lan: port 3(phy1-ap0) entered forwarding state
[   29.410852] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

F0: 102B 0000
FA: 1040 0000
FA: 1040 0000 [0200]
...

Another instance:

...
[   18.438167] Loading modules backported from Linux version v6.18.26-0-g1fe060681
[   18.445578] Backport generated by backports.git 6ecbb44
[   18.460522] rtc-pcf8563 0-0051: registered as rtc0
[   18.466563] rtc-pcf8563 0-0051: setting system clock to 2026-08-31T06:43:42 UTC (1788158622)
[   18.882175] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20240823161240a
[   19.123018] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20240823161304
[   19.244237] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20240823161841
[   19.342969] mt798x-wmac 18000000.wifi: registering led 'mt76-phy0'
[   19.395758] mt798x-wmac 18000000.wifi: registering led 'mt76-phy1'
[   19.464618] PPP generic driver version 2.4.2
[   19.469880] NET: Registered PF_PPPOX protocol family
[   19.479434] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.344532] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[   24.435455] mtk_soc_eth 15100000.ethernet eth1: PHY [mdio-bus:00] driver [MediaTek MT7981 PHY] (irq=POLL)
[   24.449252] mtk_soc_eth 15100000.ethernet eth1: configuring for phy/gmii link mode
[   24.461293] br-lan: port 1(eth1) entered blocking state
[   24.466616] br-lan: port 1(eth1) entered disabled state
[   24.471934] mtk_soc_eth 15100000.ethernet eth1: entered allmulticast mode
[   24.478936] mtk_soc_eth 15100000.ethernet eth1: entered promiscuous mode
[   24.605153] mtk_soc_eth 15100000.ethernet eth0: PHY [mdio-bus:0f] driver [Airoha EN8811H] (irq=53)
[   24.614702] mtk_soc_eth 15100000.ethernet eth0: configuring for phy/2500base-x link mode
[   26.552264] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   26.552969] br-lan: port 1(eth1) entered blocking state
[   26.566120] br-lan: port 1(eth1) entered forwarding state
[   29.466670] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[27170.641924] br-lan: port 2(phy1-ap0) entered blocking state
[27170.647571] br-lan: port 2(phy1-ap0) entered disabled state
[27170.653176] mt798x-wmac 18000000.wifi phy1-ap0: entered allmulticast mode
[27170.660217] mt798x-wmac 18000000.wifi phy1-ap0: entered promiscuous mode
[27170.916221] br-lan: port 3(phy0-ap0) entered blocking state
[27170.921803] br-lan: port 3(phy0-ap0) entered disabled state
[27170.927458] mt798x-wmac 18000000.wifi phy0-ap0: entered allmulticast mode
[27170.934516] mt798x-wmac 18000000.wifi phy0-ap0: entered promiscuous mode
[27171.138035] br-lan: port 3(phy0-ap0) entered blocking state
[27171.143629] br-lan: port 3(phy0-ap0) entered forwarding state
[27171.677861] br-lan: port 2(phy1-ap0) entered blocking state
[27171.683458] br-lan: port 2(phy1-ap0) entered forwarding state

F0: 102B 0000
FA: 1040 0000
FA: 1040 0000 [0200]
...

Problem is we lose the error in the log with the reboot and the wiki on Ryslog seems to have gone missing.

Here is a tutorial on how to preserve them for inspection:

As for the radios disabling, they give no reason:

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

Here you go:

# ubus call system board
{
        "kernel": "6.12.94",
        "hostname": "openwrt",
        "system": "ARMv8 Processor rev 4",
        "model": "OpenWrt One",
        "board_name": "openwrt,one",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",                                                                                             "version": "25.12.5",
                "firmware_url": "https://downloads.openwrt.org/",
                "revision": "r33051-f5dae5ece4",
                "target": "mediatek/filogic",
                "description": "OpenWrt 25.12.5 r33051-f5dae5ece4",
                "builddate": "1782737960"
        }
}
# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        list ipaddr '127.0.0.1/8'

config globals 'globals'
        option dhcp_default_duid '00046ac59f7a11b7486f87395d871a60ebb3'
        option ula_prefix 'fd95:cadb:d50::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        list ipaddr '192.168.1.1/24'
        option ip6assign '60'

config interface 'wan'
        option device 'eth0'
        option proto 'dhcp'
        option multipath 'off'
        option peerdns '0'
        list dns '192.168.1.230'
        list dns '192.168.1.16'

config interface 'wan6'
        option device 'eth0'
        option proto 'dhcpv6'
        option peerdns '0'
        option reqaddress 'try'
        option reqprefix 'auto'
        option norelease '1'
        list dns 'fd95:cadb:d50::230'
        list dns 'fd95:cadb:d50::16'
        option multipath 'off'
# cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option band '2g'
	option channel '6'
	option htmode 'HE20'
	option num_global_macaddr '7'
	option country 'NO'
	option cell_density '0'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'ssid1'
	option encryption 'sae-mixed'
	option key '12345678'
	option ocv '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option band '5g'
	option channel '44'
	option htmode 'HE80'
	option num_global_macaddr '7'
	option country 'NO'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'ssid2'
	option encryption 'psk2'
	option key '12345678'
# cat /etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option localservice '1'
	option ednspacket_max '1232'
	option noresolv '1'
	list server '192.168.1.230'
	list server '192.168.1.16'
	list rebind_domain 'somedomain.com'
	list rebind_domain 'somedomain2.com'
	list rebind_domain 'somedomain3.com'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	option ra_slaac '1'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option leasefile '/tmp/odhcpd.leases'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'
	option piodir '/tmp/odhcpd-piodir'
	option hostsdir '/tmp/hosts'

config host
	option name 'somehost'
	list mac 'B0:B0:00:E0:0C:0F'
	option ip '192.168.1.14'
	list duid '0001000130195f53b4b686e18c3f%86e18c3f'
	option hostid '14'

...

config domain
	option name 'somedomain.com'
	option ip '192.168.1.66'

config domain
	option name 'subdomain.somedomain.com'
	option ip '192.168.1.230'

...

config host
	list mac 'C0:F0:00:00:0F:D0'
	option ip '192.168.1.121'
	option name 'someotherhost'

...
# cat /etc/config/firewall

config defaults
	option syn_flood '1'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'

config zone
	option name 'lan'
	list network 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'

config zone
	option name 'wan'
	list network 'wan'
	list network 'wan6'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'DROP'
	option masq '1'
	option mtu_fix '1'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'swag-443-ipv4'
	option src 'wan'
	option src_dport '443'
	option dest_ip '192.168.1.66'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'swag-443-ipv6'
	option src 'wan'
	option src_dport '443'
	option dest_ip 'xxx'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'swag-80-ipv4'
	option src 'wan'
	option src_dport '80'
	option dest_ip '192.168.1.66'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'swag-80-ipv4'
	option src 'wan'
	option src_dport '80'
	option dest_ip 'xxx'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'ssh-somehost-ipv4'
	list proto 'tcp'
	option src 'wan'
	option src_dport '222'
	option dest_ip '192.168.1.230'

config redirect
	option dest 'lan'
	option target 'DNAT'
	option name 'ssh-somehost-ipv6'
	list proto 'tcp'
	option src 'wan'
	option src_dport '222'
	option dest_ip 'xxx'

How are you powering your OpenWrt One?

It was powered by a computer's USB-C port, now by a docking station's USB-C port. It has had good and bad days with both power supplies.

It crossed my mind that the power supply cause issues, but I haven't seen any signs of that in the logs. And I've assumed that 15 V USB-C PD is a reliable power source (and that the device would only accept a power source that actually delivers 15 V.)

During boot I get these warnings, but I believe that is due to the missing battery?

[  +0.014754] rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
[  +0.007571] rtc-pcf8563 0-0051: registered as rtc0
[  +0.006007] rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
[  +0.007484] rtc-pcf8563 0-0051: hctosys: unable to read the hardware clock

Do both radios go down, or just the one with mixed?

It's the cable I'd worry about then. Do you have an USB multimeter?

Power was my secondary thought, and @psherman has me on that too.

I'm pretty sure it's always both.

I always had a problem a couple of times that wifi stopped working because /etc/board.json was empty. After some debugging i resolved it by executing /bin/board_detect and restarting the wifi devices in LuCi. (I have no idea what caused this. I just happended yesterday morning. It hasn't happened today.)

Mon Aug 31 07:43:38 2026 daemon.notice hostapd: Set MLD config: [ ]
Mon Aug 31 07:43:38 2026 daemon.notice hostapd: Reload all interfaces
Mon Aug 31 07:43:38 2026 daemon.notice wpa_supplicant[1939]: Set MLD config: [ ]
Mon Aug 31 07:43:38 2026 daemon.notice hostapd: Set MLD config: [ ]
Mon Aug 31 07:43:38 2026 daemon.notice hostapd: Reload all interfaces
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475): Syntax error: Failed to parse JSON string: unexpected end of data
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475): In find_phy_by_path(), file /usr/share/ucode/wifi/utils.uc, line 73, byte 45:
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):   called from function find_phy (/usr/share/ucode/wifi/utils.uc:109:43)
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):   called from function setup (./mac80211.sh:163:39)
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):   called from anonymous function (./mac80211.sh:341:14)
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):  `    let data = json(readfile("/etc/board.json")).wlan;`
Mon Aug 31 07:43:38 2026 daemon.notice netifd: radio1 (23475):   Near here -------------------------------------^

I do not have a multimeter. I can try using another cable. Is there any command or any logs that can tell us if power is actually the problem? The reboots don't seem to be related to increased CPU load, at least.

… It probably doesn't matter, but the device was delivered without OpenWrt, whereas the wiki article says it's always preinstalled. I actually thought it was broken and contacted the vendor, who then asked if I had tried to flash it.

I did, and except for these reboots it works as advertised. But I've wondered if it's a faulty unit.

Open it up. Send a pic of the board.

While there:

:slight_smile:

Well, duh! :smiley: But I believe rtc-pcf8563 refers to this thing.

Its not working and did not ship with OpenWrt.

Lets see if it is real.

I hope it's at least a good fake?

I replaced the USB-C cable and booted the device. This time wifi didn't work. It connected through USB-C console and saw that /etc/board.json was empty again. I ran board_detect, and then it worked.

I don't have any CR1220 battery at hand, sadly.

I bought it here, by the way:

Edit: Need to log off for some time, but I'm very curious about whatever comes next. Thanks for the help so far!

Other than this:

it looks like any other.

Is that connector bulging or is that an artifact?

If you're referring to the Dmesg or Console output, they are pretty safe to post but won't help though with your issue.

You're on current release and your config is pretty well oob, so I'm on board with @psherman looking askance of your PS (I don't think the PD PS supply is included in the EU devices). The OO needs a proper Power Delivery supply. Any variance from a normal PS like local brownouts/spikes . . . can cause the issues you’re experiencing.

If you have an 802.3af/at PoE adapter or POE switch available you can use that to power the OO by swapping your Lan/Wan ports in /etc/config/network.

On another note, the RTC needs a CR1220 coin cell battery.

That’s the M2 NVMe connector. Nothing to worry about.