java se embeddedの - oracle...debian squeezeイメージのsdカー ドへのコピー: 1....

9
ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012 JAVA TECH 43 COMMUNITY JAVA IN ACTION ABOUT US blog //mobile and embedded / レジット・カード程度の大きさ で、Javaプログラミングに関 する書籍一冊分ほどの費用しか かからないコンピュータ。それが、 Raspberry Piです。 Raspberry Piはヘッドレス 組込みアプリケーション向けの 完全なJava SEランタイムをサ ポートしています。本記事では、 Raspberry PiでJavaを稼働さ せる方法について説明します。 注: 本記事の手順には他の方法を 適用できる場合があります。特に、 ホスト・コンピュータ(デスクトップ またはラップトップ)やRaspberry Piで直接実行する操作について は 様 々 な 方 法 が あります 。知 識 や好みに応じて(さらに、本記事の 「Linuxのチューニングと微調整 (オプション)」の各トピックを参照 して)、自分に合ったワークフロー を作成してください。 Raspberry Pi Raspberry Piは低電力の小型 ボ ード で す 。ハ ードウェア 浮 動 小数点演算が可能な700MHz ARMv6 CPUとグラフィック・プロ セッサが1つのチップ上に統合さ れています。このグラフィック・プロ セッサとCPUは256MBのRAM を共有します。USB、イーサネッ ト、高精細グラフィック、オーディ オ、SDカード、汎用I/Oのためのコ ネクタも搭載されています。 図1は、Raspberry Pi model Bです。大きさがわかるように、 SDカードを挿入しています。こ のSDカードは、Raspberry Piの ブート元になるという特別な役割 を担います。本記事の大部分で、 ブート可能なSDカード内のファイ ルの作成や変更に関する手順を 説明します。 Raspberry Piの操作には、 USBキーボードおよびUSBマウ スと、HDMIモニターまたはテレビ (最大1,080p)を使用できます。 また、Raspberry Piボードのイー サ ネット接 続 を 利 用して 、ネット ワークに接続したホストからssh 経由で操作することもできます。 sshによるログインを有効にする 方法については、本記事の「Linux のチューニングと微調整(オプショ ン)」の項で説明します。 前提条件 Java SE Embeddedを実行で きるようにRaspberry Pi model Bをセットアップするためには、次 の環境を用意する必要がありま す。 イ ー サ ネット・ケ ーブ ル で Raspberry Piを接続する有線 ネットワーク。このネットワーク ではDHCPからIPアドレスを取 得できるようにする必要があり ます。 Raspberry Piと同じ有線イー サ ネット・ネットワ ー クに 属 す るLinuxホスト・コンピュータ。 Microsoft Windowsまたは Apple Macのホストに対して 同様の操作を実行することも可 能ですが、手順の詳細が異なる ため、本記事では説明を割愛し ます。また、ホスト・コンピュータ のrootパスワードが必要です。 さらに、ホストでは以下を用意 Java SE Embeddedの Raspberry Piへのセットアップ Raspberry PiでLinuxとJava SE Embeddedを1時間以内に稼働させる方法 BILL COURINGTON AND GARY COLLINS BIO Power SD Card Ethernet HDMI RCA Video General Purpose I/O Audio USB 図1 Bill Courington 古参のテクニカルライ ター。小さなコンピュ ータで大きなことをす ることが彼の楽しみ。 Gary CollinsSun Microsystemshas( 現オラクル)で17年 以上の経験を持つソフ トウェア開発者。Java SE Embeddedを PowerPCやARM CPUにポーティングす るインフラストラクチ ャやシステムを提供。 趣味:海岸を散歩、サイ クリング、木工を楽む こと。

Upload: others

Post on 04-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

43

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded /

クレジット・カード程度の大きさで、Javaプログラミングに関

する書籍一冊分ほどの費用しかかからないコンピュータ。それが、Raspberry Piです。Raspberry Piはヘッドレス組込みアプリケーション向けの完全なJava SEランタイムをサポートしています。本記事では、Raspberry PiでJavaを稼働させる方法について説明します。注:本記事の手順には他の方法を適用できる場合があります。特に、

