Translate

ページ

2016年3月11日金曜日

LabTool を Raspberry Pi2B の Raspbian Jessie上でコンパイルする

 簡易オシロLabToolを時々使っていますが、せっかくRasPi2に綺麗なモニタもつながったので、PC無しで使えると便利(?)と考えました。

ところが、ネットで調べるとゲーマニウムさん曰く、最新版のRaspbian Jessie 4.1をはじめ、Raspbian Wheezy 3.18以降動かないとのこと。

しかし、よく読むとバイナリで配布しているものを試したということ。LabToolはソースも配布していますので、手順を読んでコンパイルしたところ動くものが出来たようです。



 以下に手順をまとめます。と言っても、ほとんどオリジナルの手順をなぞっただけですが...



    バイナリ配布版の確認

    • バイナリ配布版(2014-04-28版)を使用したところ、LabToolアプリ自体は起動するのですが、LabToolをUSBポートに差し込んでもアプリ側で認識されません。確かに動作しません。
      • その後、バイナリ配布版の動かない原因はファームウェア操作用のツールの実行権限が落ちていることであるこちが分かりました。(こちら参照)というわけで、以下は本当に趣味&勉強用となってしまいました…
    • なお、標準ではRasPiのUSBバスパワー供給能力は不足しますので、電源アダプター付のUSBハブ経由でLabToolをつないでいます。


    準備するもの

    • Raspbian Jessie 4.1 のインストールされたRaspberry Pi
    Raspbery Pi 2Bを使いました。(初代のモデルA以外は512MB以上積んでいるので使用可能だと思います。)
    あらかじめsudo apt-get update : sudo apt-get upgrade して最新版にしています。
    8GB以上のmicroSD/SDHCが必要です。
    sudo raspi-configコマンドの Expand Filesystem を行って、カード全体をRaspberry Piで使える状態にする必要があります。 
     インターネットへアクセスできる環境が必要です。
    言語環境はデフォルトのen_GB.UTF-8としました。(特に必須ではありませんが、参考にした手順が英語なので、合わせて作業しました。)
    • 1024x768以上の表示環境(モニタ又はX-Window server)
     コンパイル時に統合開発環境Qt Creatorを使います。XGA以上の解像度が無いと画面に収まりません。(設定でどうにかなるのかもしれませんが、Qtで開発環境を整備することが目的では無いので、深追いはしません。)
     Qt CreatorはGUI環境となりますので、対応したキーボードと対応したポインティングデバイス(マウス、タッチパッド)が必要です。
    • 電源アダプター付のUSBハブ
    標準ではRasPiのUSBバスパワー供給能力は不足しますので、電源アダプター付のUSBハブ経由でLabToolを接続しています。(config.txtにバスパワー電流増強のおまじないを書けば不要に出来る場合もあるようです。)


    参考にした手順


    LabToolアプリビルド完了までの記録

    • コンパイルに必要な開発環境関係パッケージをインストール
      (所要時間20分ほど)
    $ sudo apt-get update
    $ sudo apt-get install git libudev-dev libtool automake qt-sdk
    • libusbx 1.0.17をコンパイル、インストール
      (所要時間数分)
    $ mkdir ~/projects
    $ cd ~/projects
    $ wget http://sourceforge.net/projects/libusbx/files/releases/1.0.17/source/libusbx-1.0.17.tar.bz2/download
    $ mv download libusbx-1.0.17.tar.bz2
    $ tar -xf libusbx-1.0.17.tar.bz2
    $ cd libusbx-1.0.17
    $ ./configure
    $ make
    $ sudo make install
    • github上のlabtoolソースレポジトリをローカルに複製(ソースダウンロード)
    $ cd ~/projects/
    $ git clone https://github.com/embeddedartists/labtool.git

    •  先ほどコンパイルしたlibusbxをlabtoolソースツリー上にコピー
    $ cp ~/projects/libusbx-1.0.17/libusb/.libs/libusb-1.0.a ~/projects/labtool/app/libusbx/Linux/ 
    • Qt Creatorのコンパイル環境整備

      • GUIで「Menu」-「Programming」-「Qt Creator」 又はコマンドラインから「qtcreator」を起動
      • 「Help」-「About Plugins」を開く
      • 「Device Support」の下の「Remote Linux」オプションのチェックを外し、右下の[Close]をクリックする
      • 一旦QtCreatorを終了する

        • Qt Creatorを再度起動する
        • 「Tools」-「Options」を開き、「Build&Run」を開く
        • 「Compilers」タブを開き、「Add」ボタンを押し「GCC」を選択する。コンパイラパスに「/usr/bin/arm-linux-gnueabihf-gcc」を指定し、[Apply]をクリックする

        • 「Kits」タブを開き、デスクトップを選択する。Compilerパラメータ欄を数回クリックすると表示が空白からGCCに変わる。Qt versionのパラメータ欄も数回クリックして、自動設定される値とする。設定のCompilerにGCC、Debuggerに/usr/bin/gdbが設定されていることを確認し[Apply]を押す


        • [OK]を押しOptions画面を閉じる 

      • LabToolをコンパイルする

        • Qt Creatorを起動する
        • 「FIle」-「Open File or Project」を開き、/home/pi/projects/labtool/app/LabTool.proを選択し[Open]をクリックする
        • 「デスクトップ」にチェックが入っていることを確認し[Configure Project]をクリックする


        • ビルドモードがDebugになっていることを確認後、ビルドをクリックする(Releaseでもコンパイル可能です。)
          (所要時間15分ほど)



        • ビルド後の実行ファイルLabToolは、/home/pi/projects/labtool/build-LabTool-unknown-Debug/の下に格納されています。(Releaseでコンパイルした場合は/home/pi/projects/labtool/build-LabTool-unknown-Releaseの下です。)

      ファームウェアのコンパイル

      • LabToolアプリは、アプリ本体とは別に、LPC Link2に送り込むfirmware.binを必要とします
      • バイナリ配布パッケージ中のfirmware.binがそのまま使えるようですが、せっかくなのでこちらのコンパイルもやってみました
      • ここまでの作業が完了していれば、ファームウェアのソースが/home/pi/projects/labtool/fwの下に、コンパイル手順書が/home/pi/projects/labtool/fw/COMPILE.mdに格納されています

      • まず、gcc-arm-none-eabi環境をインストールします
        (所要時間5分ほど)
      $ sudo apt-get install gcc-arm-none-eabi

        • 続いて、コンパイルを実施します
          (所要時間2分ほど)
        $ cd ~/projects/labtool/fw
        $ make

        • ファームウェアは/home/pi/projects/labtool/fw/firmware.binとして保存されます


          /etc/udev/rules.d/10-ea-labtool.rules

          • もしまだ存在しない場合は以下の内容を書き込みます
          # Allow group plugdev to access the LabTool Hardware (1fc9:0018)
          ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0018", MODE="664", GROUP="plugdev"

          # Allow group plugdev to access the LPC DFU device (1fc9:000c)
          ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="000c", MODE="664", GROUP="plugdev"


          動作確認

          • コンパイル完了した実行ファイルLabToolとファームウェアfirmware.binを同じディレクトリにコピーします
          $ mkdir ~/Desktop/LabTool2
          $ cp ~/projects/labtool/build-LabTool-unknown-Debug/LabTool ~/Desktop/LabTool2/
          $ cp ~/projects/labtool/fw/firmware.bin ~/Desktop/LabTool2/
          $ cp -pr ~/projects/labtool/tools ~/Desktop/LabTool2/
          $ chmod u+x ~/Desktop/LabTool2/tools/dfu-util-0.7-binaries/linux-armel/dfu-util

          • 起動
          $ cd ~/Desktop/LabTool2
          $ ./LabTool



          •  Users Manual記載のQuick Start Guideに沿って動作テストを行いました。prjファイルはWindows版のパッケージに含まれていたdemo.prjをコピーして使いました。(格納パスはC:\Program Files\Embedded Artists\LabTool\)

          うまく動いたようです。良かった! 

                2016年3月8日火曜日

                LabTool on Raspberry Pi2B with Raspbian Jessie

                再コンパイルとかいろいろやっている間に気づいたのですが、単に
                http://www.embeddedartists.com/products/app/labtool.php
                からダウンロードできるlabtool_raspi_2014-04-28.tgz を手順に沿ってインストールした後、
                chmod u+x /home/Pi/Desktop/LabTool/tools/dfu-util-0.7-binaries/linux-armel/dfu-util
                とするだけで動きそうな気がする....?