Command line SDK install

Hello,

Is it possible to perform a command line install of the MicroEJ SDK?
I am trying to install MicroEJ-SDK-Installer-Linux64-19.05.sh on one of my headless build nodes and get the pollowing output:

$ java -jar install.jar
Oct 22, 2020 12:06:50 PM INFO: Logging initialized at level ‘INFO’
Oct 22, 2020 12:06:50 PM INFO: Commandline arguments:
Oct 22, 2020 12:06:51 PM INFO: Detected platform: ubuntu_linux,version=4.4.0-112-generic,arch=x64,symbolicName=null,javaVersion=1.8.0_265
Oct 22, 2020 12:06:51 PM WARNING: No console implementation of panel: com.is2t.izpack.panels.java.CheckVirtualMachinePanel
Oct 22, 2020 12:06:51 PM WARNING: No console implementation of panel: com.is2t.izpack.panels.java.JREPathPanel
Oct 22, 2020 12:06:51 PM WARNING: No console implementation of panel: com.is2t.izpack.panels.licence.UTF8LicencePanel
Console installation is not supported by this installer
[ Console installation FAILED! ]

Best Regards,
–Andy

Hi Andy,
Unfortunately you cannot install the MicroEJ SDK on a headless machine.
May I ask want do you want to do with a MicroEJ SDK on your headless machine.
Would you use it to develop some projects ?
or simply to build some projects ?

Hello,

This would be purely to build projects (both the VEE kernel and applications based on existing platform architectures) from source control for our different products.

Developers would be developing using the GUI version of MicroEJ SDK on Linux but would likely leverage some of the same scripted builds to allow for integration into the larger firmware project.

Hi Andy,
Thanks for your response, we have some documentation of how you can build project using the command line, but this documentation is windows oriented,
I’ll update it in order for working on Gnu/Linux and I’ll send it to you.
Regards

Hi Andy,

You’ll find here a detailed explanation of how to setup a local environment for building MicroEJ modules from the command line.

And also here you’ll find here how to septup Jenkins + Artifactory for automating MicroEJ Module build.

https://docs.microej.com/en/latest/Tutorials/tutorialSetupBuildUsingJenkinsAndArtifactory.html?highlight=jenkins

At MicroEJ you use Jenkins + Artifactory for our CI.

But on your side you can use other tools if you want.

You can use this 2 ressoures as starting point to setup your CI.

Please do not hesitate to contact us if you have any further questions.

Regards

Hi,

I’m still having a few issues getting the command line build of a standalone app project (Hello world from Java) to work.

I am attempting a personal build with the following command:
swgroup@fwdev2-astamp:~/ES2/mej_temp/command_line_build_tools$ MICROEJ_BUILD_JDK_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ./build_module_local.sh ~/.microej/workspaces/MicroEJ-SDK-Dist-20.07/krnl386/ personal test2.properties

I have created test2.properties to contain the path to the built platform directory:
platform-loader.target.platform.dir=/home/swgroup/.microej/workspaces/MicroEJ-SDK-Dist-20.07/imx6ull-minimal-GNUv54_cortexa7_QNXv7-1.0.0

The build ends with the following messages:


BUILD FAILED
/home/swgroup/ES2/mej_temp/command_line_build_tools/easyant/build-module.ant:39: The following error occurred while executing this line:
/home/swgroup/ES2/mej_temp/command_line_build_tools/easyant/easyant-configuration.ant:224: The following error occurred while executing this line:
/home/swgroup/.ivy2/cache/com.is2t.easyant.plugins/platform-launcher/ants/platform-launcher-3.7.1.ant:248: Source resource does not exist: /home/swgroup/.microej/workspaces/MicroEJ-SDK-Dist-20.07/krnl386/target~/player/platform/scripts/workbenchExtension.properties

Total time: 3 seconds

Looking at the folder layout in the Package Explorer it appears that the scripts folder containing workbenchExtension.properties is located unider player/platform/source instead of directly under player/platform.