ホスト・コンピュータ(デスクトップまたはラップトップ)やRaspberry Piで直接実行する操作については様々な方法があります。知識や好みに応じて(さらに、本記事の「Linuxのチューニングと微調整(オプション)」の各トピックを参照して)、自分に合ったワークフローを作成してください。

Raspberry PiRaspberry Piは低電力の小型ボードです。ハードウェア浮動

小数点演算が可能な700MHz ARMv6 CPUとグラフィック・プロセッサが1つのチップ上に統合されています。このグラフィック・プロセッサとCPUは256MBのRAMを共有します。USB、イーサネット、高精細グラフィック、オーディオ、SDカード、汎用I/Oのためのコネクタも搭載されています。図1は、Raspberry Pi model Bです。大きさがわかるように、SDカードを挿入しています。このSDカードは、Raspberry Piのブート元になるという特別な役割を担います。本記事の大部分で、ブート可能なSDカード内のファイルの作成や変更に関する手順を説明します。Raspberry Piの操作には、

USBキーボードおよびUSBマウスと、HDMIモニターまたはテレビ(最大1,080p)を使用できます。また、Raspberry Piボードのイーサネット接続を利用して、ネットワークに接続したホストからssh経由で操作することもできます。sshによるログインを有効にする

方法については、本記事の「Linuxのチューニングと微調整(オプション)」の項で説明します。

前提条件Java SE Embeddedを実行できるようにRaspberry Pi model Bをセットアップするためには、次の環境を用意する必要があります。

■ イーサネット・ケーブルでRaspberry Piを接続する有線ネットワーク。このネットワークではDHCPからIPアドレスを取得できるようにする必要があります。

■ Raspberry Piと同じ有線イーサネット・ネットワークに属するLinuxホスト・コンピュータ。Microsoft WindowsまたはApple Macのホストに対して同様の操作を実行することも可能ですが、手順の詳細が異なるため、本記事では説明を割愛します。また、ホスト・コンピュータのrootパスワードが必要です。さらに、ホストでは以下を用意

Java SE EmbeddedのRaspberry PiへのセットアップRaspberry PiでLinuxとJava SE Embeddedを1時間以内に稼働させる方法

BILL COURINGTON

AND GARY COLLINS

BIO

Power

SD Card

Ethernet

HDMI

RCA Video General Purpose I/OAudio

USB

図1

Bill Courington 古参のテクニカルライター。小さなコンピュータで大きなことをすることが彼の楽しみ。

Gary CollinsSun Microsystemshas(現オラクル)で17年以上の経験を持つソフトウェア開発者。Java SE EmbeddedをPowerPCやARM CPUにポーティングするインフラストラクチャやシステムを提供。趣味:海岸を散歩、サイクリング、木工を楽むこと。

Page 2: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

44

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / する必要があります。

■ Webサイトからファイルをダウンロードする方法(Webブラウザやwgetユーティリティなど)。

■ ディスクのパーティション分割ツール。本記事ではシンプルで効果的なGPartedを利用しました。GPartedがない場合は、次のコマンドを実行してGPartedをダウンロードし、ホストにインストールできます。

■ Java SE EmbeddedをオラクルのWebサイトからダウンロードするためのWebブラウザと電子メール・クライアント。

■ SDカード・リーダー/ライター。ホストの仮想マシンでLinuxが稼働している場合は、そのLinuxでSDカードの読み書きを実行できることを確認してください。

■ Raspberry PiのHDMIポートに直接接続可能なモニター、またはアダプタ経由で接続可能なモニター。

■ USBキーボードおよびマウス(電源供給が可能なUSBハブによりRaspberry Piに接続)。

■ Raspberry Piのオペレーティング・システムおよびJavaランタイムを保存するためのSDカード。Linux、Java SE Embedded、大部分の組込みアプリケーションを保存するためには、4GBカードの容量で十分です。注: Raspberry Piで動作しないSDカードもあります。高速SDカードの場合は処理速度がRaspberry Pi

