JavaME 環境調査 ~JavaでIOTを始める~

イントロダクション

JavaでIOTをやりたいと思いラズパイなど色々とちゃくしゅしてみましたが、なかなかに良いものが見つかりませんでした。
現状、実行しているのは、以下のものです。

  1. ラズパイにEJDKインストール
  2. ラズパイ上で動くJavaFXでユーチューブプレーヤー

JavaでIOT

まずは、Java MEに対する理解が全然ないので、調査します。目的は、「Java MEはどのデバイスで使用可能か?」を明確にすることです。

Java MEテクノロジー

JavaMEテクノロジーに関しては、左のリンクからOracleのページに行けば見れます。
このページを参考に調査していきます。

Java MEプラットフォームは以下のコンフィグレーションに分けれらるようです。

使用できるデバイス

  1. Arm(ラズパイ、Arduinoなど色々とある)
  2. 小型デバイス

Arnに関しては、有名なので詳細は割愛します。

そして問題の「小型デバイス」に関しては、調査結果を記載します。

実行環境(OS)の一覧(一部)

  1. MIDP for Palm OSというものがあり、携帯端末で使用することが多いようです。(ちょっと古い)
  2. ITRON
  3. VxWorks
  4. LynxOS
  5. QNX
  6. Enea
  7. Android
  8. Symbian OS
  9. iOS(英語)

調べた結果

JavaMEにはコンフィグレーションによって使用できる環境が変わってくる

  1. 小型デバイス向けコンフィギュレーション - Connected Limited Device Configuration (CLDC)※KVMは数十バイトのメモリでも起動可能
  2. 多機能デバイスとスマートフォン向けコンフィギュレーション - Connected Device Configuration (CDC)
  3. コンバージドサービス用 Java ME プラットフォーム(ネットワーク接続が途切れがちな小型の制限デバイスからオンライン機能をもつモバイルデバイスまで、すべてを対象)

上記のような、分類になっていて、組み込み系システムにも十分行けるようです。KVM(CLDC)に関しても通常のマイコンで起動できそうです。

つまるところ、電子部品を調べて使用可能かどうか?というところから始めればOKというところです。

普通に電子工作するときは電子部品の調査から始めるそうです。

Java Card

参考にするページはオラクルのホームページです。

まずは、実装されているもの、現実に製品化されているものは何か?というところで、以下のようなものがあります。

これらの指輪には、Java Cardのテクノロジーで実装されたアプリがインストールされています。

この部分で、気になるのが、実装方法です。
この部分は、調査が必要ですが、開発ツールはこちらのリンクからダウンロードすることができます。まだまだ調査が必要です。。。

中途半端ですが、

こんなところで失礼します。

でわでわ。。。

Eclipse Kuraインストールできた〜IMGから VDI作成、RPiの設定など〜

今度こそ、Eclipse Kuraをラズパイにインストールしたいと思います。

いまさらCPUの違いに気づく

そう!、ラズパイはARMで動いています、これに気がつかなかった。。。VBoxでARMはどうなんだろうか?調べてみると、QMUなどを使用するという記載がほとんど。。。
なるほど。。。そんなわけで。。。

QEMUインストール

こちらのサイトから各OSようにダウンロードできるようです。
自分はMacなので、コマンドでインストールします。
brew install qemu
これが結構長い。。。

そして、インストールができたら、確認を行います。
ターミナルを開き、以下の入力をします。
qemu-を入力してからTABキーを押します。

上のように、コマンドの一覧が表示されます。これはインストールされていて環境変数にQEMUが登録されている状態を示します。

次回は、QEMUを使用して環境構築を行います。

でわでわ。。。



失敗「エミュレータを間違えていた」

失敗A: Oracleのページを参照

ここのページでJavaSE8のドキュメントを参考にラズパイへJavaSE8のセットアップを行います。
Eclipse Kuraとか関係なくなってきました(笑)

失敗B: Kuraのページ参照

参考サイトはこちらです。(クイックスタート)

RaspberryPi

ラズビアンをVBoxにインストトールします。
上の参考サイトにしたがって、やらないと前回同様失敗しそうなので、ちゃんとやります。

イメージをVDIに変換

