プロジェクト

全般

プロフィール

Aarch64環境でEclipse3.8のRTSEを構築

2021/04/15更新
Jetson Ubuntu18.04 (arm64, aarch64) 環境向け

制限あれこれ

  • RTSEはCORBAを利用しているためJDK8が必要
  • eclipse.orgからダウンロードできるEclipse IDEでaarch64をサポートしているのは2020‑12以降のバージョン
  • Eclipse IDEでJDK8で動作するものは、2020-06のバージョンまで

以上のことから、aarch64環境でJDK8で動くEclipseはaptでインストールできる3.8バージョンのみという判断。
(これより新しいバージョンは今のところ見つけられない)

Eclipse3.8を起動できるようにする

eclipseを実行してもいくつかエラーが発生して起動できないので、順番に解決して行く。

  • インストール手順
    • JDK8が必要だがeclipseの依存関係で、default-jre -> openjdk-11-jre がインストールされてしまうので、
      eclipseインストール後にJDK8をインストールする
      $ sudo apt install eclipse
      $ sudo apt install openjdk-8-jdk
      $ sudo update-alternatives --config java
      ここでjava8へ切り替える
      
      $ java -version
      openjdk version "1.8.0_282" 
      

canberra-gtk-moduleエラー

  • eclipse起動時、下記エラーが出る
    Gtk-Message: 15:02:30.797: Failed to load module "canberra-gtk-module" 
    
  • libcanberra-gtk-moduleをインストールすればよい
    $ sudo apt install libcanberra-gtk-module
    

MaxPermSizeワーニング

参考: https://oshiete.goo.ne.jp/qa/8681661.html

  • eclipse起動時、下記ワーニングが出る
    OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
    
  • ワーニングなので対応せずとも起動するかもしれないが、下記変更を行った
    $ sudo cp /etc/eclipse.ini /etc/eclipse.ini.org
    $ sudo vim /etc/eclipse.ini
    --launcher.XXMaxPermSize
           ↓
    --launcher.XXMaxMetaspaceSize
    

EclipseStarterエラー

  • eclipseを起動するとログファイルを見よというエラーダイアログがでるので確認する
    ~/.eclipse/org.eclipse.platform_3.8_155965261/configuration下のログファイル
    !MESSAGE Exception launching the Eclipse Platform:
    !STACK
    java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter
            at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
            at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:626)
            at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
            at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
            at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
    
  • 下記手順で対応する
  • まず構成とロードされるjarファイルを確認する
    $ eclipse -clean -console -consoleLog -debug
    
  • 最初に注目すべきは下記の部分
    Framework located:
        file:/usr/lib/eclipse/plugins/org.eclipse.osgi_3.8.1.dist.jar
    
  • 下記を実行するとファイルがありませんと言われる
    $ ls /usr/lib/eclipse/plugins/org.eclipse.osgi_3.8.1.dist.jar
    
  • ファイル名データベースを更新してorg.eclipse.osgiのjarファイルの場所を調べる
    $ sudo apt install mlocate
    $ sudo updatedb
    $ locate org.eclipse.osgi
          :
    /usr/share/java/org.eclipse.osgi.nb.jar
    
  • jarファイルを開き、EclipseStarter.classの存在を確認する
  • 上記で確認した org.eclipse.osgi.nb.jar を使用する
    $ jar tf /usr/share/java/org.eclipse.osgi.nb.jar | grep EclipseStarter.class
    org/eclipse/core/runtime/adaptor/EclipseStarter.class
    
  • 最初に確認した構成とロードされるjarファイルの結果でのconfigファイルの場所は、
    Configuration file:
        file:/usr/lib/eclipse/configuration/config.ini loaded
    
  • このconfig.iniを開き下記を確認
    osgi.framework=file\:plugins/org.eclipse.osgi_3.8.1.dist.jar
    
  • この設定に合わせてシンボリックリンクを作成する
    $ cd /usr/lib/eclipse/
    $ sudo ln -s /usr/share/java/org.eclipse.osgi.nb.jar plugins/org.eclipse.osgi_3.8.1.dist.jar
    
  • これでeclipseが起動する

RTSystemEditorとして整える

  • まずRTSE, RTCBが依存しているプラグインのインストールを確認する必要がある
  • 確認するのは、 https://openrtm.org/openrtm/ja/download/tools/openrtp_1_1_0_rc5#toc6 に記載されている以下のプラグイン
    • EMF ランタイム
    • EMF Xcore ランタイム
    • GEF
    • XSD
    • Eclipse Platform SDK (※)
    • Eclipse Plug-in Development Environment (※)
      (※)はパースペクティブに RTSE と RTCB を表示するために使用

