Hi there! Trying to figure out how to flash to the M4 - I saw balena-variscite-mx8/mx8mm-nrt-Enable-M4-run-from-TCM.patch at master · balena-os/balena-variscite-mx8 · GitHub which sounds promising, but can’t quite figure out how all the pieces fit together?
Thanks!
Sorry, I should provide a bit of background: we need to control an RGB LED with PWM and the onboard audio codec on the MX8M-MINI, as well as (hopefully) flash some code the M4 (though it’s possible we could get away with a custom kernel module instead).
I love the promise of Balena cloud but am trying to figure out if it can do what we need it to, since from Support native hostapp updates · Issue #102 · balena-io/open-balena · GitHub and the cloud docs it appears you can’t push custom OS versions? And it doesn’t look like the mx8m-mini Balena layer supports device tree overlays yet. And there doesn’t seem to be a way to load dynamic device tree overlays from userspace, so I can’t do it from a container…
If I’m missing some obvious solution please let me know…
Thanks much!
Hi @atlantisnova! Welcome to the Forums! Sorry it’s taken a while for us to look at your question.
So let me repeat back what I think is the central issue: You have some specialized hardware that you need to support. You could do it via a custom kernel module. The question really is, how do get that module loaded, right?
I think you may be mixing in questions about OpenBalena versus Balena Cloud. Open Balena is a simplified FOSS version of the Balena stack. Balena Cloud has a greater set of capabilities than OpenBalena. Just be aware of the difference.
You can certainly build customer versions of Balena OS. Here is some documentation in the meantime: balenaOS - Docs The issue at the moment with connecting to Balena Cloud is that the cloud needs to know what device type it’s working with. So you would have to spoof it by using the device type of an existing device. If you were basically just extending the capabilities of an existing device, this would not really be so bad. But you wouldn’t obviously be able to do online updates of the OS.
However, if it’s a matter of loading a kernel module, there is probably a much easier way. Here is a repo that shows how to build and load a custom kernel module on device: GitHub - balena-os/kernel-module-build: Example project for building an OOT kernel module in balena Is that enough information for you to proceed?
Also, just as an FYI: There are some paid plans that will give you priority support and I don’t think are very expensive. They are designed specifically for prototyping situations like what you apparently have here.