バスの能力を上回り、適さない可能性があります。Transcend 4GB MicroカードおよびPatriot 4GB Class 4カードについては問題なく動作することを確認しました。RPi Verif iedPeripheralsページに、Raspberry Pi環境で動作するカードおよび動作しないカードの情報が記載されています。

■ 5V DCマイクロUSB電源(700mA以上)Raspberry PiのWebサイトで説明されているとおり、USBハブやコンピュータを電源として使用しないでください。

Linuxの基本的なセットアップ電源を接続すると、SDカード・スロットからRaspberry Piファームウェアがブートします。Java SE EmbeddedはLinux上で稼働するため、まずはLinuxをSDカードに保存する作業を行います。Raspberry P i向けのDebian Squeeze Linuxイメージのダウンロード:注: 以下の手順はDebian Squeezeに対応しています。Raspberry Pi向けのその他のLinuxもおそらく動作しますが、ARMチップのソフトウェア浮動小数点演算に対応するようにビルドされたLinuxを使用する必要があります。Raspberry PiのWebサイトでリンクされている各種イメージは、ハードウェア浮動小数点演算に対応するようにビルドされている可能性があります。その場合はJava SE Embeddedと連携できません。1. Debian Squeeze Linuxイメージをダウンロードし、̃ /

RaspberryPiという新しいディレクトリに保存します。Raspberry Pi向けのDebian Squeezeイメージ(ZIP形式)のリンクはこちらにあります。ファイル・サイズは約450MBです。ダウンロードしたファイルを検証するためには、ダウンロードの開始時に表示されるページのSHA-1チェックサムの確認手順に従ってください。以降の手順は、ダウンロードしたイメージを̃/RaspberryPiという新しいディレクトリに保存していることを想定しています。

2. 次のコマンドで、イメージを解凍します。

解凍すると、debian6-19-04-2012のような名称のサブディレクトリが作成されます。Debian SqueezeイメージのSDカー

ドへのコピー:1. ホスト・コンピュータで、SDカードのデバイス・ハンドルを次の手順で調べます(他の方法を使用してもかまいません)。

a. Linuxターミナル・ウィンドウで、dmesg ¦ tailを実行します。デバイスのマウント状況に関するメッセージが表示されます。関連する情報は、メッセージの最後の数行のみです。

b. SDカードをSDカード・リーダー/ライターに挿入します。

c. 別のターミナル・ウィンドウを新たに開き、dmesg ¦ tailを再度実行します。出力結果には、(最初に使用したウィンドウと比較して)新しくマウントしたSDカードに関連する行が追加されています。環境によって詳細情報は異なりますが、おおむねリスト1のような出力結果となります(スペースの都合上、一部改行しています)。手がかりとなるのがsdbです。これはデバイス・

sudo apt-get install gparted

$ cd ̃/RaspberryPi$ unzip *.zip

Download all listings in this issue as text

[ 110.084625] sdb: detected capacity change from 0 to 3963617280[ 118.055249] sd 2:0:0:0: [sdb] 7741440 512-byte logi-cal blocks: (3.96 GB/3.69 GiB)[ 118.059409] sd 2:0:0:0: [sdb] Assuming drive cache: write through[ 118.064547] sd 2:0:0:0: [sdb] Assuming drive cache: write through[ 118.066015] sdb: sdb1

LISTING 1

Page 3: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

45

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / ハンドルの/dev/sdbを表しています。また、sdb1は、この例で使用しているカードの単一パーティションを表します。カードは複数のパーティションに分割されている場合もあります。

注: 以降の手順では、SDカードのデバイス・ハンドルが/dev/sdbで、sdb1という単一パーティションがあることを想定しています。必要に応じて、お使いの環境に合わせて手順を変更してください。2. SDカードのパーティションをアンマウントします。

3. ddコマンドを使用して、DebianイメージをSDカードにコピーします

