D-Link DAP-2360 (AR7242 CPU) able to run OpenWrt?

I have a D-Link DAP-2360 access point that I would like to run OpenWrt on if possible. It has a AR7242 CPU in it and I've found several other devices on this site that can run OpenWrt with that CPU. Here are some specs for the device:

CPU: Atheros AR7242-AH1A (MIPS 24K 32-bit @ 400MHz)
Storage: 16MB
RAM: 64MB
WiFi: Atheros AR9283 2x2 MIMO 802.11n (2.4GHz)
Ethernet: Atheros AR8021

There is also a backdoor built into the official firmware that lets you drop into a busybox root shell:

telnet or ssh into the device.
at the command prompt, type: alpha sdd21234
then type: shell

Is it possible to run OpenWrt on this device? Could I use one of the firmwares for one of the other devices that have the same CPU? I'm assuming that would brick it but I don't know for sure. What would need to be done to port and compile a build of OpenWrt that would run on this device? Thanks. :slightly_smiling_face:

That is probably the right assumption. Firmware for embedded devices is board-specific. It isn't like OSes for x86_64/AMD64 PCs.

As it isn't listed as a supported device, someone with access to the device would need to port OpenWrt to it. Being an older device (2010) with a relatively slow SoC and without 802.11ac, that suggests that you may be one of the few in that position with the desire to spend time on the task.

https://wikidevi.com/wiki/D-Link_DAP-2360

I was reading the "Adding a new device" page and I tried to collect as much info as I could. It recommended running these commands:

dmesg                          # log buffer might be to small, see note 1.
cat /proc/cmdline
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/devices
ls /sys/devices/platform
cat /proc/mtd
cat /sys/class/mtd/mtd*/offset # Linux 4.1 and newer, see note 2.
ifconfig -a
ls /sys/class/net
brctl show
cat /sys/kernel/debug/gpio

Here are the results:

# dmesg
dmesg: not found

# cat /proc/cmdline
console=ttyS0,115200 root=/dev/mtdblock0 rw mem=64m

# cat /proc/cpuinfo
system type		: Atheros AR7240 (Python)
processor		: 0
cpu model		: MIPS 24Kc V7.4
BogoMIPS		: 266.24
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 16
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0000, 0x0fe4, 0x0d78, 0x0fa8]
ASEs implemented	: mips16
shadow register sets	: 1
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

# cat /proc/meminfo
MemTotal:          62320 kB
MemFree:           37676 kB
Buffers:            2872 kB
Cached:            10632 kB
SwapCached:            0 kB
Active:            10552 kB
Inactive:           5928 kB
Active(anon):       2976 kB
Inactive(anon):        0 kB
Active(file):       7576 kB
Inactive(file):     5928 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          2992 kB
Mapped:             2532 kB
Slab:               5696 kB
SReclaimable:        916 kB
SUnreclaim:         4780 kB
PageTables:          256 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       31160 kB
Committed_AS:       5660 kB
VmallocTotal:    1048404 kB
VmallocUsed:       18260 kB
VmallocChunk:    1023188 kB

# cat /proc/devices
Character devices:
  1 mem
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
 10 misc
 77 AR7240_GPIOC
 90 mtd
101 gpio
128 ptm
136 pts

Block devices:
  1 ramdisk
259 blkext
 31 mtdblock

# ls /sys/devices/platform
serial8250
ar7240-ehci.0
serial8250.0
uevent

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00e9ff40 00010000 "rootfs"
mtd1: 00f70000 00010000 "upgrade"
mtd2: 00010000 00010000 "rgdb"
mtd3: 00010000 00010000 "bdcfg"
mtd4: 00010000 00010000 "langpack"
mtd5: 00010000 00010000 "certificate"
mtd6: 00010000 00010000 "radiocfg"
mtd7: 01000000 00010000 "flash"
mtd8: 00040000 00010000 "bootloader"
mtd9: 00010000 00010000 "boot config"

# cat /sys/class/mtd/mtd*/offset
cat: can't open '/sys/class/mtd/mtd*/offset': No such file or directory