まずは、OSのイメージファイルをダウンロードします。ダウンロードしたのは下のようなファイルです。
2019-09-26-raspbian-buster-lite.zip.torrent
そして、このファイルはイメージファイルではないのでここからIMGファイルをダウンロードしてくる必要があります。
「ダウンロード?」と疑問に思った方、さすがでございます。

Trrentファイル

trrentファイルはIMGファイルを作成するために必要なデー
タをダウンロードするためのものらしいです。
ここのページからtrrentの変換をできるツールがダウンロードできるのでtrrentファイルから下のようなファイルを生成します。
2019-09-26-raspbian-buster-lite.img

VBoxへのVDIファイルのインポート

IMG → VDI

そして、IMGファイルからVDIファイルに変換してVBox上で起動できるようにします。参考サイト
<Macの場合>:WindowsはVBoxManageコマンドが使えるように環境変数がVBoxへ通っていることを確認してください。下のようなコマンドで変換しました。
VBoxManage convertdd 2019-09-26-raspbian-buster-lite.img RaspberryPi.vdi

VDIファイルのインンポート

下のような手順でインポートすることが、できます。

・新規で仮想マシンを作成します。

・ハードディスクの選択時にVDIファイルを選択します。

RPiの設定(VBox)

・32bitのデビアンの仮想マシンを作成、出力したVDIをセット

Rraspberry IoT Eclipse kura〜改めてインストールをする〜

前回、色々と試したが、Eclipse Kuraのインストールがうまくいきませんでした。。。
なので、色々と見直しながら再挑戦いたします。

結果

VBoxでのRPiインストール自体はうまくいくものの。。。
ハード部分のアクセス関連がうまくいかず。。。
結果的には、エミュレータを使用する必要があるという結論に至りました。

以下の記事は、VBoxの扱い方やRPiイメージのインストール関連の記述になっています。

ミスっていたところ

  1. OpenJKD11がインストールされた状態だった→JDKの8をインストールしてやる必要があった
  2. ネットワークdhcpcdを削除するだけでなく、切り替えも必要だった
  3. VBoxに作成した仮想マシンは64bitだが、インストールしたOSは32bitだった->32bit版を再インストール

VBoxの設定

<問題>

  1. VBoxのクリップボードの双方向共有ができない

    上のような画面でクリップボードの共有をする設定をしたけどクリップボードの共有ができない

解決

  1. どうやら、インストールした仮想マシンは64bitなのに対しOSは32bitなのでクリップボードがうまく動かないようです。参考サイトにはラズパイデスクトップは64bitでインストールするのがダメだったようです。。。なんかおかしいとは思ったけど。。。再インストールだなぁ

    そして、再度クリップボードの設定をしてAdditionsをインストールします。そしたらクリップボードの共有はできました。

再度Eclipse Kuraインストール

参考にするのはこちらのサイトです、よくよくみるとJDK8出なくてはできないというのではなく。。。
使用するJDKが8だったという風にも見れます。
なので直接Eclipseをインストールすることにします。
インストーラーがあるようなのでそれを使用します。
ここで、OSのbit数を確認します。32bitです。

JDKインストール

まずは、既存のJDKを削除します。
sudo apt-get remove openjdk*
そして、以下のコマンドで更新、インストールをします。

$ sudo apt-get update
$ sudo apt-get install eclipse

しかし、以下のようなエラーでインストールできませんでした。
E: パッケージ 'eclipse' にはインストール候補がありません
これは、sudo apt dist-upgradeを叩き、再起動するreboot
この状態で、はじめからセットアップします。

oracleJDK8インストール

仮想マシン(VBox)上のブラウザでこちらのサイトにアクセスします。そして、インストールしているのが32bit版なのでdk-8u231-linux-arm32-vfp-hflt.tar.gzを選択してダウンロードします。
そしてダウンロードしたファイルを適当な場所に配置

~/Java/ファイル

