-
Notifications
You must be signed in to change notification settings - Fork 2
Dragon Board 410c
このページは Dragon Board 410c を Firefox on Yocto Linux で使うためのメモです。ボードの使用や入手先などについては 開発ボードのページ を参照してください。基本操作については WoT チュートリアル なども参考にしてください。
Dragon Board 410c は出荷時には Android OS が搭載されていますが Linaro Qualcomm Landing Team によって Debian および OpenEmbedded/Yocto の Linux 環境のメンテナンスがされており、ビルドするためのソースツリーやビルド済みイメージの公開がされています。
組み込み用途では OpenEmbedded 環境の採用が多いため、組込デバイス開発を想定したプロトタイピング開発環境として、こちらのイメージに Firefox 等のビルドを追加した環境を利用します。
まずは 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
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 ケーブルが充電専用 (通信できないもの) ではないか確認してください。
-
-
@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
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
-
Debian
- 3rd Party
- Android
- Ubuntu Core
- Windows 10 IoT
Qualcomm から最新の Android イメージが提供されています:
96Boards の Linaro からは Debian, Ubuntu のイメージが提供されています:
- http://www.96boards.org/db410c-getting-started/Downloads/README.md/
- http://builds.96boards.org/releases/dragonboard410c/linaro/debian/
- http://builds.96boards.org/releases/dragonboard410c/linaro/ubuntu/
基本操作、初期設定などについてです。より詳しい手順は WoT チュートリアル を参照してください。
- ターミナルの起動、リモート接続
- HDMI ディスプレイが使える場合は右クリックメニューから Terminals ⇒ Xterm を起動
-
96Boards UART Adapter Board や 96 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 を選択してください。
- ローカルネットワーク内で mdns などで認識するホスト名を
-
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
でモジュールのインストールをしてから
-
-
96Boards Display
- 7インチ HDMI 液晶タッチパネル (800x840, 静電容量方式)
- waveshare の 7inch タッチパネルモデル B と実質同じ: https://www.waveshare.com/wiki/7inch_HDMI_LCD_(B)
- waveshare の 7inch タッチパネルはより高解像度 (1024x600) のモデル C がある: https://www.waveshare.com/wiki/7inch_HDMI_LCD_(C)
-
96Boards UART
- シリアルコンソールログイン用に便利
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 互換部分の配線
- 96Boards の low-speed 40pin expansion コネクタに接続して使う。GPIO/I2C を Grove 用コネクタに変換し UART を USB Serial にする以外に、ATmega328P を搭載しており Arduino Uno 互換デバイスとしても利用可能。
-
既知の問題
- 現時点での Firefox のビルドでは WebGL, WebRTC は使用できません
- wget コマンドは BusyBox のビルドが入っているが HTTPS (SSL/TLS) に対応していないので curl などを使う
- node モジュールの追加インストールは出来ないことがあります (ボード上でコンパイルが通らないことがある)
-
動作確認&サンプルコードのある周辺機器
- Grove の GPIO, I2C, アナログセンサーの各モジュールについては Grove のページ を参照してください。
- GPIO デバイス
- 人体感知センサーモジュール HC-SR501 - 駆動電圧は 4.5-20V だが出力電圧が 3.3V であるため、電源は 5V の端子に、信号は 3.3V の端子に繋ぐ必要が靇ことに注意 モジュール解説の参考ページ
- 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
コマンドの方は (しても害はないが) 不要です。