(リスト2参照)。警告: ddコマンドの実行時には、出力ファイルを示す引数(of)の値が正しく入力されていることを確認してください。このコマンドでは、すべてのデータを上書きする低レベルのディスク・コピーが実行されます。そのため、誤ったデバイスを指定した場合は、データが破損します。SDカードを使用したddコマンドの処理には時間がかかります。4GB Class 4カードの処理時間は5~10分程度です。また、ddでは進捗状況が示されないため、処理に時間がかかっていても、そのまま待機してください。4. この時点でSDカードのLinuxインストールが正しく動作することを確認する場合は、「初回ブートの実行」の項を先に読んでから、「SD

カードのパーティションのサイズ変更」の項に移ってください。

SDカードのパーティションのサイズ変更:現時点のSDカードには3つのパーティションと未割当て領域が含まれています。この未割当て領域をLinuxファイル・システムに追加して、Java SE Embeddedとアプリケーションを保存するための領域を増やします。未割当て領域をファイル・システムに割り当てるためには、SDカードのパーティションを修正します。具体的には、パーティションの1つを削除して再作成し、別のパーティションのサイズを変更します。1. GPartedを起動します。

GPartedには初期状態で、ホストのディスク・パーティションが表示されます。このホストのパーティションは変更しません。

2. 「GParted」→「Devices」を選択し、/dev/sdb上のパーティションと未割当て(unallocated)領域を表示します(図2参照)。3つのパーティションはそれぞれ次のとおりです。

■ /dev/sdb1: ブート・パーティション ■ /dev/sdb2: Linuxルート・ファイル・システム(1.5GBの割当て済み領域のほとんどがすでに使用中)

■ /dev/sdb3: Linuxスワップ領域 カード容量の約半分が未割当て領域です。空き領域のうちもっとも容量の大きい部分が/dev/sdb3パーティションの直後にあります。この領域を/dev/sdb2(ファイル・システム)に追加するために、一時的に/dev/sdb3を削除し、/dev/sdb2の領域を拡張してから、/dev/sdb3を再作成します。

3. Partition列で「/dev/sdb3」(Linuxスワップ)を選択し、右クリックして「Delete」を選択します。パーティションが削除されたように表示されますが(図3参照)、実際にはこの削除操作はキューに格納され、後で実行されます。

4. Partition列で「/dev/sdb2」(Linuxファイル・システム)を選択し、右クリックして「Resize/Move」を選択します。

5. 表示されるダイアログ・ボックスで、「Free space following (MiB)」の値が512前後(または

$ sudo umount /dev/sdb1

$ sudo gparted

図2

Download all listings in this issue as text

$ cd ̃/RaspberryPi/debian6-19-04-2012$ sudo dd if=yourDebian.img of=/dev/sdb bs=1M1859+1 records in1859+1 records out1950000000 bytes (2.0 GB) copied, 212.344 s, 9.2MB/s

LISTING 2

Page 4: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

46

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / スワップ用に残す任意の容量)になるまで、上部にある四角い枠の右側にある三角ボタンをドラッグします(図4参照)。512ちょうどにドラッグできない場合がありますが、

数値を正確に合わせる必要はありません。

6. 「Resize/Move」をクリックします。ここでも、変更内容はキューに格納されます。

7. 表示される「Moving a partition」警告ダイアログ・ボックスで「OK」をクリックします。 これでファイル・システム・パーティションの拡張が完了しました。次に、スワップ・パー

ティションを再作成します。8. 12MiBの「unallocated」 を選択し、右クリックして「New」を選択します。

9. Create New Partitionダイアロ

図3

図4

図5

図6

Page 5: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

47

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / グ・ボックスのFile systemリストで、「linux-swap」を選択します(図5参照)。

10. 「Add」をクリックします。11. G P a r t e d のメイン・ウィンド

ウで、「Ed i t」→「App l y A l l Operations」を選択して、キューに格納されている操作を実行します。

