D-Link DAP-1620 A1/A2, PR #17027 troubleshooting [solved]

Just wanted to give this PR a bit of visibility:

This PR adds support for the D-Link DAP-1620 A1/A2 and AFAIK it looks like the technical issues have been sorted out for quite some time now.

What still seems to be blocking it is the review requirement. GitHub currently shows that "six approving reviews from reviewers with write access are requied"(!)

Could any of the relevant ramips/mt7620 maintainers or reviewers have a look and see if there’s anything still missing, or otherwise help move it forward?

In fact, approval requires a single, authorized developer to evaluate and merge the PR.
Claude AI's comments are very helpful in assessing code quality. It would be good if someone else could confirm that it works on real hardware.
.. and wait patiently

The official Wiki page has moved to here:

Considering there is 8/64 warning due to increase in Kernel size, better get it merged soon or it will be moot because 8 MB storage would not be enough in future version of OpenWrt.

Thanks a lot for the heads-up and the link. Will try to get the PR reviewed ASAP.

Since this is a dedicated AP, I think (or at least hope) there should be plenty of room to strip out irrelevant components/packages and still make it fit on an 8/64 device.

@sendurai, I’m having trouble with the serial port. I connected a CH340 USB-to-serial adapter as shown in the picture, then tried PuTTY with 57600 8N1 and no flow control.

I don’t get any output at all (not even garbage chars) but the RX LED on the USB adapter flashes occasionally, which seems to indicate that some kind of data is being transmitted from the device.

I also tried 115200, but got the same result.

Did you run into anything similar when connecting to the serial console?

The settings noted here seems correct. That's exactly how I connect and its in last picture at the following URL:

Make sure the COM port you are selecting matches up with what it shows in your computer. (If you are using Windows, it would show up in Device Manager). The COM port might randomly change if you change the USB port as well.

Thanks for the update. I have tested the USB adapter with a TX/RX loopback and it worked, but Device Manager showed some intermittent disconnects, so the adapter itself might be faulty. I’ll hook up my oscilloscope (Rigol DS1054) next and see if the device is putting out any data at all.

Alright, the unit looks good. I caught the opening 'u-boot ...', so now it's just a matter of finding a USB-TTL adapter that actually works..

Btw, I initially thought it didn't work because of me since I used 5V, especially with the intro text over at https://openwrt.org/toh/d-link/d-link_dap-1620 being a bit misleading about 12V: 'Since it is powered by mains... (the same 100-240V AC to 12V 0.75A DC converter is used).'

I guess this might just be for the B2 model, but it’s probably worth clarifying on the wiki if anyone has edit access.

Found the root cause: it wasn't the USB adapter but just a bad USB extension cable. That's why all the intermittent disconnects. Go figure!

I’ve now got the DAP-1620 A2 booting with the patch from PR #17027. The 2.4 GHz radio comes up and works fine but the 5 GHz radio is missing. (see attached tfpt boot log)

What I’ve found so far that might be relevant (summarized):

  • PCI rescan doesn't find 01:00.0
  • The root port is there and the link is up but the endpoint never gets enumerated.
  • The stock/OpenWrt log for the DAP-1620 A1/A2 on the OpenWrt wiki does show 0000:01:00.0 and a working mt76x2e so the MT7612E clearly can enumerate on this model.
  • The original base for PR #17027 uses Linux 6.12.67.
  • Our current NAP203 base uses Linux 6.12.69.
  • No MT7620/PCIe code under target/linux/ramips changed between those two bases.

Right now I’m mainly trying to figure out whether this already breaks at PCIe enumeration or if the problem is later in the DTS/driver/firmware path.

So far I’ve checked:

  • full boot dmesg, especially for PCIe/Wi-Fi messages
  • /proc/bus/pci/devices
  • /sys/bus/pci/devices
  • forced a PCIe rescan with:
    echo 1 > /sys/bus/pci/rescan
  • checked dmesg again after the rescan

The rescan doesn’t make another PCI device appear so at the moment I’m focusing on why the 5 GHz device isn’t being enumerated in the first place.

5 GHz has been workingwith the stock D-Link firmware so the radio itself seems to be fine.

I’m currently testing against OpenWrt main with the PR applied on top of:

  • ebf169afa63d8c4323da872335d0b17882456baa

The PR branch itself is at:

  • c1e9dca3a63ddb076db71d9e8541286312515a0f

One thing I haven’t ruled out yet is the kernel version. The original PR was based around Linux 6.12.67 while my current build is on 6.12.69. I haven’t dug through all changes between those versions yet so I don’t know if that’s relevant, but I’m keeping an close eye on anything related to MT7620 PCIe init/reset/clocks/enumeration.

Next I’m planing to compare the PCIe/DTS setup from #17027 more closely with current OpenWrt and see if I can find where bring-up starts to differ.

Any ideas for useful debug points, kernel options, registers, DTS properties, or MT7620 PCIe quirks to check are very welcome.
__

