Custom Developer Studio Repository / Docker Image


#1

I’m currently running the latest Legato version (18.04) with the mangOH 18.04 patches on my device. I’m curious if there is a way to point my Linux Developer Studio and/or a Windows Developer Studio instance to a custom legato application framework folder or possibly a modified/updated docker container (Windows). I really enjoy the UI and debugging features of Developer Studio, but I find myself needing to go outside of it when I need to run a more up-to-date version of the Legato application framework.

@asyal


#2

@daav can you look into this?


#3

Hi @drewwestrick

You can refer to this post in order to get DS working with a customized Legato version:

This is a Linux only solution at the moment.
Concerning Windows, it’s not that easy but doable…
You’ll need to build your custom Legato and build a new Docker image with it.
Several options:

  • build in Docker itself… but please take care that Legato can’t build on NTFS file system (repo doesn’t support it), so this means that you have to do the repo init/sync in the Docker context, and potentially modify your files in it (using vim or nano)
  • take your custom Legato build made on a Linux host, and modify an existing Docker image by provisioning your legato build in /legato (location where the pre-built framework lies in our Docker images)

Once you’ll have a custom Docker image with your stuff inside, you’ll have to get it provisioned on the Windows host.
If you used the first method, that should be OK.
If you used the second one, you’ll have to docker save a tarball image on your Linux host, and docker load it on your Windows host.

Then the final step will be to get it eaten by DS.
The easiest way would be to tweak the package.xmi file that is lying in a “Legato Application Framework” package folder, in order to modify the reference to the docker image by your custom one.

All these steps would help to make the build working.
Then to make the debug working, you’ll have to copy as well the .so files (from the legato/build/<your module> directory) on Windows as well, so that the Windows native gdb we’re using can find them.

And… that’s it.
FYI, we’re working on a new solution to deliver Legato pre-built packages, with harmonized user experience between command line/DS/Linux/Windows.
With this, that kind of scenario will become really easier to address :wink:


#4

@daav

Thanks for the thorough explanation and post. I will give your suggestions a shot and let you know if I run into any problems.