[SOLVED] Datto DNA-VZ5: an exciting misadventure

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? :smile:

2 Likes

The BIOS may need to be configured to boot the CF card, since you removed the battery it is at defaults.

If you mean setting the boot device in BIOS, did that. The stock CF card boots as expected, the experimental ones (I've tried two so far) do not. If you mean something else, may I ask you to elaborate?

It's not that then. I see the EFI on the stock card is FAT16, I think OpenWrt uses FAT32. Were you using an EFI image to boot from USB, or legacy?

The BIOS is set to boot in legacy mode, so I made a legacy-mode USB stick. Note that I tried booting legacy SquashFS from the CF card to no avail. Actually, if you give me a moment, I'll flash a legacy ext4 CF card, try that, and post the result (this is the only permutatoin I have not tried yet)...

OK, this is bizarre... First two CF cards I have experimented with were low-capacity (128 MB and 256 MB). So on a whim, I decided to flash a legacy ext4 image onto a 1 GB card. Somehow, this worked; I'm running OpenWrt from it now...

[A few days later]

It appears that the real problem was not the low capacity of the two CF cards, but that they both were faulty. I reformatted and reflashed both of them and tried using them in other devices, but OpenWrt couldn't complete the boot sequence from either of them. The boot process would start, then there would be an error reading from the CF card, multiple retries, and eventually, exit to the bootloader command prompt...

Out of curiosity, how much did you pay for it ?

USD 40. Got it from an electronics recycler in my area... The unit came with a power supply and a set of Wi-Fi antennas but was missing cellular antennas. But since I didn't expect to get cellular working anyway, the latter wasn't important...

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.