12. Are you sure」ダイアログ・ボックスで、「Apply」をクリックします。パーティションの再作成も時間がかかる処理であり、数分に及ぶこともあります。ダイアログ・ボックスに進捗状況が表示されます。

13. 処理の完了後、「Close」をクリックします。図6のような新しいパー

ティション・マップが表示されます。14. GPartedを終了し、初回ブートの

実行を試すためにSDカードを取り出します。

初回ブートの実行:注: 以下の手順では、モニター、キーボード、動作検証済みのイーサネット・ケーブルをRaspberry Piに接続しておく必要があります。1. Raspberry Piの電源を外し、Linux SDカードをスロットに挿入してから、電源を接続します。数秒後、ブートの進捗状況を示すメッセージがモニターに表示されます。表示されない場合は、SDカードの種類が誤っているか、フォーマットに失敗している可能性があります。通常、初回ブートの実行中にエラー・メッセージが表示されますが、これは一部のサービスがまだ設定されていないことによるものです。また、初回ブートでは、port-mapのシャットダウンを待機するためにハングしているように見えることもあります。コンソール・メッセージが示すように、実行を続ける(通常は数分間)か、Raspberry Piの電源を外して、必要に応じてリブートすることが可能です。2回目以降のブートは比較的速く完了します。

2. ログイン・プロンプトが表示されたら、Raspberry Piのユーザー名とパスワードを指定してログインします。本記事の執筆時点で、ユーザー名はpi、パスワードはrasp-berryです。piおよびraspberryでログインできない場合は、この

LinuxディストリビューションのWebサイトを確認してください。 注: 互換性のないキーボードを使用すると、同じ文字が何度も入力されるなどで、ログインできない場合があります。ログインできない場合は、別のキーボードを試してください。

3. 次のコマンドでRaspberry PiのIPアドレスを取得し、書き留めておきます。

4. 次のコマンドで、sshログインを許可します。

5. リブートを行い、sshログインを有効化します。

シャットダウンに時間がかかる場合は、Raspberry Piの電源を切って入れ直してもかまいません。これで、ホスト・コンピュータからネットワーク経由でRaspberry PiのSDカードの読み書きを実行できるようになりました。

$ sudo /etc/rc.localRaspberryのIP

$ sudo update-rc.d -f ssh \ defaults 20

$ sudo sync; sudo shutdown -r \now

図8

図7

Page 6: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

48

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / Java SE Embeddedのセットアップオラクルは、開発およびテストで使用する目的で、Java SE Embeddedのバイナリを無償提供しています。本項では、ホスト・コンピュータを使用してJava SE Embeddedをダウンロードし、ネットワーク経由でRaspberry PiのLinuxファイル・システム内にコピーします。そのままリモートでダウンロード・ファイルを解凍し、Javaを起動します。Java SE Embedded評価版ソフトウェアの入手:1. ホスト・コンピュータのWebブラウザで、Java SE Embeddedのダウンロード・ページにアクセスします(図7参照)。 本記事の執筆以降、Webページの詳細が変更されている可能性があります。

2. Java SE Embedded 7の列で、「EABI, VFP, SoftFB ABI, Little Endian」リンクをクリックします。アンケート・ページが表示されます。

3. アンケートに回答し、「Submit」をクリックします。確認ページが表示されます。

4. 確認ページで入力内容が正しいか(特に、電子メール・アドレス)を確認し、「Submit」をクリックします。まもなく、JavaSE-Embedded- LinkNotifyからの電子メールが受信トレイに届きます。

5. 受信した電子メールのリンクをクリックします。別のダウンロード・ページが表示されます(図8参照)。ページの詳細は、本記事の執筆以降に変更されている可能性があります。

6. 「Accept License Agreement」オプションを選択し、ARMv6/7 Linux - Headlessの行のリンクをクリックします。注: 本記事の執筆時点で、ARMv7 Linux ‒ HeadfulソフトウェアのRaspberry Pi上での稼働テストは行われていません。また、ARMv7 Linux - Headless - Server CompilerソフトウェアはARMv7チップを必要とするため、Raspberry Pi上では動作しません。 ARMv7互換のJavaランタイムが必要な場合は、ダウンロード可能なARM JDKの利用を検討してください。

