Long story short, I attempted to install OpenWrt on a Datto DNA-VZ5. On paper, it looked doable. The device is a rebranded Axiomtek NA361 running on an Intel Atom C2758 processor with 8 GB of RAM and a 32 GB CF card. There are two wired NICs, a four-port Intel i354 (ports marked 3-6 on the exterior of the device) and a two-port Intel i210 (ports marked 1-2 on the exterior). The wireless NIC is Qualcomm Atheros QCA986x/988x (basically, a garden variety ath10k
device). A cellular modem is present (I believe it's a Sequans VZ20M) and can be identified by lsusb
, but not by lspci
; the U.S. version pictured below is locked onto Verizon, the Canadian version, onto Rogers.
Here is a shot of the internals with the top removed:
Like I said, installing OpenWrt looks doable on paper... In reality, there's some hardware-level skullduggery going on, which I was able to overcome, but only partially.
For starters, the BIOS is locked. Never mind; Google knows that the factory password is R@str
(take that, Datto). Initially, I could not change boot settings at all. After resetting the BIOS (done by repositioning the JP10 jumper located next to the CMOS battery), I was able to boot the device from a USB stick. OpenWrt recognized both wired NICs, but it appears to have detected the i354 first, so it has designated port 3 as eth0
and port 4 as eth1
.
For the time being, I have removed the CF card with the stock firmware from the device and used a blank CF card for experimentation.
While running the device from a USB stick, I am able to download OpenWrt and install it onto the CF card, but when I try to boot the device from the CF card, the device does not recognize it as a bootable device and gives me a "no boot media" error:
Reboot and Select proper Boot device
or Insert Boot Media in selected Boot device and press a key
Here's what lsblk
tells me about the stock CF card:
root@OpenWrt:/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 29.8G 0 disk
├─sda1 8:1 0 20M 0 part
├─sda2 8:2 0 10M 0 part
├─sda3 8:3 0 1G 0 part
├─sda4 8:4 0 1G 0 part
├─sda5 8:5 0 500M 0 part
└─sda6 8:6 0 27.1G 0 part
Here's the info from fdisk
:
root@OpenWrt:/# fdisk -l
Disk /dev/sda: 29.82 GiB, 32019316736 bytes, 62537728 sectors
Disk model: TS32GCF170
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 65292FF2-04D4-4113-B23B-4C3B13E8D4D1
Device Start End Sectors Size Type
/dev/sda1 2048 43007 40960 20M EFI System
/dev/sda2 43008 63487 20480 10M BIOS boot
/dev/sda3 63488 2160639 2097152 1G Linux swap
/dev/sda4 2160640 4257791 2097152 1G Linux swap
/dev/sda5 4257792 5281791 1024000 500M Linux swap
/dev/sda6 5281792 62090399 56808608 27.1G Linux swap
Here's the layout of the stock CF card generated by gParted:
systemA and systemB partitions appear to contain two copies of stock firmware, but no bootloader (I am guessing it's locked away in the EFI partition, which is marked as boot).
Since the stock firmware is installed on a GPT-type disk, I am assuming that OpenWrt needs to be installed from a UEFI image, so I've tried both generic-squashfs-combined-efi.img.gz and generic-ext4-combined-efi.img.gz images, both to no avail (come to think of it, I've tried the generic-squashfs-combined.img.gz as well). No matter; I still get the "no boot media" error described above.
So... what haven't I tried yet, other than installing OpenWrt onto the stock CF card?