# ifconfig -a
ath0      Link encap:Ethernet  HWaddr C8:D3:A3:1B:D5:38  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2969812 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3784833 errors:0 dropped:342 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1964959496 (1.8 GiB)  TX bytes:2894219729 (2.6 GiB)

ath8      Link encap:Ethernet  HWaddr CA:D3:A3:1B:D5:38  
          UP BROADCAST RUNNING MULTICAST  MTU:1504  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19746 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:1046538 (1022.0 KiB)

br0       Link encap:Ethernet  HWaddr C8:D3:A3:1B:D5:38  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2310855 errors:0 dropped:0 overruns:0 frame:0
          TX packets:143446 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:277561316 (264.7 MiB)  TX bytes:10624910 (10.1 MiB)

eth0      Link encap:Ethernet  HWaddr C8:D3:A3:1B:D5:38  
          UP BROADCAST RUNNING MULTICAST  MTU:1504  Metric:1
          RX packets:15800250 errors:50 dropped:10 overruns:0 frame:50
          TX packets:10880687 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:832092712 (793.5 MiB)  TX bytes:1889345316 (1.7 GiB)

eth1      Link encap:Ethernet  HWaddr 00:03:7F:E0:00:F5  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:86 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8268 (8.0 KiB)  TX bytes:8268 (8.0 KiB)

wifi0     Link encap:Ethernet  HWaddr C8:D3:A3:1B:D5:38  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5964748 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5256365 errors:144217 dropped:2941 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:48 Memory:b0000000-b0010000 

# ls /sys/class/net
ath8
ath0
wifi0
br0
eth1
eth0
lo

# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.c8d3a31bd538	yes		eth0
							ath0
							ath8

# cat /sys/kernel/debug/gpio
cat: can't open '/sys/kernel/debug/gpio': No such file or directory

Yeah, I saw that wikidevi page earlier. That's where I got the specs that I put in the OP.

This device was given to me so I'm just messing around with it since I've got some free time right now. I looked at the white paper for the wireless chipset it has in it and it says that it supports 802.11s / wireless mesh, but the D-Link firmware doesn't provide that functionality.

It has some type of implementation of WDS but I haven't gotten it to work. I figured if OpenWrt would run on it then I'd be able to take advantage of the 802.11s mesh function in the wireless chipset and try to create a mesh network with my Netgear EX3700 that is currently running OpenWrt.

I don't really know where to start. I have some programming experience and have been using Linux for about 15 years or so. I guess I need to set up a development environment on my PC to cross compile OpenWrt to this devices architecture?

By the way, if I were to try to port OpenWrt to this device, does anyone know how many additions or modifications to the source code would generally be needed to get a bootable image? A few files, or is it more on the order of a 1000 lines of code?

Edit: is there a way to get the kernel ring buffer without dmesg? I found a script in /etc/init.d/ that seems to be one of the very first thing that runs. It mounts /dev, /proc, etc. and it also runs the script at /var/run/logs_run.sh which has this in it:

klogd -c 5 &

Could I change that to something like:

klogd -c 7 -f >/tmp/kernelmsgs &

would that catch everything from after the kernel loads or is the only way to get the full kernel log by attaching to the serial console?

My version of klogd shows it's available options as:

# klogd -h
klogd: invalid option -- h
Usage: klogd [options]
-c n    Sets the default log level of console messages to n.
-n      Run as a foreground process.

Just realized I don't have a text editor. I think I can get around that. I don't know if the change would stick after a reboot, though. /var is mounted as a ramfs filesystem, so that would seem to suggest that /var is populated from the squashfs at boot time. I think any changes would have to be made inside the squashfs or they would be lost after a reboot.

Check through https://git.openwrt.org/?p=openwrt/openwrt.git;a=history;f=target/linux/ath79;hb=HEAD for a general idea what was needed to add device support for roughly similar devices.

I followed the Quick Image Building Guide and have successfully built the default generic profile for Atheros AR7XXX/AR9XXX which resulted in these images being built:

config.buildinfo
feeds.buildinfo
openwrt-ar71xx-generic-a60-squashfs-factory.bin
openwrt-ar71xx-generic-a60-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-alfa-ap96-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-all0258n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-all0305-kernel.bin
openwrt-ar71xx-generic-all0305-rootfs-squashfs.bin
openwrt-ar71xx-generic-all0305-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-all0315n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-antminer-s1-squashfs-factory.bin
openwrt-ar71xx-generic-antminer-s1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-antminer-s3-squashfs-factory.bin
openwrt-ar71xx-generic-antminer-s3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-antrouter-r1-squashfs-factory.bin
openwrt-ar71xx-generic-antrouter-r1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ap121-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ap121f-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ap531b0-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ap90q-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c25-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c25-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c58-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c58-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c59-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c59-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c59-v2-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c59-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c5-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c5-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c60-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c60-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c60-v2-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c60-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c7-v1-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c7-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c7-v2-il-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c7-v2-il-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c7-v2-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c7-v2-squashfs-factory-eu.bin
openwrt-ar71xx-generic-archer-c7-v2-squashfs-factory-us.bin
openwrt-ar71xx-generic-archer-c7-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c7-v4-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c7-v4-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-archer-c7-v5-squashfs-factory.bin
openwrt-ar71xx-generic-archer-c7-v5-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-arduino-yun-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-bsb-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-c-55-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cap324-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-carambola2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e316n-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e320n-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e355ac-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e355ac-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e375ac-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e380ac-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e380ac-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e385ac-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e520n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cf-e530n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe210-220-v1-squashfs-factory.bin
openwrt-ar71xx-generic-cpe210-220-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe210-v2-squashfs-factory.bin
openwrt-ar71xx-generic-cpe210-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe210-v3-squashfs-factory.bin
openwrt-ar71xx-generic-cpe210-v3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe505n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe510-520-v1-squashfs-factory.bin
openwrt-ar71xx-generic-cpe510-520-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe830-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cpe870-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cr3000-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-cr5000-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dap-1330-a1-squashfs-factory.img
openwrt-ar71xx-generic-dap-1330-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dap-2695-a1-squashfs-factory.img
openwrt-ar71xx-generic-dap-2695-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-default.manifest
openwrt-ar71xx-generic-dgl-5500-a1-squashfs-factory.bin
openwrt-ar71xx-generic-dgl-5500-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dhp-1565-a1-squashfs-factory.bin
openwrt-ar71xx-generic-dhp-1565-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-505-a1-squashfs-factory.bin
openwrt-ar71xx-generic-dir-505-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-825-b1-fat-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-825-b1-squashfs-backup-loader.bin
openwrt-ar71xx-generic-dir-825-b1-squashfs-factory.bin
openwrt-ar71xx-generic-dir-825-b1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-825-c1-squashfs-factory.bin
openwrt-ar71xx-generic-dir-825-c1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-835-a1-squashfs-factory.bin
openwrt-ar71xx-generic-dir-835-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dir-869-a1-squashfs-factory.bin
openwrt-ar71xx-generic-dir-869-a1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dlan-hotspot-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dlan-pro-1200-ac-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dlan-pro-500-wp-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dlrtdev01-fat-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dlrtdev01-squashfs-backup-loader.bin
openwrt-ar71xx-generic-dlrtdev01-squashfs-factory.bin
openwrt-ar71xx-generic-dlrtdev01-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dr342-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dr531-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-dragino2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e1700ac-v2-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e1700ac-v2-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e558-v2-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e558-v2-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e600gac-v2-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e600gac-v2-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e600g-v2-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e600g-v2-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e750a-v4-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e750a-v4-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e750g-v8-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-e750g-v8-8M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-eap300v2-squashfs-factory.bin
openwrt-ar71xx-generic-eap300v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-eap7660d-kernel.bin
openwrt-ar71xx-generic-eap7660d-rootfs-squashfs.bin
openwrt-ar71xx-generic-eap7660d-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-el-m150-squashfs-factory.bin
openwrt-ar71xx-generic-el-m150-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-el-mini-squashfs-factory.bin
openwrt-ar71xx-generic-el-mini-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ew-balin-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ew-dorin-router-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ew-dorin-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-fritz300e-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-fritz4020-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-fritz450e-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-ar150-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-ar300m-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-ar300-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-ar750-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-ar750s-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-domino-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-inet-6408A-v1-squashfs-factory.bin
openwrt-ar71xx-generic-gl-inet-6408A-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-inet-6416A-v1-squashfs-factory.bin
openwrt-ar71xx-generic-gl-inet-6416A-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-mifi-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-gl-usb150-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-hiwifi-hc6361-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-hornet-ub-x2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ja76pf2-kernel.bin
openwrt-ar71xx-generic-ja76pf2-rootfs-squashfs.bin
openwrt-ar71xx-generic-ja76pf2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ja76pf-kernel.bin
openwrt-ar71xx-generic-ja76pf-rootfs-squashfs.bin
openwrt-ar71xx-generic-ja76pf-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-jwap003-kernel.bin
openwrt-ar71xx-generic-jwap003-rootfs-squashfs.bin
openwrt-ar71xx-generic-jwap003-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-jwap230-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-koala-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-lan-turtle-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-lima-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mc-mac1200r-squashfs-factory.bin
openwrt-ar71xx-generic-mc-mac1200r-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-minibox-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-minibox-v3.2-squashfs-factory.bin
openwrt-ar71xx-generic-minibox-v3.2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mr12-squashfs-kernel.bin
openwrt-ar71xx-generic-mr12-squashfs-rootfs.bin
openwrt-ar71xx-generic-mr12-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mr16-squashfs-kernel.bin
openwrt-ar71xx-generic-mr16-squashfs-rootfs.bin
openwrt-ar71xx-generic-mr16-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mr1750-squashfs-factory.bin
openwrt-ar71xx-generic-mr1750-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mr600-squashfs-factory.bin
openwrt-ar71xx-generic-mr600-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mr900-squashfs-factory.bin
openwrt-ar71xx-generic-mr900-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mw4530r-v1-squashfs-factory.bin
openwrt-ar71xx-generic-mw4530r-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin
openwrt-ar71xx-generic-mynet-n600-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin
openwrt-ar71xx-generic-mynet-n750-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mynet-rext-squashfs-factory.bin
openwrt-ar71xx-generic-mynet-rext-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mzk-w04nu-squashfs-factory.bin
openwrt-ar71xx-generic-mzk-w04nu-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-mzk-w300nh-squashfs-factory.bin
openwrt-ar71xx-generic-mzk-w300nh-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-n5q-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-NBG6616-squashfs-factory.bin
openwrt-ar71xx-generic-NBG6616-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-om2p-squashfs-factory.bin
openwrt-ar71xx-generic-om2p-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-om5pac-squashfs-factory.bin
openwrt-ar71xx-generic-om5pac-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-om5p-squashfs-factory.bin
openwrt-ar71xx-generic-om5p-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-omy-g1-squashfs-factory.bin
openwrt-ar71xx-generic-omy-g1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-omy-x1-squashfs-factory.bin
openwrt-ar71xx-generic-omy-x1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-onion-omega-squashfs-factory.bin
openwrt-ar71xx-generic-onion-omega-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-oolite-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-oolite-v5.2-dev-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-oolite-v5.2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-packet-squirrel-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-pb42-kernel.bin
openwrt-ar71xx-generic-pb42-rootfs-squashfs.bin
openwrt-ar71xx-generic-pb42-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-pb44-kernel.bin
openwrt-ar71xx-generic-pb44-rootfs-squashfs.bin
openwrt-ar71xx-generic-pb44-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-pqi-air-pen-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-qihoo-c301-squashfs-factory.bin
openwrt-ar71xx-generic-qihoo-c301-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-r36a-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-r602n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-re355-v1-squashfs-factory.bin
openwrt-ar71xx-generic-re355-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-re450-v1-squashfs-factory.bin
openwrt-ar71xx-generic-re450-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-rme-eg200-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-root.squashfs
openwrt-ar71xx-generic-rut900-squashfs-factory.bin
openwrt-ar71xx-generic-rut900-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-rw2458n-squashfs-factory.bin
openwrt-ar71xx-generic-rw2458n-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-sc1750-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-sc300m-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-sc450-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-smart-300-squashfs-factory.bin
openwrt-ar71xx-generic-smart-300-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-som9331-squashfs-factory.bin
openwrt-ar71xx-generic-som9331-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-sr3200-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-t830-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tellstick-znet-lite-squashfs-factory.bin
openwrt-ar71xx-generic-tellstick-znet-lite-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tew-673gru-fat-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tew-673gru-squashfs-backup-loader.bin
openwrt-ar71xx-generic-tew-673gru-squashfs-factory.bin
openwrt-ar71xx-generic-tew-673gru-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tew-732br-squashfs-factory.bin
openwrt-ar71xx-generic-tew-732br-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tew-823dru-squashfs-factory.bin
openwrt-ar71xx-generic-tew-823dru-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-mr6400-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-mr6400-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr4300-v1-il-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr4300-v1-il-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr4900-v2-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr4900-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr6500-v2-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr6500-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wdr7500-v3-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wdr7500-v3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wpa8630-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wpa8630-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr1043nd-v3-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr1043nd-v3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr1043nd-v4-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr1043n-v5-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr1043n-v5-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr710n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr710n-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr710n-v2.1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr710n-v2.1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr810n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr810n-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr810n-v2-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr810n-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr842n-v3-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr842n-v3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr902ac-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr902ac-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr942n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr942n-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ts-d084-squashfs-factory.bin
openwrt-ar71xx-generic-ts-d084-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tube2h-16M-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubdev01-squashfs-factory.bin
openwrt-ar71xx-generic-ubdev01-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-air-gateway-pro-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-air-gateway-pro-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-air-gateway-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-air-gateway-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-airrouter-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-airrouter-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-bullet-m-xw-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-bullet-m-xw-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-lbe-m5-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-lbe-m5-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-ls-sr71-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-ls-sr71-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-nano-m-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-rocket-m-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-rocket-m-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-rocket-m-ti-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-rocket-m-ti-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-rocket-m-xw-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-rocket-m-xw-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-rspro-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-rspro-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-rs-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-rs-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-uap-pro-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-uap-pro-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifiac-mesh-pro-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifiac-mesh-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifiac-pro-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifi-outdoor-plus-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-unifi-outdoor-plus-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifi-outdoor-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-unifi-outdoor-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-ubnt-unifi-squashfs-factory.bin
openwrt-ar71xx-generic-ubnt-unifi-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-uImage-lzma.bin
openwrt-ar71xx-generic-vmlinux.bin
openwrt-ar71xx-generic-vmlinux.elf
openwrt-ar71xx-generic-vmlinux.lzma
openwrt-ar71xx-generic-vmlinux-lzma.elf
openwrt-ar71xx-generic-wam250-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wbs210-v1-squashfs-factory.bin
openwrt-ar71xx-generic-wbs210-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wbs510-v1-squashfs-factory.bin
openwrt-ar71xx-generic-wbs510-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-weio-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wifi-pineapple-nano-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wlr8100-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndap360-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndr3700-squashfs-factory.img
openwrt-ar71xx-generic-wndr3700-squashfs-factory-NA.img
openwrt-ar71xx-generic-wndr3700-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndr3700v2-squashfs-factory.img
openwrt-ar71xx-generic-wndr3700v2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndr3800ch-squashfs-factory.img
openwrt-ar71xx-generic-wndr3800ch-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndr3800-squashfs-factory.img
openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndrmac-squashfs-factory.img
openwrt-ar71xx-generic-wndrmac-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wndrmacv2-squashfs-factory.img
openwrt-ar71xx-generic-wndrmacv2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wnr2200-squashfs-factory.img
openwrt-ar71xx-generic-wnr2200-squashfs-factory-NA.img
openwrt-ar71xx-generic-wnr2200-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wp543-squashfs-16M-factory.img
openwrt-ar71xx-generic-wp543-squashfs-16M-sysupgrade.bin
openwrt-ar71xx-generic-wp543-squashfs-8M-factory.img
openwrt-ar71xx-generic-wp543-squashfs-8M-sysupgrade.bin
openwrt-ar71xx-generic-wpe72-squashfs-16M-factory.img
openwrt-ar71xx-generic-wpe72-squashfs-16M-sysupgrade.bin
openwrt-ar71xx-generic-wpe72-squashfs-8M-factory.img
openwrt-ar71xx-generic-wpe72-squashfs-8M-sysupgrade.bin
openwrt-ar71xx-generic-wpj342-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wpj344-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wpj531-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wpj558-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wpj563-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wrt160nl-squashfs-factory.bin
openwrt-ar71xx-generic-wrt160nl-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wrtnode2q-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-450hp2-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-450hp2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-450hp2-squashfs-tftp.bin
openwrt-ar71xx-generic-wzr-600dhp-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-600dhp-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-600dhp-squashfs-tftp.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin
openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-tftp.bin
openwrt-ar71xx-generic-wzr-hp-g300nh-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-g300nh-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-g300nh-squashfs-tftp.bin
openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-factory.bin
openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-tftp.bin
openwrt-ar71xx-generic-xd3200-squashfs-sysupgrade.bin
packages
sha256sums
u-boot-nbg460n_550n_550nh
version.buildinfo