7. gzファイルをDownloadsディレクトリ内に保存します。

8. Raspberry Piにネットワーク経由でユーザーpiとしてログインし、Javaダウンロード・ファイル用のディレクトリを作成します。

9. Javaダウンロード・ファイルを、Raspberry Pi上に作成した新しいディレクトリにコピーします。

10. Javaダウンロード・ファイルを解凍します。

11. リスト3のコマンドを実行して、Javaを起動します。

本記事の執筆以降、バージョン番号やビルド番号などの一部の詳細が変更されている可能性があります。

12. 必要に応じて、ダウンロード・ファイルを削除します。

Linuxのチューニングと微調整(オプション)ここで説明する各種の手順を実行することで、Raspberry Piシステムの信頼性、応答性、利便性を高めることができます。必要な手順を選択し、Raspberry Piに対して実行してください。また、問題が発生した場合の原因調査を容易にするために、変更を行うたびにリブートしてください。静的IPアドレスのセットアップ: ネットワークで動的IPアドレスを再利用している場合は、静的IPアドレスへの変更を行

う必要はありません。Raspberry PiのIPアドレスが結果的に同じものになるからです。ブートのたびにRaspberry Piの動的IPアドレスが変わる場合は、静的IPアドレスを設定する方がsshの利用に便利です。以下の手順では、Raspberry Piにraspberrypiというホスト名を割り当てていることを想定しています。1. スーパーユーザーとして、テキスト・エディタで/etc/hostsを開きます(例: sudo vi/etc/ hosts)。

2. Raspberry Pi用に、ネットワーク内で有効な静的IPアドレス、ドメイン名(オプション)、エイリアスで構成される行を追加します。リスト4は、Raspberry Piをホスト名raspberrypiとして指定した場合の実行例です。

3. ファイルを保存し、エディタを終了します。

4. スーパーユーザーとして、テキスト・エディタで/etc/hostnameを開きます。

5. raspberrypiという行を追加します。

$ ssh pi@RaspberryのIP mkdir \/home/pi/java

