Skip to content
dynamis edited this page Nov 11, 2017 · 45 revisions

Dragon Board 410c メモ

このページは Dragon Board 410c を Firefox on Yocto Linux で使うためのメモです。ボードの使用や入手先などについては 開発ボードのページ を参照してください。基本操作については WoT チュートリアル なども参考にしてください。

Reference Platform Builds

Dragon Board 410c は出荷時には Android OS が搭載されていますが Linaro Qualcomm Landing Team によって Debian および OpenEmbedded/Yocto の Linux 環境のメンテナンスがされており、ビルドするためのソースツリーやビルド済みイメージの公開がされています。

組み込み用途では OpenEmbedded 環境の採用が多いため、組込デバイス開発を想定したプロトタイピング開発環境として、こちらのイメージに Firefox 等のビルドを追加した環境を利用します。

Dragon Board の OS イメージ書き換え

まずは Dragonboard の OS を RPB (Reference Platform Build) に書き換えます。上記からビルド済みのイメージをダウンロードして、次の手順で OS イメージを書き換えます (イメージ配布ページの記載で理解できる人はそちらを読んでこのセクションでの詳細説明はスキップしてください)。

この作業を行う場合 fastboot コマンドが使える環境、一般的には Android SDK がインストールされているマシンと micro USB ケーブルが必要です。例えば macOS の Home Brew 環境があれば次のコマンドでインストールできます:

brew tap caskroom/cask
brew cask install android-platform-tools

Fastboot モードで起動

OS イメージを書き換えるにはまず Dragon Board を Fastboot モードで起動させます。

  • Dragon Board の micro USB 端子をパソコンに繋ぎます
  • Dragon Board の HDMI 端子を HDMI ディスプレイに繋ぎます
    • ボタンを押しながら電源ボタンを押し、Dragon Board を Fastboot モードで起動させます
    • HDMI ディスプレイに Android の起動画面が出てしまう場合、Fastboot ではなく通常モードで起動されています。その場合は adb reboot bootloader コマンドで Fastboot モードに切り替えて再起動させます
  • fastboot devices コマンドで Fastboot モードでの起動と接続を確認します
    • 次のように認識したデバイスが表示されれば問題ありません

      bbd22d18	fastboot
      
    • 何も出力されない場合、通常モードで Android が起動していないか adb devices コマンドで確認できます

      • Android が起動している場合、次のようにデバイス一覧に表示されます。その場合は adb reboot bootloader コマンドで Fastboot モードに切り替えて再起動させます

        List of devices attached
        bbd22d18	device
        
      • List of devices attached の行しか表示されない場合、Dragon Board を認識できていません。micro USB ケーブルが充電専用 (通信できないもの) ではないか確認してください。

OS イメージを書き換え

@naobsd さんがビルドしたイメージ をダウンロードし、同梱されているスクリプトと fastboot コマンドを使用して OS イメージを書き換えます

  • rpb-desktop-image-dragonboard-410c-32.zip を展開

    unzip rpb-desktop-image-dragonboard-410c-32.zip
    cd rpb-desktop-image-dragonboard-410c-32
    
  • dragonboard410c_bootloader_emmc_linux-72.zip を展開

    unzip dragonboard410c_bootloader_emmc_linux-72.zip
    cd dragonboard410c_bootloader_emmc_linux-72
    
  • 同梱されているスクリプトで OS イメージを書き換え

    ./flashall
    cd ..
    
  • fastboot コマンドで boot と rootfs のイメージを書き換え

    fastboot flash boot boot-Image--4.4-r0-dragonboard-410c-20160920202827-22-22.img
    fastboot flash rootfs rpb-desktop-image-dragonboard-410c-32.img
    

その他の OS イメージ

96Boards のビルドダウンロードページにいろいろまとまっています。

  • Linaro Supported
    • Debian
      • Desktop は ALIP (ARM Linux Internet Platform) のビルド、Developer の方は CLI only
      • Debian で Firefox をインストールする手順は Debian Mozilla Team のページを参照
      • /etc/apt/sources.list に追加:
        deb http://http.debian.net/debian experimental main
        
      • ターミナルで apt-get 使ってインストール
        apt-get update
        apt-get install -t experimental firefox
        
    • Open Embedded
  • 3rd Party
    • Android
    • Ubuntu Core
    • Windows 10 IoT

Qualcomm から最新の Android イメージが提供されています:

96Boards の Linaro からは Debian, Ubuntu のイメージが提供されています:

基本操作

