ドキュメント



Oracle Java SE Embedded: 開発者ガイド

A JavaFXのデバイスの準備

JavaFX APIを使用してターゲット・デバイスでヘッドフル・アプリケーションを実行する場合は、追加の構成が必要です。 この付録では、プラットフォーム開発者がサンプル・デバイスとしてBeagleBoard-xMを準備する方法を示します。

この章の構成は、次のとおりです。

JavaFXアプリケーション用のBeagleBoard-xMの準備

JavaFXアプリケーションをBeagleBoard-xMで実行するには、この項の説明に従ってソフトウェアを構成する必要があります。 構成にはオペレーティング・システムの構築が含まれ、これには数時間かかる場合があります。

適切なビルド・マシンの使用

カーネル・ビルドには少なくとも8個のGBytesの空き領域がある32ビットUbuntuビルド・マシン、GNOMEを使用したフル・システム・ビルドには約30個のGBytesの空き領域がある32ビット・ビルド・マシンを使用します。

ノート:

VirtualBox共有フォルダ上にビルドしないでください。 Vboxfsは、ビルド・システムに必要なハード・リンクの作成をサポートしていません。

ツールのインストールとシステムの構成

  1. 次のコマンドを入力して、ビルド・ツールをインストールします:

    $ sudo apt-get install \
    build-essential chrpath coreutils corkscrew cvs desktop-file-utils \
    diffstat docbook-utils git-core help2man libncurses5-dev \
    subversion texi2html texinfo
    
  2. デフォルト・シェルをbashに設定します:

    $ sudo dpkg-reconfigure dash
    
  3. dashをデフォルトのシェルにするかどうかを尋ねられたら、「いいえ」と答えます。

Ångström/Open埋込みスクリプトの取得

Ångström設定リポジトリをクローニングします:

$ git clone http://github.com/Angstrom-distribution/setup-scripts.git
$ cd setup-scripts/

BeagleBoardの設定

setup-scriptsディレクトリで、次のコマンドを実行します:

$ MACHINE=beagleboard ./oebb.sh config beagleboard
$ MACHINE=beagleboard ./oebb.sh update

配布の作成

setup-scriptsディレクトリで次のコマンドを実行します。 設定スクリプトの実行には数時間かかります。

$ . ~/.oe/environment-angstromv2012.12
$ bitbake console-image

SDカードの準備とファイルシステムの書き込み

  1. setup-scriptsディレクトリで次のコマンドを実行しますが、/dev/sdXを、Linux PCに接続されているSDカードの正しいデバイスに置き換えます。

    ノート:

    構築したwebサイトではなく、Ångström Webサイトのuboot.imgを使用します。 作成したデバイスを使用すると、USB入力デバイスは動作しません。

    $ mkdir -p /tmp/boot /tmp/rootfs
    $ sudo -s /
    sources/meta-angstrom/contrib/omap3-mkcard.sh /dev/sdX
    
    $ mount /dev/sdX1 /tmp/boot ; mount /dev/sdX2 /tmp/rootfs
    $ cd build/tmp-angstrom_v2012_12-eglibc/deploy/images/beagleboard/
    $ tar jxf console-image-beagleboard.tar.bz2 -C /tmp/rootfs
    $ tar zxf modules-3.2.28-r122a-beagleboard.tgz -C /tmp/rootfs
    $ cp MLO /tmp/boot
    
    $ wget http://www.beagleboard.org/angstrom-mirror/ \
    www.angstrom-distribution.org/demo/beagleboard/u-boot.img \
    -O /tmp/boot/u-boot.img
    
    $ cat > /tmp/boot/uEnv.txt << EOF
    $ vram=24M
    
    $ dvimode="1280x800MR - 32@60 mem=99M@0x80000000 mem=384M@0x88000000 \
    omapfb.vram=0:12M,1:8M,2:4M"
    
    $ optargs="consoleblank=0"
    $ console="console=ttyO2,115200n8"
    $ mmcroot="/dev/mmcblk0p2"
    $ EOF
    
  2. ファイル・システムをアンマウントします。

    $ sync
    $ umount /tmp/boot /tmp/rootfs
    