Device info
root@OpenWrt:~# cat /proc/bus/pci/devices
0000    18140801        0                      0                20000000                       0                       0              0                0                       0                       0                   10000                       0
              0                0                       0                       0
#

root@OpenWrt:~# for d in /sys/bus/pci/devices/*; do
>     echo "=== $d ==="
>     cat "$d/vendor" 2>/dev/null
>     cat "$d/device" 2>/dev/null
>     cat "$d/class" 2>/dev/null
>     readlink "$d/driver" 2>/dev/null
>
> done
=== /sys/bus/pci/devices/0000:00:00.0 ===
0x1814
0x0801
0x060400

root@OpenWrt:~# cat /sys/bus/pci/devices/0000:00:00.0/config | hexdump -C
00000000  14 18 01 08 07 00 10 00  01 00 04 06 14 00 01 00  |................|
00000010  00 00 00 00 00 00 00 20  00 01 01 00 f0 00 00 00  |....... ........|
00000020  f0 ff 00 00 f0 ff 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 40 00 00 00  00 00 00 00 00 01 02 00  |....@...........|
00000040  01 50 c3 5b 00 00 00 00  00 00 00 00 00 00 00 00  |.P.[............|
00000050  05 70 80 00 00 00 00 00  00 00 00 00 00 00 00 00  |.p..............|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000070  10 00 42 00 00 80 00 00  10 20 01 00 11 3c 13 00  |..B...... ...<..|
00000080  08 00 11 30 00 00 00 00  c0 03 40 00 00 00 00 00  |...0......@.....|
00000090  00 00 00 00 10 00 00 00  00 00 00 00 02 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000100  01 00 01 14 00 00 00 00  00 00 00 00 30 20 06 00  |............0 ..|
00000110  81 10 00 00 00 20 00 00  a0 00 00 00 00 00 00 00  |..... ..........|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000140  02 00 01 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 ff 00 00 80  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000700  76 00 63 01 ff ff ff ff  04 00 00 07 00 50 10 1b  |v.c..........P..|
00000710  20 01 01 00 00 00 00 00  00 40 00 00 80 02 00 00  | ........@......|
00000720  00 00 00 00 00 00 00 00  05 c2 8b 00 10 f7 00 08  |................|
00000730  38 30 01 00 04 30 01 00  ff ff 0f 00 02 00 00 00  |80...0..........|
00000740  0f 00 00 00 00 00 00 00  1a c0 20 00 03 c0 20 00  |.......... ... .|
00000750  74 80 21 00 00 00 00 00  00 00 00 00 00 00 00 00  |t.!.............|
00000760  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000800  00 00 00 00 00 00 00 00  00 00 00 00 00 01 00 00  |................|
00000810  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000
U-boot + TFTP Boot log
Image1: OK Image2: OK
Both images are OK!!!

=================================================

Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.

You choosed 4


MT7620 # setenv ipaddr 192.168.100.119
MT7620 # setenv serverip 192.168.100.230
MT7620 # printenv
bootcmd=tftp
bootdelay=2
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
stdin=serial
stdout=serial
stderr=serial
ethact=Eth0 (10/100-M)
ipaddr=192.168.100.119
serverip=192.168.100.230


MT7620 # tftpboot 0x80000000 dap1620-initramfs.bin
 netboot_common, argc= 3
 NetTxPacket = 0x83FE70C0
 KSEG1ADDR(NetTxPacket) = 0xA3FE70C0
 NetLoop,call eth_halt !
 NetLoop,call eth_init !
Trying Eth0 (10/100-M)

 Waitting for RX_DMA_BUSY status Start... done

 ETH_STATE_ACTIVE!!
Using Eth0 (10/100-M) device
TFTP from server 192.168.100.230; our IP address is 192.168.100.119
Filename 'dap1620-initramfs.bin'.

 TIMEOUT_COUNT=10,Load address: 0x80000000
Loading: Got ARP REPLY, set server/gtwy eth addr (fe:5e:59:a3:91:64)
Got it
Got ARP REQUEST, return our IP

done
Bytes transferred = 6717117 (667ebd hex)
NetBootFileXferSize= 00667ebd
MT7620 #

 netboot_common, argc= 3

 KSEG1ADDR(NetTxPacket) = 0xA3FE70C0

 NetLoop,call eth_halt !

 NetLoop,call eth_init !
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!!
Using Eth0 (10/100-M) device
TFTP from server 192.168.100.230; our IP address is 192.168.100.119
Filename 'dap1620-initramfs.bin'.

 TIMEOUT_COUNT=10,Load address: 0x80000000

Got ARP REPLY, set server/gtwy eth addr (fe:5e:59:a3:91:64)
Got it
#################################################################
         ####################################################
Abort
MT7620 # <INTERRUPT>




MT7620 # tftpboot 0x81000000 dap1620-initramfs.bin

 netboot_common, argc= 3

 KSEG1ADDR(NetTxPacket) = 0xA3FE70C0

 NetLoop,call eth_halt !

 NetLoop,call eth_init !
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!!
Using Eth0 (10/100-M) device
TFTP from server 192.168.100.230; our IP address is 192.168.100.119
Filename 'dap1620-initramfs.bin'.

 TIMEOUT_COUNT=10,Load address: 0x81000000
Loading: Got ARP REPLY, set server/gtwy eth addr (fe:5e:59:a3:91:64)
Got it
##################checksum bad
checksum bad
##############################checksum bad
Got ARP REQUEST, return our IP
#################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###########################################checksum bad
######################
         #################################################################
         ############checksum bad
#####################################################
         #######################################checksum bad
##########################
         #################################################################
         #################################################################
         ############checksum bad
#####################################################
         #######################checksum bad
##########################################
         #################################################################
         ############
done
Bytes transferred = 6717117 (667ebd hex)
NetBootFileXferSize= 00667ebd

MT7620 # bootm 0x81000000
## Booting image at 81000000 ...
   Image Name:   MIPS OpenWrt Linux-6.12.69
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    6717053 Bytes =  6.4 MB
   Load Address: 80000000
   Entry Point:  80000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 64

OpenWrt boot log
Starting kernel ...

[    0.000000] Linux version 6.12.69 (builder@openwrt-dev) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 14.3.0 r33027+3-708dcca80a) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 Thu Aug 27 15:26:22 2026
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6
[    0.000000] printk: legacy bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019650 (MIPS 24KEc)
[    0.000000] MIPS: machine is D-Link DAP-1620 A2
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00032410
[    0.000000] Readback ErrCtl register=00032410
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16384
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 580MHz
[    0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns
[    0.000000] systick: enable autosleep mode
[    0.000000] systick: running - mult: 214748, shift: 32
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[    0.000003] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[    0.015542] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.087758] pid_max: default: 32768 minimum: 301
[    0.109672] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.124104] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.151988] Memory: 50344K/65536K available (6553K kernel code, 601K rwdata, 1480K rodata, 5052K init, 237K bss, 14668K reserved, 0K cma-reserved)
[    0.184825] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.204356] futex hash table entries: 256 (order: 0, 3072 bytes, linear)
[    0.226647] pinctrl core: initialized pinctrl subsystem
[    0.241448] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.258149] /pinctrl: Fixed dependency cycle(s) with /pinctrl/pinctrl0
[    0.893096] PCI host bridge to bus 0000:00
[    0.901175] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
[    0.914799] pci_bus 0000:00: root bus resource [io  0x10160000-0x1016ffff]
[    0.928466] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.944303] pci 0000:00:00.0: [1814:0801] type 01 class 0x060400 PCIe Root Port
[    0.958772] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x7fffffff]
[    0.970529] pci 0000:00:00.0: BAR 1 [mem 0x20200000-0x2020ffff]
[    0.982300] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.992146] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    1.004279] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x200fffff]
[    1.017776] pci 0000:00:00.0:   bridge window [mem 0x20100000-0x201fffff pref]
[    1.032214] pci 0000:00:00.0: supports D1
[    1.040083] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.074574] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    1.087638] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[    1.100802] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: can't assign; no space
[    1.115679] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: failed to assign
[    1.129521] pci 0000:00:00.0: BAR 1 [mem 0x20000000-0x2000ffff]: assigned
[    1.143018] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.155289] clocksource: Switched to clocksource systick
[    1.180018] NET: Registered PF_INET protocol family
[    1.189959] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    1.205381] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    1.222109] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.238779] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    1.253934] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    1.267943] TCP: Hash tables configured (established 1024 bind 1024)
[    1.281445] MPTCP token hash table entries: 512 (order: 1, 6144 bytes, linear)
[    1.296090] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.309011] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.323839] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.335113] PCI: CLS 80 bytes, default 32
[    1.343300] rt-timer 10000100.timer: maximum frequency is 1220Hz
[    2.178374] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    2.193104] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    2.204644] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    2.232720] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    2.247262] printk: legacy console [ttyS0] disabled
[    2.257700] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103
[    2.277449] printk: legacy console [ttyS0] enabled
[    2.277449] printk: legacy console [ttyS0] enabled
[    2.296404] printk: legacy bootconsole [early0] disabled
[    2.296404] printk: legacy bootconsole [early0] disabled
[    2.328205] spi spi0.0: force spi mode3
[    2.336732] 4 fixed-partitions partitions found on MTD device spi0.0
[    2.349875] Creating 4 MTD partitions on "spi0.0":
[    2.359481] 0x000000000000-0x000000030000 : "u-boot"
[    2.406693] 0x000000030000-0x000000040000 : "nvram"
[    2.425801] 0x000000040000-0x000000050000 : "factory"
[    3.182266] 0x000000050000-0x000000800000 : "firmware"
[    3.193644] 2 uimage-fw partitions found on MTD device firmware
[    3.205562] Creating 2 MTD partitions on "firmware":
[    3.215476] 0x000000000000-0x0000000f0000 : "kernel"
[    3.226315] 0x0000000f0000-0x0000007b0000 : "rootfs"
[    3.237106] mtd: setting mtd5 (rootfs) as root device
[    3.247360] 1 squashfs-split partitions found on MTD device rootfs
[    3.259774] 0x0000003f0000-0x0000007b0000 : "rootfs_data"
[    3.291033] gsw: ephy base address: 12
[    3.299943] gsw: setting port4 to ephy mode
[   10.561996] mtk_soc_eth 10100000.ethernet: connected port 5 to PHY at mdio-bus:01 [uid=001cc915, driver=Generic PHY]
[   10.583307] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver
[   10.596072] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[   10.613419] rt2880_wdt 10000120.watchdog: Initialized
[   10.626134] NET: Registered PF_INET6 protocol family
[   10.643327] Segment Routing with IPv6
[   10.650902] In-situ OAM (IOAM) with IPv6
[   10.658948] NET: Registered PF_PACKET protocol family
[   10.669115] 8021q: 802.1Q VLAN Support v1.8
[   10.711805] clk: Disabling unused clocks
[   10.747844] Freeing unused kernel image (initmem) memory: 5052K
[   10.759705] This architecture does not have kernel memory protection.
[   10.772563] Run /init as init process
[   11.551062] init: Console is alive
[   11.558473] init: - watchdog -
[   11.586957] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[   11.604698] gpio_button_hotplug: loading out-of-tree module taints kernel.
[   11.630532] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[   11.649777] init: - preinit -
[   14.529227] random: crng init done
[   15.422728] 8021q: adding VLAN 0 to HW filter on device eth0
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
[   16.946187] mtk_soc_eth 10100000.ethernet eth0: port 5 link up (1000Mbps/Full duplex)
[   17.062999] procd: - early -
[   17.069313] procd: - watchdog -
[   17.354074] procd: - watchdog -
[   17.361735] procd: - ubus -
[   17.404132] procd: - init -
Please press Enter to activate this console.
[   18.340325] kmodloader: loading kernel modules from /etc/modules.d/*
[   19.965734] Loading modules backported from Linux version v6.18.7-0-g5dfbc5357
[   19.980244] Backport generated by backports.git c8a37ce
[   20.338617] PPP generic driver version 2.4.2
[   20.370776] NET: Registered PF_PPPOX protocol family
[   20.446042] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected
[   20.462083] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 7620 detected
[   20.539867] kmodloader: done loading kernel modules from /etc/modules.d/*



BusyBox v1.37.0 (2026-01-02 17:07:02 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r33027+3-708dcca80a
 -----------------------------------------------------

 === WARNING! =====================================
 There is no root password defined on this device!
 Use the "passwd" command to set up a new password
 in order to prevent unauthorized SSH logins.
 --------------------------------------------------


 OpenWrt recently switched to the "apk" package manager!

 OPKG Command           APK Equivalent      Description
 ------------------------------------------------------------------
 opkg install <pkg>     apk add <pkg>       Install a package
 opkg remove <pkg>      apk del <pkg>       Remove a package
 opkg upgrade           apk upgrade         Upgrade all packages
 opkg files <pkg>       apk info -L <pkg>   List package contents
 opkg list-installed    apk info            List installed packages
 opkg update            apk update          Update package lists
 opkg search <pkg>      apk search <pkg>    Search for packages
 ------------------------------------------------------------------

For more information visit:
https://openwrt.org/docs/guide-user/additional-software/opkg-to-apk-cheatsheet

root@OpenWrt:~# [   84.456216] 8021q: adding VLAN 0 to HW filter on device eth0
[   84.557682] br-lan: port 1(eth0.1) entered blocking state
[   84.568552] br-lan: port 1(eth0.1) entered disabled state
[   84.579403] eth0.1: entered allmulticast mode
[   84.588123] mtk_soc_eth 10100000.ethernet eth0: entered allmulticast mode
[   84.602096] eth0.1: entered promiscuous mode
[   84.610690] mtk_soc_eth 10100000.ethernet eth0: entered promiscuous mode
[   87.548762] br-lan: port 1(eth0.1) entered blocking state
[   87.559631] br-lan: port 1(eth0.1) entered forwarding state


root@OpenWrt:~# ip addre
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::429b:cdff:fee7:6676/64 scope link
       valid_lft forever preferred_lft forever
4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fd70:8e18:71e5::1/60 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::429b:cdff:fee7:6676/64 scope link
       valid_lft forever preferred_lft forever
5: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
root@OpenWrt:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
5: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
root@OpenWrt:~# [  159.631753] urngd: v1.0.2 started.

@sendurai, which version worked fully for you?

It looks like there have been some changes to the PCIe initialization that might have affected the 5 GHz radio (MT7612), so I need to trace this back to find where the regression was introduced to identify the root cause.

The original one I tested for most features was 23.xx and Kernel 5.xx. Even remember using it in 6.xx. Unforunately unable to test it right now, but both radio0 and radio1 worked at that time.

ok, Pulled the code again from the branch and recompiled everything. Following are done:

  1. Bounce interval for WPS is set
  2. Included the "kmod-phy-realtek" driver.

The code as its in the following branch works: (Kernel 6.12.67). Including both wifi channels. (Image attached). Also scans all the nearby networks, so yes, works.

sendurai/openwrt at dap1620a2

If I rebase with latest the device doesnt boot. Stuck at the following. The last line comes after a good 10 mins. Doesnt seem to connect:

[ 5.084447] gsw: ephy base address: 12
[ 5.093352] gsw: setting port4 to ephy mode
[ 255.356374] random: crng init done

Great, thank you so much! :grinning_face: :folded_hands:

Since we now have a solid working baseline, I’ll create a bunch of new firmware versions to see which one starts failing. It might take a while though, since builds take forever.

Hi again, could you also attach config.buildinfo, feeds.buildinfo, version.buildinfo, sha256sums, and the DAP-1620 .manifest from bin/targets/ramips/mt7620/?

The build .config would also help. That gives me a clean baseline to reproduce the working image.

Those cannot be checkedin as will violate the pull request validations. Also the files you are asked for might be related to base system as well. I'm using Windows WSL. It might be different and might cause issues differences.

Ideal to follow:

'make menuconfig' has the following selections after the code pulled in.

  • Target: MediaTek Ralink MIPS
  • SubTarget: MT7620 based boards
  • Target Profile: D-Link DAP-1620-A2
  • Target Images: squashfs / ramfs
  • Luci -> Collections -> Luci Interface

After first build I'm using this for faster compilation:

make -j8 defconfig world

j8 = 8 jobs. Adjust based on your machine config. Even a small number like 1 is reasonably fast for successive compilation. Only the first run takes time due to download and full-compile.

Since those files are just plain text, you could probably either upload them here or add them as assets to your own GitHub repository.

These are the files I'm talking about:

[openwrt-buildroot]

bin/targets/ramips/mt7620/config.buildinfo
bin/targets/ramips/mt7620/feeds.buildinfo
bin/targets/ramips/mt7620/version.buildinfo
bin/targets/ramips/mt7620/sha256sums
bin/targets/ramips/mt7620/openwrt-ramips-mt7620-dlink_dap-1620-a2.manifest
.config

That should give us a reproducible baseline for a build where both the 2.4 GHz and 5 GHz radios are confirmed working.

My current build environment is a Debian container running on an old i7-8550U with only 4 cores, so it is not exactly fast. I plan to move the build environment over to my Mac mini M4 at some point.

A bigger problem for me at the moment is how to manage several different OpenWrt Linux kernel trees/commits efficiently. Right now I use a separate build tree for each commit I want to test, which means each tree ends up rebuilding its own toolchain and a lot of the host tools.

Is there a smarter way to handle this? For example, sharing dl/, ccache, toolchains or other build artifacts between trees without making the tests unreliable? Suggestions are very welcome.

BTW, what exactly does defconfig world mean in:

make -j8 defconfig world

I understand -j8, but I am not completely clear on what OpenWrt does when defconfig and world are specified together. Normally I just use menucfg and make -j"$(nproc)".

@sendurai - quick update: the DAP-1620 A2 is now working fine here with PR #17027 on OpenWrt 25.12.5 r33051-f5dae5ece4, with LuCI light 26.180.75667~128a781 (HEAD detached at 128a7812).

5 GHz MT7612E PCIe radio is now working. I’ve also flashed and booted the sysupgrade image from flash, after first booting the initramfs image from U-Boot like this:

MT7620 # tftpboot 0x81000000 dap1620-v25.12.5-pr17027-initramfs.bin
MT7620 # bootm 0x81000000

Earlier builds I'v tested with PR #17027 look like this:

  • Linux 6.6.60: works (be952e98bc1d)
  • Linux 6.12.67: works (c1e9dca3a63d)
  • Linux 6.12.68: works (0bd6a895618f kernel bump)
  • Linux 6.12.69: controlled builds work (b4759469c99b kernel bump)

As you know, I had some intermittent trouble earlier with 6.12.69 where the 5 GHz PCIe radio was missing, but I haven’t been able to reproduce it reliably. It might even have been a flaky LAN connector, IDK.

The main thing I’m looking at now is boot timing. There’s still roughly a 20–30+ second delay before the LAN interface comes up, so I’m checking which init/startup script before S20network is holding things up. But that’s really unrelated to the PR itself.

So at this point, I think we can finally push to get PR #17027 merged into OpenWrt main!.

Luci System Status

Flashing + Boot log
root@OpenWrt:/tmp# cd /tmp
root@OpenWrt:/tmp# wget http://192.168.100.230:8000/dap1620-v25.12.5-pr17027-luc
i-light-dhcp-sysupgrade.bin
Downloading 'http://192.168.100.230:8000/dap1620-v25.12.5-pr17027-luci-light-dhcp-sysupgrade.bin'
Connecting to 192.168.100.230:8000
Writing to 'dap1620-v25.12.5-pr17027-luci-light-dhcp-sysupgrade.bin'
dap1620-v25.12.5-pr1 100% |*******************************|  6720k  0:00:00 ETA
Download completed (6881555 bytes)
root@OpenWrt:/tmp# sysupgrade -T /tmp/dap1620-v25.12.5-pr17027-luci-light-dhcp-s
ysupgrade.bin
root@OpenWrt:/tmp# sha256sum dap1620-v25.12.5-pr17027-luci-light-dhcp-sysupgrade
.bin
1649ecee96e7e186e734bde632b99291d61142aad9b68a99a37052bde0107fa5  dap1620-v25.12.5-pr17027-luci-light-dhcp-sysupgrade.bin
root@OpenWrt:/tmp# sysupgrade -T /tmp/dap1620-v25.12.5-pr17027-luci-light-dhcp-s
ysupgrade.bin
echo $?root@OpenWrt:/tmp# echo $?
0
root@OpenWrt:/tmp# sysupgrade -n /tmp/dap1620-v25.12.5-pr17027-luci-light-dhcp-s
ysupgrade.bin
Mon Aug 31 16:52:28 GMT 2026 upgrade: Commencing upgrade. Closing all shell sessions.
Watchdog handover: fd=3
- watchdog -
Watchdog does not have CARDRESET support
Mon Aug 31 16:52:30 GMT 2026 upgrade: Sending TERM to remaining processes ...
Mon Aug 31 16:52:30 GMT 2026 upgrade: Sending signal TERM to rssileds (2308)
Mon Aug 31 16:52:34 GMT 2026 upgrade: Sending KILL to remaining processes ...
[  560.587852] stage2 (2867): drop_caches: 3
Mon Aug 31 16:52:40 GMT 2026 upgrade: Switching to ramdisk...
Mon Aug 31 16:52:43 UTC 2026 upgrade: Performing system upgrade...
[  563.499814] do_stage2 (2867): drop_caches: 3
Unlocking firmware ...

Writing from <stdin> to firmware ...
Mon Aug 31 16:53:49 UTC 2026 upgrade: Upgrade completed
Mon Aug 31 16:53:50 UTC 2026 upgrade: Rebooting system...
umount: can't unmount /dev: Resource busy
umoun[  629.991830] reboot: Restarting system
t: can't unmount /tmp: Resource busy


U-Boot 1.1.3 (Mar 21 2016 - 16:55:00)

Board: Ralink APSoC DRAM:  64 MB
relocate_code Pointer at: 83fb0000
enable ephy clock...done. rf reg 29 = 5
SSC disabled.
******************************
Software System Reset Occurred
******************************
spi_wait_nsec: 29
spi device id: c2 20 17 c2 20 (2017c220)
find flash: MX25L6405D
raspi_read: from:30000 len:1000
raspi_read: from:30000 len:1000
============================================
Ralink UBoot Version: 4.1.1.0
--------------------------------------------
ASIC 7620_MP (Port5<->Phy)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:Mar 21 2016  Time:16:55:00
Cameo Version: v1.00 Build:02
Module Name: D-Link DAP-1620A1
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768

 ##### The CPU freq = 580 MHZ ####
 estimate memory size =64 Mbytes
raspi_read: from:50000 len:40
raspi_read: from:4f0000 len:40

=================================================
Check image validation:
Image1 Header Magic Number --> OK
Image2 Header Magic Number --> Failed
Image1 Header Checksum --> OK
Image1 Data Checksum --> raspi_read: from:50040 len:29cf8a
OK

Image1: OK Image2: Broken
Only Image2 is borken!!

=================================================

Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.                                                   0

3: System Boot system code via Flash.
## Booting image at bc050000 ...
raspi_read: from:50000 len:40
   Image Name:   MIPS OpenWrt Linux-6.12.94
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2740106 Bytes =  2.6 MB
   Load Address: 80000000
   Entry Point:  80000000
raspi_read: from:50040 len:29cf8a
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 64

Starting kernel ...

[    0.000000] Linux version 6.12.94 (builder@openwrt-dev) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 14.3.0 r33051-f5dae5ece4) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 Mon Jun 29 12:59:20 2026
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6
[    0.000000] printk: legacy bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019650 (MIPS 24KEc)
[    0.000000] MIPS: machine is D-Link DAP-1620 A2
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00036400
[    0.000000] Readback ErrCtl register=00036400
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16384
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 580MHz
[    0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns
[    0.000000] systick: enable autosleep mode
[    0.000000] systick: running - mult: 214748, shift: 32
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[    0.000002] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[    0.015548] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.087769] pid_max: default: 32768 minimum: 301
[    0.109941] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.124373] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.152241] Memory: 54120K/65536K available (6574K kernel code, 604K rwdata, 1480K rodata, 1252K init, 237K bss, 10892K reserved, 0K cma-reserved)
[    0.185290] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.204821] futex hash table entries: 256 (order: 0, 3072 bytes, linear)
[    0.227102] pinctrl core: initialized pinctrl subsystem
[    0.241932] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.258533] /pinctrl: Fixed dependency cycle(s) with /pinctrl/pinctrl0
[    0.893390] PCI host bridge to bus 0000:00
[    0.901471] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
[    0.915089] pci_bus 0000:00: root bus resource [io  0x10160000-0x1016ffff]
[    0.928759] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.944660] pci 0000:00:00.0: [1814:0801] type 01 class 0x060400 PCIe Root Port
[    0.959109] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x7fffffff]
[    0.970857] pci 0000:00:00.0: BAR 1 [mem 0x20200000-0x2020ffff]
[    0.982627] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.992479] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    1.004614] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x200fffff]
[    1.018104] pci 0000:00:00.0:   bridge window [mem 0x20100000-0x201fffff pref]
[    1.032539] pci 0000:00:00.0: supports D1
[    1.040416] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.054348] pci 0000:01:00.0: [14c3:7662] type 00 class 0x028000 PCIe Endpoint
[    1.068699] pci 0000:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit]
[    1.081465] pci 0000:01:00.0: ROM [mem 0x00000000-0x0000ffff pref]
[    1.093848] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    1.106223] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    1.119307] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[    1.132448] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: can't assign; no space
[    1.147304] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: failed to assign
[    1.161155] pci 0000:00:00.0: bridge window [mem 0x20000000-0x200fffff]: assigned
[    1.176041] pci 0000:00:00.0: bridge window [mem 0x20100000-0x201fffff pref]: assigned
[    1.191786] pci 0000:00:00.0: BAR 1 [mem 0x20200000-0x2020ffff]: assigned
[    1.205292] pci 0000:01:00.0: BAR 0 [mem 0x20000000-0x200fffff 64bit]: assigned
[    1.219838] pci 0000:01:00.0: ROM [mem 0x20100000-0x2010ffff pref]: assigned
[    1.233847] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.243695] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x200fffff]
[    1.257207] pci 0000:00:00.0:   bridge window [mem 0x20100000-0x201fffff pref]
[    1.274094] clocksource: Switched to clocksource systick
[    1.298886] NET: Registered PF_INET protocol family
[    1.308810] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    1.324238] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    1.340985] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.357647] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    1.372792] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    1.386809] TCP: Hash tables configured (established 1024 bind 1024)
[    1.400060] MPTCP token hash table entries: 512 (order: 1, 6144 bytes, linear)
[    1.414703] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.427619] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.442432] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.453721] PCI: CLS 0 bytes, default 32
[    1.461668] rt-timer 10000100.timer: maximum frequency is 1220Hz
[    1.479229] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    1.493972] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.505508] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    1.531728] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.546386] printk: legacy console [ttyS0] disabled
[    1.556713] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103
[    1.576451] printk: legacy console [ttyS0] enabled
[    1.576451] printk: legacy console [ttyS0] enabled
[    1.595402] printk: legacy bootconsole [early0] disabled
[    1.595402] printk: legacy bootconsole [early0] disabled
[    1.629801] spi spi0.0: force spi mode3
[    1.638197] 4 fixed-partitions partitions found on MTD device spi0.0
[    1.651316] Creating 4 MTD partitions on "spi0.0":
[    1.660953] 0x000000000000-0x000000030000 : "u-boot"
[    1.673938] 0x000000030000-0x000000040000 : "nvram"
[    1.685790] 0x000000040000-0x000000050000 : "factory"
[    1.698277] 0x000000050000-0x000000800000 : "firmware"
[    1.710862] 2 uimage-fw partitions found on MTD device firmware
[    1.722777] Creating 2 MTD partitions on "firmware":
[    1.732689] 0x000000000000-0x00000029cfca : "kernel"
[    1.742596] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only
[    1.761046] 0x00000029cfca-0x0000007b0000 : "rootfs"
[    1.771062] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only
[    1.791182] mtd: setting mtd5 (rootfs) as root device
[    1.801440] 1 squashfs-split partitions found on MTD device rootfs
[    1.813791] 0x000000690000-0x0000007b0000 : "rootfs_data"
[    1.848925] gsw: ephy base address: 12
[    1.857818] gsw: setting port4 to ephy mode
[    1.868998] mtk_soc_eth 10100000.ethernet: connected port 5 to PHY at mdio-bus:01 [uid=001cc915, driver=Generic PHY]
[    1.890328] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver
[    1.903089] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    1.920433] rt2880_wdt 10000120.watchdog: Initialized
[    1.933126] NET: Registered PF_INET6 protocol family
[    1.950623] Segment Routing with IPv6
[    1.958193] In-situ OAM (IOAM) with IPv6
[    1.966286] NET: Registered PF_PACKET protocol family
[    1.976447] 8021q: 802.1Q VLAN Support v1.8
[    2.019520] clk: Disabling unused clocks
[    2.036836] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    2.057759] Freeing unused kernel image (initmem) memory: 1252K
[    2.069594] This architecture does not have kernel memory protection.
[    2.082446] Run /sbin/init as init process
[    3.303104] init: Console is alive
[    3.310499] init: - watchdog -
[    4.803681] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.907455] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    4.933454] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.952553] init: - preinit -
[    9.107160] random: crng init done
[   10.405375] 8021q: adding VLAN 0 to HW filter on device eth0
[   10.418182] mtk_soc_eth 10100000.ethernet eth0: port 5 link up (1000Mbps/Full duplex)
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
[   12.203922] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[   12.223170] urandom-seed: Seed file not found (/etc/urandom.seed)
- generating board file -
[   13.133947] procd: - early -
[   13.140035] procd: - watchdog -
[   13.426630] procd: - watchdog -
[   13.435216] procd: - ubus -
[   13.580845] procd: - init -
Please press Enter to activate this console.
[   16.871573] kmodloader: loading kernel modules from /etc/modules.d/*
[   18.913690] Loading modules backported from Linux version v6.18.26-0-g1fe060681
[   18.928386] Backport generated by backports.git 6ecbb44
[   19.740190] mt76x2e 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
[   19.752916] mt76x2e 0000:01:00.0: ASIC revision: 76120044
[   20.467473] mt76x2e 0000:01:00.0: ROM patch build: 20141115060606a
[   20.847936] mt76x2e 0000:01:00.0: Firmware Version: 0.0.00
[   20.858945] mt76x2e 0000:01:00.0: Build: 1
[   20.867104] mt76x2e 0000:01:00.0: Build Time: 201607111443____
[   20.947640] mt76x2e 0000:01:00.0: Firmware running!
[   20.957577] mt76x2e 0000:01:00.0: registering led 'mt76-phy0'
[   21.412940] PPP generic driver version 2.4.2
[   21.469017] NET: Registered PF_PPPOX protocol family
[   21.670385] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected
[   21.686389] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 7620 detected
[   21.798189] kmodloader: done loading kernel modules from /etc/modules.d/*



BusyBox v1.37.0 (2026-06-29 12:59:20 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 25.12.5, r33051-f5dae5ece4 Dave's Guitar
 -----------------------------------------------------

 === WARNING! =====================================
 There is no root password defined on this device!
 Use the "passwd" command to set up a new password
 in order to prevent unauthorized SSH logins.
 --------------------------------------------------


 OpenWrt recently switched to the "apk" package manager!

 OPKG Command           APK Equivalent      Description
 ------------------------------------------------------------------
 opkg install <pkg>     apk add <pkg>       Install a package
 opkg remove <pkg>      apk del <pkg>       Remove a package
 opkg upgrade           apk upgrade         Upgrade all packages
 opkg files <pkg>       apk info -L <pkg>   List package contents
 opkg list-installed    apk info            List installed packages
 opkg update            apk update          Update package lists
 opkg search <pkg>      apk search <pkg>    Search for packages
 ------------------------------------------------------------------

For more information visit:
https://openwrt.org/docs/guide-user/additional-software/opkg-to-apk-cheatsheet


root@OpenWrt:~# 
[  180.528084] urngd: v1.0.2 started.
[  199.972756] 8021q: adding VLAN 0 to HW filter on device eth0
[  200.063749] br-lan: port 1(eth0.1) entered blocking state
[  200.074641] br-lan: port 1(eth0.1) entered disabled state
[  200.085481] eth0.1: entered allmulticast mode
[  200.094208] mtk_soc_eth 10100000.ethernet eth0: entered allmulticast mode
[  200.108149] eth0.1: entered promiscuous mode
[  200.116687] mtk_soc_eth 10100000.ethernet eth0: entered promiscuous mode
[  202.618427] br-lan: port 1(eth0.1) entered blocking state
[  202.629294] br-lan: port 1(eth0.1) entered forwarding state
[  210.813145] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[  210.900266] jffs2_build_filesystem(): unlocking the mtd device...
[  210.900350] done.
[  210.916603] jffs2_build_filesystem(): erasing all blocks after the end marker...
[  220.706501] done.
[  220.725326] jffs2: notice: (2149) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[  221.521116] overlayfs: upper fs does not support tmpfile.

root@OpenWrt:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::429b:cdff:fee7:6676/64 scope link
       valid_lft forever preferred_lft forever
4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.121/24 brd 192.168.100.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fe80::429b:cdff:fee7:6676/64 scope link
       valid_lft forever preferred_lft forever
5: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether 40:9b:cd:e7:66:76 brd ff:ff:ff:ff:ff:ff