$ scp ̃/Downloads/*.gz \pi@RaspberryのIP:/home/pi/java

$ ssh pi@RaspberryIP$ cd /home/pi/java$ tar -zxvf *.gz...

$ rm /home/pi/java/*.gz

$ ls ejre*ejre1.7.0_04$ cd ejre*$ ./bin/java -versionjava version "1.7.0_04-ea"Java(TM) SE Runtime Environment for Embedded (build 1.7.0_04-ea-b20, headless)Java Hotspot(TM) Embedded Client VM (build 23.0-b21, mixed mode)

LISTING 3

Download all listings in this issue as text

Page 7: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

49

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / 6. ファイルを保存し、エディタを終了します。

ネットワークの負荷が高まった場合に、オペレーティング・システムによりRaspberry Piの静的IPアドレスが変更され、静的IPアドレスを使用するsshなどの操作が停止するという問題が発生することがあります。次の手順を実行することで、そのような問題を防ぐことができます。1. リスト5のコマンドを実行して、イーサネット・コントローラのハードウェア・アドレスを調べます(リスト5はスペースの都合上、一部改行しています)。リスト5の出力結果のxはそれぞれ、アドレスの数値を示します。この例では、イーサネット・コントローラの名称はeth0です。ハードウェア・アドレスはlink/etherの後の16進数で構成される文字列であり、この例ではb8:27:eb:b5:e8:90です。

2. イーサネット・コントローラのハードウェア・アドレスがわかったので、スーパーユーザーとして、テキスト・エディタで/etc/network/inter-facesファイルを開き、リスト6の# New entriesコメントの後に記述されている内容を追加します(適宜、お使いのネットワークの詳細情報を当てはめてください)。

スワップの有効化とファイル・システムのアクセス日時の最適化: Debian Linuxではデフォルトでスワップが無効になっています。Raspberry Piの256KB RAMを上回る容量の処理が実行された場合は、システムがクラッシュします。また、組込みアプリケーションでは

最終アクセス日時はほとんど使用されないにもかかわらず、ファイル・システムではデフォルトで各ファイルの最終アクセス日時の記録に時間が費やされています。最終アクセス日時の記録は、SDカードの寿命の低下にもつながります。これらのデフォルトの動作は/etc/fstabファイル内に指定されています。スワップを有効にするためには、次の手順を実行します。注: SDカードに対するスワップは時間がかかります。組込みアプリケーションの場合、スワップが発生しないようにメモリを管理する方法が望ましいでしょう。1. スーパーユーザーとして、viなどのエディタで/etc/fstabを開きます。このファイルの内容はリスト7のようになります。

2. スワップを有効にするためには、3行目のコメントを外します。

3. 最終アクセス日時の記録にかかるオーバーヘッドをなくすためには、p1とp3の間にp2マウント・ポイントを挿入します。noatimeオプションとnodiratimeオプションを使用します。編集後のファイルはリスト8のようになります。ファイルを保存してエディタを終了します。

4. p3(/dev/sdb3としてホスト上に作成したスワップ・パーティション)をスワップ領域に割り当てます。

タイムゾーンとロケールの設定: Raspberry Piはデフォルトで、ヨーロッパ/ロンドンのタイムゾーン、およびen_GB_UTF-8ロケールを使用するように

設定されています。コンピュータの地域を変更するためには、次の手順を実行します。1. タイムゾーンを変更するためには、次のコマンドを入力します。

図9のような疑似グラフィカル・ユーザー・インタフェースが表示されます。

2. 上矢印キーと下矢印キーを使用して選択カーソルを移動し、特定の地域と都市を選択します。次に、左矢印キーと右矢印キーを使用して<Ok>または<Cancel>を反転

させ、Returnキーを押します。3. 次のコマンドを実行してロケールを設定します。

タイムゾーンの設定用のインタフェースに似たユーザー・インタフェースが表示されます。タイム・サーバーのセットアップ: ソフトウェア・パッケージのアップデートなどの多くの操作では、正しい日時が設定されていることが求められます。1. 日時を自動的に設定するためには、まずネットワーク内にあるタイ

$ sudo mkswap /dev/mmcblk0p3

$ sudo dpkg-reconfigure \ tzdata

$ sudo dpkg-reconfigure -p \ low locales

127.0.0.1 localhost 192.168.0.100 raspberrypi.yourDo-main raspberrypi loghost

LISTING 4 LISTING 5 LISTING 6 LISTING 7 LISTING 8

Download all listings in this issue as text

Page 8: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

50

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / ム・サーバーのIDを調べて、次のコマンドを実行します。

2. ブートのたびに時刻を設定する場合は、スーパーユーザーとして/etc/rc.localを編集し、スクリプトの終了前に次の行を追加します。

インターネット・プロキシのセットアップ:1. ego.comなどのよく知られたインターネット・ホストに対してpingを実行します。

2. ホストが応答しない場合は、ネットワークがプロキシの背後にないかを確認し、必要な場合は、お使いのネットワークの規則に従ってhttp_proxy環境変数を設定します。次

にその例を示します。

3. ログインのたびにプロキシを設定する場合は、̃/.bash_profile(別のシェルを使用している場合は同等の設定ファイル)にexportコマンドを追加します。

キーボードのキーの再割当て:1. キーボードのキーの解釈が誤っている場合や、キーボードのレイアウトを変更する場合は、次のコマンドを実行します。

2. 適宜選択を行います。このユーザー・インタフェースは、本記事の「タイムゾーンとロケールの設定」の項で説明したインタフェースと似ています。

Debianパッケージのアップデート:1. Debianと共に配布されるパッケージをアップデートする前に、スーパーユーザーとして、テキスト・エディタで/etc/apt/sources.listを開きます。このファイルには、新しいパッケージやアップデート後のパッケージを格納するリポジトリの場所が記載されています。配布時には、リポジトリの場所を示すURLにftp.ukが含まれています。イギリス以外の地域では、これらのエントリを地理的に近い場所に変更することでパフォーマンスを向上できます。たとえば、米国の場合、すべてのURLのftp.ukをftp.usに変更できます。Debianの世界各地のミラー・サイトに関するページに、Debianのリポジトリの場所に関する情報があります。

2. インストール済みのパッケージをアップデートするためには、Raspberry Piがインターネットに接続されていることを確認し、次のコマンドを入力します。

3. パッケージ・リスト内に重複したエントリがあるというメッセージが表示された場合は、エディタで再度/etc/apt/sources.listを開き、重

複したエントリをコメントアウトします。通常は、一番多くの情報が含まれるエントリを残すと良いでしょう。

グラフィカル・ユーザー・インタフェースの自動起動: Raspberry PiにローカルでログインしたときにGUIを自動的に起動する場合は、デフォルトの実行レベルを次のように変更します。1. スーパーユーザーとして、テキスト・エディタで/etc/inittabを開きます。

2. 次のエントリを探します。

3. 実行レベルを5に変更します。

注: グラフィックを使用する場合、Raspberry PiのRAMが大量に消費されます(約90MB)。別のWebブラウザの追加: デフォルト・ブラウザのMidoriで問題が発生する場合は、Iceweaselを試してください。

サウンドの有効化: Raspberry Piのサウンドはデフォルトでは無効になっています。サウンドを有効にするためには、次の手順を実行します。1. スーパーユーザーとして、テキスト・エディタで/etc/modulesを開きます。

$ sudo ntpdate NTPサーバー

ntpdate NTPサーバー

$ sudo export http_proxy = \ 'http:192.168.0.1:3128'

$ sudo dpkg-reconfigure \ keyboard-configuration

$ sudo apt-get update $ sudo apt-get upgrade

# The default runlevel.id:2:initdefault:

# The default runlevel.id:5:initdefault:

$ sudo apt-get update$ sudo apt-get install iceweasel

図9

Page 9: Java SE Embeddedの - Oracle...Debian SqueezeイメージのSDカー ドへのコピー: 1. ホスト・コンピュータで、SDカード のデバイス・ハンドルを次の手順で

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

JAVA TECH

51

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//mobile and embedded / 2. ファイルの末尾に次の行を追加します。

3. ファイルを保存して閉じます。Raspberry Piのリブート後、サウンドが有効になります。

まとめ手頃な価格で小型のRaspberry Piは、ARMベースのデバイスでのアプリケーション開発に理想的な環境です。2012年初めの初期リリース以降、急速に人気が高まっています。Java SE Embeddedランタイムのクロスプラットフォーム・アーキテクチャによって、開発者はARMアーキテクチャベースの他のデバイスや、x86、PowerPCといったその他のサポート対象アーキテクチャベースのデバイスと同じくらい簡単に、Raspberry Pi向けのアプリケーションを作成できます。メモリ(256MB RAM)と処理能力(700MHz CPU)が限られているRaspberry Piは、組込みアプリケーションに適した開発プラットフォームであり、Java SE Embeddedランタイムにも理想的です。Raspberry Piデバイスの登場は、組込みデバイス市場とデスクトップデバイス市場の両方で、ARMベースのデバイスの存在感が増していることを示しています。よりハイエンドのデバイスに対応したソリューションを実現するために、Java SE 7 update 6以降のリリースでは、ARMプラットフォーム・アーキテクチャに対応した全機能搭載のJDKが提供されています。 </article>

snd_bcm2835

LEARN MORE • Raspberry Pi • Java SE for Embedded Devices

LEARN MORE

My local and global JUGs are great places to network both for knowledge and work. My global JUG introduces me to Java developers all over the world.Régina ten Bruggencate

JDuchess

FIND YOURJUG HERE