Balena on Digi ConnectCore

Hi All,

Anyone got BalenaOS running on the Digi ConnectCore board:

Thank you,
PG

Hello Paul, first of all welcome to the balena forums!

Actually the ConnectCore 6UL is not supported. It is also using NAND flash and not eMMC so it is not easy to port to balena. A balena engineer has been working with the Digi 1GB variant here

However it’s not complete and still needs some changes to meta-balena properly. Are you Digi customer?

Let us know if you can continue this migration.

Hi mpous, thank you for the answer.

I can continue the migration, however, I am not familar with Balena yet, are you able the explain the difficulties in porting Balena to a device with NAND flash (It is simple a filesystem issue)?

Paul

and yes, sorry, we are a Digi customer.

Hi Paul, BalenaOS sets some constraints on the devices it supports. Memory and storage space is one, so you will probably need to use the higher end variants of the ConnectCore 6UL. Also, all the device types we support use block devices as storage and ext4 as filesystem. The ConnectCore 6UL uses raw flash so the block device specific utilities used in building BalenaOS would need to be conditionally replaced, and also the filesystem will need to be changed to UBIFS. The installation process would also need to be rethought, as BalenaOS typically installs from a flasher image that boots from a uSD. The ConnectCore6UL cannot boot from a bootloader in a uSD, so that’s an extra hurdle.
Some of these complications I started to work around on the layer referred to above, but unfortunately it hasn’t been touched in a while and I also did not get to a state were I considered upstreaming to BalenaOS.
I was curious whether you were a Digi customer in case we could get some type of collaborative effort going on to add support for Digi’s SOMs and SBC (allegedly the block devices based ones would be easier). Do you have a FAE or account manager I could contact to see if there is a way forward? I used to work for Digi and I upstreamed the ConnectCore6UL support to the mainline kernel so I might be able to get something going.

1 Like

Thanks Alex, good information.

If we used the eMMC on the ConnectCore (it is fitted, but we need to pinmux away the uSD) we wouldn’t need UBIFS anymore because eMMC is already a managed NAND type? That would make the process simplier. However, we would then lose the uSD, but it sounds like we need to come up with a different way to install BalenaOS anyway as the uSD cannot boot.

Is it possible to get the Balena system up and running on NFS initially using your balena-digi layer?

Let me get you the FAE, we are based in Australia, but only a small startup customer of Digi at the moment.

Thank you,
Paul

Hi @alexgg,

I’m trying to push forward on this development to evaluate the hardware. If the hardware is successful at running Balena, then we can go ahead and approve the ConnectCore for a custom hardware development of which I could contribute.

My plan was to run Balena on the internal eMMC or via NFS to at least get a proof on concept going so that management will approve the next phase. Will BalenaOS run over a NFS mount to the host like a normal Yocto rootfs image?

I have successfully built a BalenaOS image using your meta-balena-digi layer. I had to go back to a warrior version of ConnectCore yocto, but it all seems fine.

My understanding is that the default files produced are for the NAND:
-rw-r–r-- 1 paulg paulg 201326592 Nov 18 17:57 resin-data.img
-rw-r–r-- 1 paulg paulg 10412032 Nov 18 18:14 resin-image-ccimx6ulsbcpro-20201118075446.boot.ubifs
-rw-r–r-- 1 paulg paulg 128626688 Nov 18 18:14 resin-image-ccimx6ulsbcpro-20201118075446.rootfs.hostapp-ext4

But I didn’t get the hostapp-ubifs file mentioned in the readme.md (only the ext4 mentioned above):
update resin-rootA tftp resin-image-.hostapp-ubifs

Are you able to give me a little push so that I can produce an image for NFS and/or eMMC?

Thank you,
Paul

Hi Paul, booting from the network (TFTP/NFS) is not currently supported in BalenaOS.

As per the eMMC, the ConnectCore 6UL module can only boot from USDHC1. On the ConnectCore 6UL SBC pro, the eMMC is connected to USDHC2 so you cannot boot from it either.

The only solution for booting from eMMC would be designing a custom board with a non-wireless variant and wiring the eMMC to USDHC1.

As I see it the only option is to look at booting the SBC Pro is NAND using UBIFS. I need to go back and update the support to get a clearer idea of the path forward to integrate this into BalenaOS, but depending on your timeline it may not be what you expect.

Thank you for the update @alexgg .

Thanks for the tip on the eMMC, let me check with the designer about the eMMC and how it will be attached. This is what we are hoping to do on the board. For now, we could still boot from U-Boot in NAND and then manually boot from eMMC.

Because I had no other option right now (as you said), I hacked it up and got working using NFS by modifying some of the mount scripts and converting docker to use vfs, instead of overlay. Performance is terrible, but at least the containers are running.

Now, I just need to get my device connected to BalenaCloud. Currently the VPN connection is failing with AUTH_FAILED.

I’ll keep you updated.