I've had two people ask me about this device in the last few days so I thought I'd post a followup describing what I did and found. As a reminder, this is an gl.inet GL-MV1000[0] (aka Brume) device.
I had previously installed OpenWRT 21.02.something onto this device's internal eMMC card, but I suspect the process will work with other OpenWRT versions or the stock firmware (which is itself an OpenWRT derivative). 1) Grab a an OpenBSD miniroot71.img for 7.1 or -current and write it to an sdcard ("dd if=miniroot71.img of=/dev/sdXc bs=1k"). 2) Grab the OEM firmware[1], extract armada-gl-mv1000-emmc.dtb from it (or grab it from [2]) and copy it to the root of the first partition of the sdcard ("mount /dev/sdXi /mnt; cp armada-gl-mv1000-emmc.dtb /mnt; umount /mnt"). Using the .dtb file that ships with OpenWRT will cause OpenBSD to report "sdhc0: base clock frequency unknown" errors and not find the sdcard. If your device still has the stock firmware you can probably skip this step and change the first "load mmc 1:1" in the bootcmd below to "load mmc 0:1" to load the vendor-supplied .dtb from the internal eMMC device. 3) Connect a serial console and ethernet to the Brume. Power it on and type "gl" into the console to interrupt the boot sequence. At the "Marvel>>" prompt, change the bootcmd env variable and save it: Marvel>> setenv bootcmd "load mmc 1:1 ${fdt_addr} armada-gl-mv1000-emmc.dtb; load mmc 1:1 ${kernel_addr} efi/boot/bootaa64.efi; bootefi ${kernel_addr} ${fdt_addr}" Marvel>> saveenv This wil cause the Brume to always boot the OpenBSD bootloader from the sdcard. 4) Boot from the sdcard by typing "boot". At this point the OpenBSD bsd.rd should boot from the sdcard and you can perform a normal network installation back to the sdcard (which should be sd0 in the installer, but will be sd1 when the system reboots). Leave the "i" partition on the sdcard and all of the internal eMMC unchanged. If you make a mistake after you start writing to the sdcard you'll need to to start again at step 1. The good: - seems stable and survived a kernel build just fine - network (mvneta0) and sdcard seem to work The bad: - as previously mentioned the internal ethernet switch isn't supported - USB interface doesn't seem to work - it won't reboot cleanly (shuts down OK but doesn't reset). [0] https://www.gl-inet.com/products/gl-mv1000/ [1] https://docs.gl-inet.com/en/3/release_notes/gl-mv1000/ [2] https://www.dtucker.net/brume/armada-gl-mv1000-emmc.dtb OpenBSD 7.1-current (GENERIC.MP) #0: Thu May 12 23:48:16 AEST 2022 dtuc...@obsd-brume.dtucker.net:/usr/src/sys/arch/arm64/compile/GENERIC.MP real mem = 1046306816 (997MB) avail mem = 981606400 (936MB) random: good seed from bootblocks mainbus0 at root: GL.inet GL-MV1000 psci0 at mainbus0: PSCI 1.0 cpu0 at mainbus0 mpidr 0: ARM Cortex-A53 r0p4 cpu0: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache cpu0: 256KB 64b/line 16-way L2 cache cpu0: CRC32,SHA2,SHA1,AES+PMULL,ASID16 cpu1 at mainbus0 mpidr 1: ARM Cortex-A53 r0p4 cpu1: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache cpu1: 256KB 64b/line 16-way L2 cache cpu1: CRC32,SHA2,SHA1,AES+PMULL,ASID16 efi0 at mainbus0: UEFI 2.0.5 efi0: Das U-boot rev 0x0 apm0 at mainbus0 agtimer0 at mainbus0: 12500 kHz "pmu" at mainbus0 not configured simplebus0 at mainbus0: "soc" simplebus1 at simplebus0: "internal-regs" mvclock0 at simplebus1 mvclock1 at simplebus1 mvclock2 at simplebus1 mvpinctrl0 at simplebus1 syscon0 at simplebus1: "syscon" mvpinctrl1 at simplebus1 agintc0 at simplebus1 shift 4:3 nirq 224 nredist 2 ipi: 0, 1: "interrupt-controller" mvspi0 at simplebus1 mvuart0 at simplebus1 mvneta0 at simplebus1 mvneta0: Ethernet address fe:e1:ba:d0:19:1a mvmdio0 at simplebus1: "mdio" mvsw0 at mvmdio0 phy 1: 88E6141 rev 0 xhci0 at simplebus1, xHCI 1.0 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "Generic xHCI root hub" rev 3.00/1.00 addr 1 "usb" at simplebus1 not configured "u3d" at simplebus1 not configured "udc" at simplebus1 not configured "xor" at simplebus1 not configured sdhc0 at simplebus1 sdhc0: SDHC 3.0, 400 MHz base clock sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma sdhc1 at simplebus1 sdhc1: SDHC 3.0, 400 MHz base clock sdmmc1 at sdhc1: 8-bit, sd high-speed, mmc high-speed, ddr52, dma "regulator" at mainbus0 not configured gpioleds0 at mainbus0: "gl-mv1000:green:vpn", "gl-mv1000:green:wifi", "gl-mv1000:green:power" scsibus0 at sdmmc1: 2 targets, initiator 0 sd0 at scsibus0 targ 1 lun 0: <Samsung, 8GTF4R, 0000> removable sd0: 7456MB, 512 bytes/sector, 15269888 sectors scsibus1 at sdmmc0: 2 targets, initiator 0 sd1 at scsibus1 targ 1 lun 0: <SD/MMC, SN64G, 0085> removable sd1: 60906MB, 512 bytes/sector, 124735488 sectors vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd1a (c7927b9eac7d3edb.a) swap on sd1b dump on sd1b WARNING: CHECK AND RESET THE DATE! -- Darren Tucker (dtucker at dtucker.net) GPG key 11EAA6FA / A86E 3E07 5B19 5880 E860 37F4 9357 ECEF 11EA A6FA (new) Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.