Registered User m (Replaced content with "<noinclude> {{ArticleMainWriter| YvesC}} {{ReviewersList | NathalieS, BernardP, ChristopheP}} {{ArticleApprovedVersion | Jean-ChristopheT | Nobody | No previous approved v...") Tag: Replaced |
Registered User mNo edit summary |
||
(24 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
The goal of this page is to describe the OpenJDK installation procedure on your STM32 MPU board and (native) desktop, in a Distribution Package environment. | |||
It is the "Open Standard Edition Java Development Kit" installation process. | |||
According to the OpenstLinux Weston software architecture, '''XWayland''' is used for all Java applications based on '''X11''', which means '''AWT/SWING''' Java display/graphical applications. | |||
By default the Java Development Kit is installed on the rootfs partition of the target. | |||
==Prerequisites== | |||
===Hardware prerequisites=== | |||
* STM32MP157C-DK2 Or a STM32MP157C-EV1 | |||
* a keyboard and a mouse connected to the board. | |||
===Software prerequisites=== | |||
The STM32MP1 Distribution Package must be installed on your host. To do this, follow the procedure described in the [[STM32MP1 Distribution Package - OpenSTLinux distribution#Download|Install the STM32MP1 OpenSTLinux distribution]] article. | |||
==The yoctoproject meta-java == | |||
JAVA for Linux-based embedded systems is available as metadata in the Yocto project. | |||
* Clone the following git repository into [your STM32MP1 Distribution path]/layers/meta-st/ | |||
<pre> | |||
PC >git clone git://git.yoctoproject.org/meta-java | |||
</pre> | |||
Depending on the Yocto release, select the right branch (for example, branch thud for the STM32MP15-Ecosystem-v1.1.0) | |||
{{PC$}}cd meta-java | |||
{{PC$}}git checkout remotes/origin/thud | |||
You can see the list of available Yocto branches with the following command: | |||
{{PC$}}cd meta-java | |||
{{PC$}}git branch -a | |||
master | |||
remotes/origin/HEAD -> origin/master | |||
remotes/origin/dora | |||
remotes/origin/krogoth | |||
remotes/origin/master | |||
remotes/origin/master-next | |||
remotes/origin/morty | |||
remotes/origin/pyro | |||
remotes/origin/rocko | |||
remotes/origin/sumo | |||
remotes/origin/thud | |||
remotes/origin/warrior | |||
remotes/origin/wip | |||
remotes/origin/zeus | |||
</pre> | |||
* If not already done, set up your build environment | |||
{{PC$}} cd [your STM32MP1 Distribution path] | |||
{{PC$}} source ./meta-st/script/envsetup.sh | |||
(Select for the DISTRO openstlinux-weston and for MACHINE stm32mp1) | |||
* Add the meta layer in your Yocto environment | |||
{{PC$}} cd [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1 | |||
{{PC$}} bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-st/meta-java | |||
* Define at least the following variables in your local.conf file | |||
([your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1/conf/local.conf) | |||
#Possible provider: cacao-initial-native and jamvm-initial-native | |||
PREFERRED_PROVIDER_virtual/java-initial-native = "cacao-initial-native" | |||
#Possible provider: cacao-native and jamvm-native | |||
PREFERRED_PROVIDER_virtual/java-native = "jamvm-native" | |||
#Optional since there is only one provider for now | |||
PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native" | |||
* Include in your image the '''openjdk-8''' component | |||
{{PC$}} cd [your STM32MP1 Distribution path]/meta-st/meta-st-openstlinux/recipes-st/images | |||
* Edit the file st-image-weston.bb and add the following line under CORE_IMAGE_EXTRA_INSTALL | |||
<pre> | |||
openjdk-8 \ | |||
openjdk-8-demo \ | |||
</pre> | |||
* Build the image | |||
{{PC$}} cd [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1 | |||
{{PC$}} bitbake st-image-weston | |||
==Compilation and execution of some JAVA demos== | |||
* '''forkjoin''' benchmark Java application | |||
{{Board$}} cd /usr/lib/jvm/openjdk-8/sample/forkjoin/mergesort | |||
{{Board$}} javac MergeDemo.java | |||
{{Board$}} java MergeDemo 200 100 3 1 1 3 | |||
Running with parameters: 200 100 3 1 1 3 | |||
Time in milliseconds. Y-axis: number of elements. X-axis parallelism used. | |||
1 2 3 | |||
200: 10 7 8 | |||
300: 17 12 12 | |||
400: 20 14 14 | |||
Total: 47 33 34 | |||
* '''SampleTree''' Java application | |||
Read the README.txt file for details. | |||
To execute in a Linux Weston console on the board, with a keyboard and a mouse. | |||
{{Board$}} cd /usr/lib/jvm/openjdk-8/demo/jfc/SampleTree | |||
{{Board$}} java -jar SampleTree.jar | |||
[[File:Sampletree.png|link=]] | |||
<noinclude> | <noinclude> | ||
[[Category:How to run use cases with expansions]] | |||
{{ | {{PublicationRequestId | 17583 | 2020-10-02 | Philip Sage}} | ||
</noinclude> | </noinclude> | ||
Latest revision as of 09:31, 23 October 2020
The goal of this page is to describe the OpenJDK installation procedure on your STM32 MPU board and (native) desktop, in a Distribution Package environment. It is the "Open Standard Edition Java Development Kit" installation process. According to the OpenstLinux Weston software architecture, XWayland is used for all Java applications based on X11, which means AWT/SWING Java display/graphical applications. By default the Java Development Kit is installed on the rootfs partition of the target.
1. Prerequisites[edit source]
1.1. Hardware prerequisites[edit source]
- STM32MP157C-DK2 Or a STM32MP157C-EV1
- a keyboard and a mouse connected to the board.
1.2. Software prerequisites[edit source]
The STM32MP1 Distribution Package must be installed on your host. To do this, follow the procedure described in the Install the STM32MP1 OpenSTLinux distribution article.
2. The yoctoproject meta-java[edit source]
JAVA for Linux-based embedded systems is available as metadata in the Yocto project.
- Clone the following git repository into [your STM32MP1 Distribution path]/layers/meta-st/
PC >git clone git://git.yoctoproject.org/meta-java
Depending on the Yocto release, select the right branch (for example, branch thud for the STM32MP15-Ecosystem-v1.1.0)
cd meta-java
git checkout remotes/origin/thud
You can see the list of available Yocto branches with the following command:
cd meta-java
git branch -a
master
remotes/origin/HEAD -> origin/master
remotes/origin/dora
remotes/origin/krogoth
remotes/origin/master
remotes/origin/master-next
remotes/origin/morty
remotes/origin/pyro
remotes/origin/rocko
remotes/origin/sumo
remotes/origin/thud
remotes/origin/warrior
remotes/origin/wip
remotes/origin/zeus
- If not already done, set up your build environment
cd [your STM32MP1 Distribution path]
source ./meta-st/script/envsetup.sh
(Select for the DISTRO openstlinux-weston and for MACHINE stm32mp1)
- Add the meta layer in your Yocto environment
cd [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1
bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-st/meta-java
- Define at least the following variables in your local.conf file
([your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1/conf/local.conf)
#Possible provider: cacao-initial-native and jamvm-initial-native
PREFERRED_PROVIDER_virtual/java-initial-native = "cacao-initial-native"
#Possible provider: cacao-native and jamvm-native
PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"
#Optional since there is only one provider for now
PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
- Include in your image the openjdk-8 component
cd [your STM32MP1 Distribution path]/meta-st/meta-st-openstlinux/recipes-st/images
- Edit the file st-image-weston.bb and add the following line under CORE_IMAGE_EXTRA_INSTALL
openjdk-8 \
openjdk-8-demo \
- Build the image
cd [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1
bitbake st-image-weston
3. Compilation and execution of some JAVA demos[edit source]
- forkjoin benchmark Java application
cd /usr/lib/jvm/openjdk-8/sample/forkjoin/mergesort
javac MergeDemo.java
java MergeDemo 200 100 3 1 1 3
Running with parameters: 200 100 3 1 1 3
Time in milliseconds. Y-axis: number of elements. X-axis parallelism used.
1 2 3
200: 10 7 8
300: 17 12 12
400: 20 14 14
Total: 47 33 34
- SampleTree Java application
Read the README.txt file for details. To execute in a Linux Weston console on the board, with a keyboard and a mouse.
cd /usr/lib/jvm/openjdk-8/demo/jfc/SampleTree
java -jar SampleTree.jar