I read something earlier that said it was possible to test an image on a device without overwriting what's already on it by uploading it directly to the bootloader? I'd like to try to send the generic image to this device and see what happens.

Right now I'm looking for information on how to access the serial console on this device. The white paper says it has a UART and I've found some threads on Google with people connecting to the serial console on devices that have this processor in it, but none of them really detail what was done to connect to the UART. Am I correct in assuming that accessing a UART basically involves attaching a header to the pins on the UART which would create a serial connection to the device that could be accessed using terminal software like minicom on Linux?

There are no generic images for embedded devices like routers<fullstop />

Yes, most bootloaders allow RAM-booting initramfs images via tftpboot.
Yes, given that RAM-booting circumvents parts of the device stack (flash, etc.) that would otherwise be needed to boot up, its DTS doesn't need to be as perfect as it would have to be for a flashed firmware image, but it's still far from generic.
Yes, with RAM-booted initramfs images it's harder to break your device while trying around, but not impossible either.
No, there is still no way to go forward with just some other image.

I actually just set up tftpboot a few days ago to install Linux on an old Dell Optiplex that doesn't support booting from USB.

I was specifically looking at these two files:

openwrt-ar71xx-generic-vmlinux.bin
openwrt-ar71xx-generic-root.squashfs

Since they don't have a device at the end of their filenames, I thought they would be the most "generic" ones. vmlinuz is the kernel and root is initrd, right? So if I sent the kernel and initrd to the bootloader with tftp it would attempt to boot wouldn't it?