The complete output of the command stdout+stderr can be found here:
output.txt (10.2 KB)

Additionally is there a way to build the platform using this same mechanism? I’m looking to get all of the sources into version control so everything can be built cleanly using the SDK.

Best Regards,
–Andy

Hi Andy,

Can you try modifying the property platform-loader.target.platform.dir to reference the source folder of the platform project?

platform-loader.target.platform.dir=/home/swgroup/.microej/workspaces/MicroEJ-SDK-Dist-20.07/imx6ull-minimal-GNUv54_cortexa7_QNXv7-1.0.0/source

Regards,
Jerome

Hi Jerome,

That helped and I’m getting further now. It’s now dying with the following output:

     [java] Buildfile: /home/swgroup/.ivy2/cache/com.is2t.easyant.plugins/platform-launcher/xmls/launch-3.7.1.xml
     [java] 
     [java] init:
     [java] 
     [java] launch:
     [java] 
     [java] BUILD FAILED
     [java] /home/swgroup/.ivy2/cache/com.is2t.easyant.plugins/platform-launcher/xmls/launch-3.7.1.xml:25: The following error occurred while executing this line:
     [java] java.io.FileNotFoundException: /home/swgroup/.microej/workspaces/MicroEJ-SDK-Dist-20.07/krnl386/target~/player/platform/scripts/fullLink.microejLaunch (No such file or directory)

Full output can be found here:
output2.txt (21.1 KB)

Thanks,
–Andy

Hi Andy,

At MicroEJ we have several kind of platform.

Some platforms are used to build an object file, which can be later use in your BSP project to build the final executable (default platform).

Some other platforms can directly build the final executable file.

In order to build your project krnl386 you must use a “standalone” platform (the later kind of platform).

You are using this platfrom /home/swgroup/.microej/workspaces/MicroEJ-SDK-Dist-20.07/imx6ull-minimal-GNUv54_cortexa7_QNXv7-1.0.0/source

How did you built it ?

Can you show me the content of the module.ivy file of your platform project ?

If you want, we can do a screen sharing.

Regards

Hello,

I’m not sure how to determine which type of platform I am using. This platform was created as a blank MicroEJ platform using the architecture files supplied for our OS/CPU combination.
When I did my initial testing in the SDK I built the platform in the MicroEJ SDK using the “Build Platform” link.
I then created a MicroEJ Standalone Application project. Building this (Run As → MicroEJ Application) generates micrejapp.o and icetea_linter_support.s.

These files are then linked into our QNX application which starts the MicroJVM.
The only module.ivy file I have is from the application attached here: module.ivy.txt (2.2 KB)

The platform configuration file can be found here:
minimal.platform.txt (538 Bytes)

Best Regards,
–Andy

Hi Andy,
Can you add he standalone xpfp pack into your architecture

  • You should go to Window > Preferences > MicroEJ > Architectures
  • Select your architecture.
  • On the right menu, click on Import and browse the standalone.xpfp file.
  • Click on Apply and Close

The standalone pack will extend the architecture by adding all the needed files for producing the final executable, among other things it’ll add the fullLink.microejLaunch file.

rebuild your platform, and rebuild your kernel.

Regards.

Hello again,

I wasn’t able to import the standalone.xpfp file (tagalongCA7_2Standalone.xpfp) as it looks like it was allready imported:

Is it different from the Standalone item shown here:

I do see the file on disk but am not sure how to tie it into the platform:

$ find /home/swgroup/.microej/ -name fullLink.microejLaunch
/home/swgroup/.microej/repositories/MicroEJ-SDK-Dist-20.07/1.6/pd001/build/fragments/standalone/content/scripts/fullLink.microejLaunch
/home/swgroup/.microej/repositories/MicroEJ-SDK-Dist-20.07/1.6/pd002/build/fragments/standalone/content/scripts/fullLink.microejLaunch

Thanks,
–Andy