カードでBeagleBoard xMを起動

最初のブートには長い時間がかかります。 遅いSDカードは、最初の起動には非常に時間がかかります。 シリアル・コンソールが接続されている場合は、次の出力から30 ~ 90分間一時停止します。 ディスプレイには、タイムスタンプで始まる行のみが表示されます。

Starting Recreate Volatile Files and Directories...
Starting Load Random Seed...
Started Machine ID first boot configure                                [  OK  ]
Starting Run pending postinsts...
Started Load Random Seed                                               [  OK  ]
Started Recreate Volatile Files and Directories                        [  OK  ]
[    5.725891] usb 1-2.2.1.3: New USB device found, idVendor=413c, idProduct=2106
[    5.735839] usb 1-2.2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.746093] usb 1-2.2.1.3: Product: Dell QuietKey Keyboard
[    5.753997] usb 1-2.2.1.3: Manufacturer: Dell
[    6.739074] twl_rtc twl_rtc: Power up reset detected.
[    6.753692] twl_rtc twl_rtc: Enabling TWL-RTC.
[    6.779571] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
[    7.904846] smsc95xx v1.0.4
[    8.042388] smsc95xx 1-2.1:1.0: eth0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 9e:34:b3:e9:1c:9d
[    8.058837] usbcore: registered new interface driver smsc95xx

デバイスが初期設定を終了したら、空のパスワードでrootとしてログインします。

必要なパッケージのインストール

次のコマンドを実行して、必要なパッケージをインストールします:

$ opkg update

$ opkg install libgles-omap3 omap3-sgx-modules gdm liberation-fonts udev \
gcc gcc-symlinks libc6-dev binutils make g++ g++-symlinks \
libstdc++-dev libstdc++6

$ opkg install ntpdate
$ ln -sf /lib/libudev.so.1 /lib/libudev.so.0
$ depmod -a
$ reboot

DirectFBの構築およびインストール

  1. DirectFBソース・ファイルを次の場所からダウンロードして解凍します:

    http://www.directfb.org/downloads/Core/DirectFB-1.4/DirectFB-1.4.7.tar.gz.

  2. 作成したdirectfbフォルダに移動し、次を実行します:

    ./configure --with-inputdrivers=none --with-gfxdrivers=none \
      --without-tools --disable-static \
      --prefix=/usr \
      AR=/usr/arm-angstrom-linux-gnueabi/bin/ar
    make
    make install
    

ノート:

JavaFXアプリケーションのDirectFBを使用したソフトウェア・レンダリングでは、javaコマンドラインで次のオプションが必要です:

-Djavafx.platform=directfb

カーソルの点滅の無効化

デフォルトでは、コンソール・カーソルが点滅するようにBeagleBoardが構成されているため、特にタッチ・スクリーン・デバイスでちらつきや視覚的な欠陥が発生する可能性があります。 次のコマンドを使用して点滅を無効にします:

$ cat > /etc/init.d/configure_cursorblink << EOF
#!/bin/sh
/bin/echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
EOF
$ chmod 755 /etc/init.d/configure_cursorblink
$ ln -sf /etc/init.d/configure_cursorblink etc/rc5.d/S99configure_cursorblink
$ /etc/init.d/configure_cursorblink

グラフィックス・ドライバの更新 (推奨)