I mean, at least the architecture would be correct. Of course it probably wouldn't get me to a login prompt because there may be driver issues and the offsets for the flash memory are probably wrong, but wouldn't that at least let me see if the kernel and initrd start to boot into Linux?

Yes.

Yes, but it would panic before even looking at the rootfs, due to the missing DTS.

The kernel is indeed 'generic' to all devices of a given target, but it's useless without the bits and pieces appended to it (DTS), which make it very specific to your device. The situation is similar with the rootfs, yes the files are split out, but they're still post-processed when creating the device specific images by appending the required DEVICE_PACKAGES.

Routers don't have a BIOS/ UEFI, neither do they offer ACPI or SMM procedures, which would allow a generic boot support. You must provide a very specific image to them (if you had more space and better abstraction layers in place, like the ARMv8 server specifications mandate, you could indeed run a generic kernel/ rootfs - if their bootloaders would inject the very device specific aspects (the DTS) for you, acting as kind of a BIOS/ UEFI replacement, but your off-the-mill routers don't offer this).

Thanks for the clarification.

Are the DTS files used by OpenWrt written in the same format as described in the elinux.org site?
(i.e. https://elinux.org/Device_Tree_Usage)

For example:

/dts-v1/;

/ {
    compatible = "acme,coyotes-revenge";

    cpus {
        cpu@0 {
            compatible = "arm,cortex-a9";
        };
        cpu@1 {
            compatible = "arm,cortex-a9";
        };
    };

    serial@101F0000 {
        compatible = "arm,pl011";
    };

    serial@101F2000 {
        compatible = "arm,pl011";
    };

    gpio@101F3000 {
        compatible = "arm,pl061";
    };

    interrupt-controller@10140000 {
        compatible = "arm,pl190";
    };

    spi@10115000 {
        compatible = "arm,pl022";
    };

    external-bus {
        ethernet@0,0 {
            compatible = "smc,smc91c111";
        };

        i2c@1,0 {
            compatible = "acme,a1234-i2c-bus";
            rtc@58 {
                compatible = "maxim,ds1338";
            };
        };

        flash@2,0 {
            compatible = "samsung,k8f1315ebm", "cfi-flash";
        };
    };
};

DTS and its syntax in general are specified by the upstream kernel. While they're supposed to be descriptions of the underlying hardware, and therefore expected to be immutable (and ideally provided by the OEM bootloader) and OS agnostic (e.g. the same DTS being used for Linux (both OEM and mainline/ OpenWrt) and FreeBSD), that is far from actual practice at the moment, especially for targets and drivers that aren't fully merged mainline yet or for which drivers are still being in the process of being developed.

In practice DTS files are likely to be adapted for your running kernel version, for many of the devices OpenWrt deals with also depending on the state (the version-) of the out-of-tree drivers patched into it, until they've matured enough to become semi-static.

While your hardware is slightly dated, ath79 as a target is still relatively new - as it was using a legacy platform definition (mach files, hardcoding device specifics into the kernel itself) before. As a consequence lots of its drivers are still in a state of flux and by a large number far from being mainline yet. This means the DTS files/ API syntax between hardware and how drivers interpret it in many cases isn't set in stone, yet. If you have a DTS provided by the OEM manufacturer or some non-OpenWrt source for your specific device that might provide a starting point, but in all likelyness it will require further adaptions to become actually usable on OpenWrt.

openwrt-ar71xx-generic-mr12-initramfs-uImage.bin ( uart tftp/ramboot it see what happens ;) )

