Balena-CLI join fails with custom device type

I’ve successfully built a new balena device image for the Dart MX8M-Mini using this as a starting point: https://github.com/balena-os/balena-variscite-mx8

The issue is my new device is an imx8mm-var-dart (note the extra m!) which is expected since it’s different than the older imx8m. However, if I try to do a balena join on the device, it complains this is not a valid device type.

See:
[debug] original argv0=“balena” argv=[/home/aaron/balena-cli/balena,/snapshot/versioned-source/bin/balena,join,192.168.86.32] length=4
[Debug] Determining device…
[Debug] Executing [/usr/bin/ssh,-n,-t,-p,22222,-o,LogLevel=ERROR,-o,StrictHostKeyChecking=no,-o,UserKnownHostsFile=/dev/null,root@192.168.86.32,os-config --version]
[Debug] Using device: 192.168.86.32
[Debug] Determining device type…
[Debug] Executing [/usr/bin/ssh,-n,-t,-p,22222,-o,LogLevel=ERROR,-o,StrictHostKeyChecking=no,-o,UserKnownHostsFile=/dev/null,root@192.168.86.32,cat /etc/os-release]
[Debug] Device type: imx8mm-var-dart
[Debug] Determining application…
“imx8mm-var-dart” is not a valid device type
Error: “imx8mm-var-dart” is not a valid device type
at getOrSelectApplication (/snapshot/versioned-source/build/utils/promote.js:145:15)

Any ideas?

Ok I think I’ve figured it out. In case anyone else is curious (and hopefully someone else can verify)

  • Created a “generic ARM64” target (i’m targeting aarch64)
  • Downloaded the appname.config.json
  • Renamed that to config.json, scp’d it to the host and put int /mnt/boot
  • Reboot

Seems to work, albeit clunky. It looks like you could either reimage this SD or do something about injecting it into the generated img, which I’d love details on how to do.

Hi,
Glad you’ve managed to get the device connected.
Using the generic device is currently the only way to connect a custom device to balenaCloud. But we are working on improving this experience.

The config.json in my /mnt/boot has a valid name, but the balena join still reports the new (“not a valid”) device type. Is there another place to fix it?