グラフィックス・ドライバの更新はオプションですが、更新によって一部のレンダリングの問題が解決されるため、更新することをお勧めします。 イメージを作成した32ビットx86 Linuxマシンで更新を実行します。

  1. TIグラフィックSDKバージョン4.09.00.01を
    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.htmlからダウンロードします。

  2. システムにARMクロス・コンパイラがあることを確認します。

    ARM用のクロス・コンパイラがシステムにインストールされている必要があります。 推奨コンパイラは、Sourcery CodeBench Lite Edition for ARM GNU/Linuxです: http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/.

    次の手順では、このコンパイラの2009q1バージョンが/optにインストールされていることを前提としています。

  3. 次のコマンドを実行して、グラフィック・ドライバをインストールします:

    cd ~/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/sysrootfs \
      /beagleboard/usr/src/kernel
    sudo make ARCH=arm BUILD_BUILDHOST=x86
    CROSS_COMPILE=/opt/arm-2009q1/bin/arm-none-linux-gnueabi- scripts
    

    (すべてのクロス・コンパイル・コマンドに追加するプレフィクスにCROSS_COMPILEをポイントします。 たとえば、/opt/arm-2009q1/bin/arm-none-linux-gnueabi- )です。

    ノート: /opt/arm-2009q1/bin/armの間にスペースはありませんが、arm-none-linux-gnueabi-scriptsの間にスペースがあります。

  4. TIグラフィックSDKディレクトリのRules.makeファイルを編集します。

    BeagleBoardツールのルートを指すようにCSTOOL_DIRを設定します。 たとえば、/opt/arm-2009q1です。

    HOMEを、<InstallationOfGraphicsSDK>の上のディレクトリを指すように設定します。 たとえば、SDKが/home/someguy/Graphics_SDK_4_09_00_01にインストールされている場合は、HOME=/home/someguyを設定します。 たとえば:

    set CSTOOL_DIR /opt/arm-2009q1
    set CSTOOL_PREFIX=arm-none-linux-gnueabi-
    set HOME DirectoryAboveGRAPHICS_INSTALL_DIR
    
  5. TIグラフィックSDKの(GRAPHICS_INSTALL_DIR)ディレクトリに移動し、次のコマンドを実行してドライバを構築します:

    sudo make all_km OMAPES=5.x KERNEL_INSTALL_DIR= \
      setup-scripts/build/tmp-angstrom_v2012_12-eglibc/ \
      sysrootfs/beagleboard/usr/src/kernel modules
    
  6. BeagleBoard xMをシャットダウンし、SDカードをx86 Linuxマシンに接続します。

    フォルダは、/media/$USER/Angstromおよび/media/$USER/bootフォルダに自動的にマウントされます。 そうでない場合は、手動でマウントします。

    ノート:

    古いUbuntuシステムでは、ファイル・システムは/media/Angstrom and /media/bootにマウントされます。

  7. TIグラフィックスSDKディレクトリで次のコマンドを実行します:

    cd gfx_rel_es5.x
    sudo cp *.so /media/$USER/Angstrom/usr/lib
    sudo cp *.ko /media/$USER/Angstrom/lib/modules/3.2.28/kernel/drivers/gpu/pvr
    sudo mkdir -p /media/$USER/Angstrom/usr/local/bin
    sudo cp pvrsrvctl /media/$USER/Angstrom/usr/local/bin
    sudo rm /media/$USER/Angstrom/etc/init.d/pvr-init
    sudo cp rc.pvr /media/$USER/Angstrom/etc/init.d/pvr-init
    sudo cp sgx* /media/$USER/Angstrom/usr/bin
    sudo sync
    sudo umount /media/$USER/Angstrom /media/$USER/boot
    
  8. 更新されたSDカードでBeagleBoard xMを起動します。

GDMの無効化 (Xログイン・マネージャ)

GDMを無効にするには、次のコマンドを入力します:

systemctl disable gdm.service

SGXドライバの構成(オプション)

SGXドライバのデフォルト構成では、フレームバッファに直接書き込みます。 これは高速ですが、アニメーション中の破損や部分的な更新などのグラフィック・アーティファクトが発生する可能性があります。 この設定で問題が発生した場合は、BeagleBoardのファイル/etc/powervr.iniを変更して、次の行を変更できます:

WindowSystem=libpvrPVR2D_FRONTWSEGL.so

変更後:

WindowSystem=libpvrPVR2D_FLIPWSEGL.so
ウィンドウを閉じる

目次

Oracle Java SE Embedded: 開発者ガイド

展開 | 縮小