Hmm. I think D-Link released source code for this device. At least that's what I read on some Russian web site** where I found that backdoor that drops you into a root shell. I'll see if I can track down the source they released and see what's in it.

** https://translate.googleusercontent.com/translate_c?depth=1&hl=en&nv=1&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=http://rupor.sampo.ru/topic/84969&xid=17259,15700021,15700186,15700191,15700256,15700259,15700262,15700265,15700271&usg=ALkJrhib8ljaLUyxjO0VNN6xeqbRazKswg#

Edit: The source code that D-Link released for this device: https://tsd.dlink.com.tw/downloads2008detail.asp

Edit #2: That's weird. They don't have the source code for my hardware revision. Mine is revision A, but all the source code on their site is for revision B1.

mr12 appears to have the same WiFi chip in it as this device. Do you think my device would boot that image?

Same CPU
Same ethernet chip
Same WiFi chip
Same amount of memory (but different mfg)
Same amount of flash (but different mfg)

I guess if it didn't boot it would still be a good template to start from for the kernel config at least.

I found another download link for the GPL'd source code that appears to be for my hardware revision:
https://sourceforge.net/projects/officialdlinkfirmware/files/DAP-2360/dap2360_GPL_v100_rc016.tar.gz

Looking through the archive, it appears the name of this devices board is "WAPN08" and it's got the Makefiles for the kernel and a lot of other apps that appear to go into the official firmware. There's a directory named "buildroot" and supposedly you can build the official firmware with the contents of this archive.

There's also a Makefile located at "boards/wapn08/apps/Makefile" that had this written at the top of the file:

# Makefile for WAP-ND03 rev C board dependent programs

which would seem to suggest that the board is WAP-ND03, but when I looked that board up it has different WiFi and ethernet chips on it, so I'm thinking maybe that Makefile was used for that board originally and then later reused for this board as well but they didn't change the header of the Makefile. I do think the actual board is "wapn08" because that's what WikiDevi says is printed on the circuit board.