実行コマンド
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_231/bin/ 1
しかし、結局java -versionではちゃんとした返答が返ってこなかったので、改めてJDKのインストールを行います。参考サイトはOracleのページです
そして、自分がトラブったJDKインストールに関する参考ページです。

  1. jvmディレクトリを作成sudo mkdir /usr/lib/jvm
  2. sudo gedit /etc/environmentこのファイルを編集
  3. 環境変数「PATH」に下のフォルダーを追加
    /usr/lib/jvm/jdk1.8.0_231/bin
    /usr/lib/jvm/jdk1.8.0_231/db/bin
    /usr/lib/jvm/jdk1.8.0_231/jre/bin

    下のファイルを編集します。
    ~/.bashrc
    コマンドは下のようになります。

    sudo nano ~/.bashrc 
  4. JDKの選択を行う
  5. java -versionで選択したJDKが昨日しているか確認

しかしうまくいかない。。。

こーなったら、頭からやり直す
参考にするページはこちらです、ORACLEのJavaSE Embeddedです。
そして、ここのページからJavaSE Embeddedをダウンロード手順を見てインストールします。。。。

インストールしているOSが悪かった

使用しているISOイメージが
ここのサイトからダウンロードできます。

raspbian-buster-lite

やはり参照するサイトはここのEclipeKuraのサイトです

上のOSをインストールします

  1. torrentファイルのツールをダウンロード、インストール(Mac)
  2. 下のようにツールを起動して
    torrentファイルを解凍?(Zipファイルのダウンロード)します。
    時間がかかるので余裕を持ってやりましょう。

torrentファイルからzipファイルをダウンロードできたら展開します、すると2019-09-26-raspbian-buster-lite.imgが取得できるので、これを使って再度Eclipse Kuraのインストールを行おうと思います。

ちなみに自分は時間がなくなってきたので。。。
ここら辺で失礼します。

しかし、またこんがらがってしまったので再度、まとめた記事を記載します。

でわでわ。。。



JavaME 開発方法 〜JavaMEの開発環境構築 仮想OSにRPiをインストール〜

表題の通りに、前回作成した仮想マシン(VM Box使用)にRPiをインストールします。ラズパイを起動してみると下のように動きました。参考にしたサイトはこちらです。

そして、ロケール(Locale)を日本に指定します。

初期設定を、終えたら再起動するように促されるので、その通りにします、

そして、再起動したまた同じような画面が出る場合があるのでそれは無視してウィンドウを閉じます。

とりあえずはここまでがインストールの手順になります。
ここからターミナルを使用して(コマンドで)OSのアップデートなどを行います。

注意

ダウンロードしてくるファイル(ISO)のx86, x64 などを確認して、VMBoxで作成する仮想マシンのビット数を間違えないようにする。

ここでダウンロードしたのは32ビットのOSイメージでした。

うまくホストマシンとの接続ができなかったので、再インストールしているときに気がつきました。。。

でわでわ。。。



JavaME 開発方法 〜JavaMEの開発環境構築 仮想OSを使う〜

表題にある通りJavaでIoTをやるために仮想マシンを使用してやってみようと考えました。

今回はラズパイのOS(ラズビアン)をMAC上で起動、開発の準備を進めたいと思います。
参考にするサイトはこちらです。
英語サイトなので翻訳して読みました。

VM Boxインストール

MacPCでラズパイのOS(ラズビアン)を起動するためにVM Boxをインストールしようと思います。ダウンロードするサイトはだいたい英語になっていますが、とてもわかりやすい表示でした。

自分はMacOSを使用しているので真ん中をクリックしました。


こんな感じでサクッとインストールできました。

Virtual Boxを起動


上のような画面が表示されますので、このページからダウンロードしたRaspbianのイメージ(ISO)を用意しておきます。

Virtual BoxでRaspbianをインストール

上の画面で「新規」をクリックすると下のような画面が出るのでそこに下のように入力します。

この後に、仮想マシンの設定を行うウィンドウが出てきます。これらは全て、初期値で次の画面へ移動して問題ありません。

これで作成した、仮想マシン(ラズパイ)へOSをインストールします。

Debianのインストール

仮想マシン(Debianマシン)が作成し終わると上のような画面が見れます。
この仮想マシンにラズパイ(RPi)をインストールします。
ここで「設定」とあるアイコンをクリックすると下のような画面が見れます。

そして、「ストレージ」をクリックします。

さらにマークをクリックすると下のように選択領域が見れますので。。。「〜を選択」というところをクリックしてください。

先ほどダウンロードしたRPiのISOイメージを選択します。

これで、MacPC上でRPiが動きます。

でわでわ。。。