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.

Reply via email to