基本操作、初期設定などについてです。より詳しい手順は WoT チュートリアル を参照してください。

  • ターミナルの起動、リモート接続
    • HDMI ディスプレイが使える場合は右クリックメニューから Terminals ⇒ Xterm を起動
    • 96Boards UART Adapter Board96 Boards Sensors を併用すると USB シリアルコンソールから接続できます
      • ls /dev/tty.* で tty デバイスのリストを確認 (Mac では /dev/tty.usbserial-DAHTVWP/dev/tty.usbserial-DACRG7O などがリストに出てくる)
      • sudo cu -s 115200 -l /dev/tty.usbserial-DACRG7O などでシリアルコンソールに接続
    • WiFi 接続時は同一ネットワークから SSH ログインできます
      • ssh root@10.11.12.123 のように root ユーザでボードの IP アドレスに ssh 接続します。
      • パソコン側に X11 をインストールしていれば ssh -X root@10.11.12.123 のようにして X11 フォワーディングが可能です。
        • xterm などはしっかり動きますが、現状のビルドでは firefox は非常に重たいなど実用的ではありません
        • localhost のファイルを Firefox で読み込んだ場合の表示結果確認程度なら firefox http://localhost:3000/ のように URL を指定して起動することで表示結果を確認できます (かなり時間がかかります)。
  • WiFi の設定と確認
    • nmcli で WiFi 接続設定が可能。 nmcli device wifi connect $SSID password $PASSWORD な感じで。
    • nmtui コマンドを使ってテキストベースの GUI で WiFi 接続が可能です。
      • ローカルネットワーク内で mdns などで認識するホスト名を dragonboard-410c-32.local から変更したい場合は Set system hostname を選択、ホスト名を書き換えて OK を選択してください。
    • ip addr コマンドで割り当てられたアドレスを確認できます (wlan0 の inet 行に出力されます)。
  • root パスワードの設定
    • passwd コマンドで root ユーザのパスワードを設定できます。初期値はパスワードなしで同一ネットワーク上から誰でもログインして root 権限で操作可能になっているので注意してください。もちろん SSH 公開鍵を用いて公開鍵認証で接続するのがより望ましいです。
  • シリアルコンソールでファイルを送受信する
  • scp コマンドでファイルを送受信する (WiFi 接続時)
    • scp filetocopy.zip root@10.11.12.146:~ コマンドなどでコピーします
  • Node の起動
    • node index.js のように動作させたいスクリプトやサーバプログラムの .js ファイルを引数に実行します。
    • express や i2c などのモジュールを使っている場合はまず npm install でモジュールのインストールをしてから

周辺機器

Grove モジュールを使う

Grove システムの拡張ボードやセンサーを使うことで、簡単に各種ハードウェアの制御が可能です。Grove モジュールを使った L チカなどサンプルコード を使って試してみる手順は WoT チュートリアル を参考にしてください。

そのほか

  • 96Boards Sensors Mezzanine Board について

    • 96Boards の low-speed 40pin expansion コネクタに接続して使う。GPIO/I2C を Grove 用コネクタに変換し UART を USB Serial にする以外に、ATmega328P を搭載しており Arduino Uno 互換デバイスとしても利用可能。
      • 96Boards 側から制御する Grove コネクタは 8 個のみで、Arduno 用シールドソケットと Grove コネクタ 10 個は ATmega328P で制御。96Boards と Ardunino 互換部分は UART で通信可能
      • Arduino 互換部分との利用については 96Boards ブログの記事 などを参照
    • 回路図は GitHub で公開されている PDF を参照
    • PDF 1 ページ目が 96 Boards 側に接続している端子の配線、2 ページ目が Arduino 互換部分の配線
  • 既知の問題

    • 現時点での Firefox のビルドでは WebGL, WebRTC は使用できません
    • wget コマンドは BusyBox のビルドが入っているが HTTPS (SSL/TLS) に対応していないので curl などを使う
    • node モジュールの追加インストールは出来ないことがあります (ボード上でコンパイルが通らないことがある)
  • 動作確認&サンプルコードのある周辺機器

トラブルシューティング

  • wget コマンドが動作しない
    • Reference Platform Build の Linux には openssl に対応しないビルドが入っており HTTPS の URL では動作しません。
  • git コマンドが使えない
    • このボードにインストールする用の git パッケージは (多分) 公開されていません。git のソースコードからビルドするのもこのボード単体の環境では難しいです。Yocto で OS イメージと一緒にビルドするよう Yocto のレシピを変えるなどしてください。
  • ログインシェルやログインスクリプトを変更したらログインできなくなった
    • ターミナルがログインシェルやログインスクリプトのエラーで起動できなくなってしまった場合、リモートログインが出来なくなるので注意してください。
    • A: HDMI ディスプレイ画面上での操作で解決する
      • Dragon Board は電源を入れると root で自動ログインして HDMI ディスプレイに画面出力されるようになっています (ターミナルのログインスクリプトの動作とは関係なく起動するハズ)
      • HDMI ディスプレイ、USB マウス、USB キーボードを接続して起動し、右クリックメニューから Terminals ⇒ Xterm を起動してみてください。そちらで操作が可能であれば vi コマンドで原因となるスクリプトを修正や削除してください (同じ原因でターミナルが起動できず、この方法では解決できない可能性が高いです)。
      • 右クリックメニューから Internet ⇒ Firefox を起動してみてください。Firefox の開発メニューには CSS や JS ファイルを編集できる機能があるため、それを使って原因となるログインシェルの設定 (/etc/passwd ファイル) やスクリプトファイルを修正してください。具体的には スタイルエディタスクラッチパッド で CSS や JS ファイルを読み込みや新規作成、保存が可能です。書き換えたいシェルスクリプトを読み込みや上書き保存してください。
    • B: ファイルシステムを焼き直す
      • 最悪、上記の OS イメージ焼き換えの手順に従って rootfs (ルートファイルシステム) をまるごと焼き直して初期状態に戻してください。
      • 上記の手順を参考に fastboot flash rootfs コマンドで書き込んでください。ブートイメージを書き換える fastboot flash boot コマンドの方は (しても害はないが) 不要です。