Eclipse上で新規ソフトウエアのインストール

  • aptでインストールしたeclipseは英語版なので、「Help」→「Install New Software...」を選択する
  • 下記エラーダイアログにて「インストール」ダイアログが表示されない
    Cannot complete the request. This installation has not been configured properly for Software Updates.
    
  • エラーログ(~/workspace/.metadata/.log)の内容を確認する
    !ENTRY org.eclipse.equinox.p2.ui.sdk 2 0 2021-04-07 17:35:16.607
    !MESSAGE Could not locate the running profile instance. The eclipse.p2.data.area and eclipse.p2.profile properties may not be set correctly in this application's config.ini file.
    
  • config.ini(/usr/lib/eclipse/configuration/config.ini )の内容を確認する
    eclipse.p2.profile=PlatformProfile
    eclipse.p2.data.area=@config.dir/../p2/
    

解決したという下記対応を試したが、改善せず

  • <対応策1>・・・NG
    • 同じバージョンのEclipseを再ダウンロードして、p2ディレクトリの内容を差し替えるというもの
    • 参考: https://www.programmersought.com/article/45204969013/
    • p2ディレクトリ取得のため、Eclipse3.8のSDKをダウンロードする(aarch64版は無いのでx86_64版を利用)
      http://archive.eclipse.org/eclipse/downloads/drops/R-3.8.1-201209141540/eclipse-SDK-3.8.1-linux-gtk-x86_64.tar.gz
    • p2の内容を確認しておく・・・★印のprofile名が違うことに注目
      • aptでインストールしたEclipse3.8
        p2
        ├── org.eclipse.equinox.p2.engine
        │   └── profileRegistry
        │       └── PlatformProfile.profile ★
        │           ├── 1519256187330.profile.gz
        │           └── state.properties
        └── org.eclipse.equinox.p2.touchpoint.eclipse
            └── artifacts.xml
        
      • Eclipse3.8 SDK
        p2
        ├── org.eclipse.equinox.p2.core
        │   └── cache
        │       ├── artifacts.xml
        │       └── binary
        │           ├── org.eclipse.cvs_root_1.3.200.v20120525-1249-7B79FJJAkF7BF7VEH5FEJT
        │           ├── org.eclipse.jdt_root_3.8.1.v20120814-104540-8-8nFqpFNOfwKDRVz-tXLgJBep83
        │           ├── org.eclipse.platform_root_3.8.1.v20120815-074604-9gF7jI7wG5qDyZMWGg8NPvDbfWFWlIJU-kYaOQ
        │           ├── org.eclipse.rcp.configuration_root.gtk.linux.x86_64_1.0.0.M20120914-1540
        │           └── org.eclipse.rcp_root_3.8.1.v20120814-105048-92BmGJlFw3Ez0WZ9TxCqgcSVAE
        └── org.eclipse.equinox.p2.engine
            └── profileRegistry
                └── SDKProfile.profile ★
                    ├── 1347657833643.profile.gz
                    └── state.properties
        
    • eclipse -clean で起動してもエラーは変わらず。新規ソフトウエアインストールのダイアログが表示されない
  • <対応策2>・・・NG
    • <対応策1>の環境を使用
    • 参考: https://stackoverflow.com/questions/30163571/eclispse-install-software-says-can-not-complete-the-request
    • p2を差し替えたので、config.ini を★のprofileにし、eclipse.p2.data.areaの指定を変更する
      eclipse.p2.profile=PlatformProfile
        ↓
      eclipse.p2.profile=SDKProfile
      
      eclipse.p2.data.area=@config.dir/../p2/
        ↓
      eclipse.p2.data.area=@config.dir/../p2/org.eclipse.equinox.p2.engine/profileRegistry
      
    • eclipse -clean で起動してもエラーは変わらず。新規ソフトウエアインストールのダイアログが表示されない
  • <対応策3>・・・NG
    • <対応策2>の環境を使用
    • 参考サイトに下記と書いてある
      Removing the eclipse.p2.data.area folder prevents Eclipse from launching.
      
    • config.iniの設定が上記のようになっているので、次のようにしてみた
      $ cd org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/
      $ ls
      1347657833643.profile.gz  state.properties
      $ sudo mv * ~/kawa-back/
      
    • eclipse -clean で起動してもエラーは変わらず。新規ソフトウエアインストールのダイアログが表示されない

これ以上の対応ができず、未解決状態で作業を中断(2021/04/15)