DragonBoard 410cを借りることができた。 実はかなり前から借りていたのだが、個人的に忙しく触る時間が作れないでいた。
このボードは、RaspberryPi3よりも前に出回っていて、かつ、Cortext-A53をコアに搭載しており、WifiもBluetoothもオンボード。 借りたボードは技適取得済みという、なんとまぁ、RPi3より前に手元にあったのなら、なぜ、RPi3よりも前に遊び倒していないのかという代物。
しかも!配布されているLinuxOSのイメージはAArch64!なので、現状32bit版OSしか配布されていないRPi3よりも先に64bitの世界が体験できる。
オフィシャルで配布されているOSは、AndroidとLinux(Linaro)だが、もちろんここではYoctoのイメージを焼いてみる。
イメージの作成
ここでYoctoのイメージの作成手順が公開されている。
筆者はUbuntu 15.04で作業している。
依存パッケージ
参考にしたサイトでは、以下のパッケージをインストールする様に書いてあるが、 筆者の環境では、明示的にインストールした覚えがないがインストール済みになっていた。
$ sudo apt-get install git $ sudo apt-get install whiptail $ sudo apt-get install dialog
それ以外では、Yoctoを使用するための最低限の環境をインストールする必要がある。
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath libsdl1.2-dev xterm
repoのインストール
DragonBoardのYocto環境の構築ではrepoコマンドを使用している。
repoは複数のgitのリポジトリを一括で管理できるコマンドで、主にAndroidの開発で見かける事が多いが、一部他のメーカーのボードでYocto環境を構築する際にも使用されている。
$ mkdir -p ${HOME}/bin $ curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo $ chmod a+x ${HOME}/bin/repo $ export PATH=${HOME}/bin:${PATH}
Ubuntu 15.04では、${HOME}/.profileで コード 1
の様に記述されているため、
${HOME}/binが存在すると、自動的にPATH
に含まれる様になっているようだ。
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
作業ディレクトリ
筆者は${HOME}/work/yocto
で作業している。
$ cd ${HOME}/work/yocto $ mkdir oe-qcom && cd oe-qcom $ repo init -u https://github.com/96boards/oe-rpb-manifest.git -b jethro $ repo sync $ source setup-environment build
bitbake
基本的に、oe-qcomの場合は、local.confやbblayers.confの設定は、
setup-environment
がやってくれているため、そのままbitbakeを実行することができる。
$ bitbake rpb-console-image
イメージの書き込み
tmp-rpb-glibc/deploy/images/dragonboard-410c
に作られた次の2つのファイルを書き込む。
rpb-console-image-dragonboard-410c.ext4.gz
boot-dragonboard-410c.img
fastbootのインストール
イメージの書き込みにはfastboot
を使用する。Ubuntu
15.04では次のコマンドを実行してインストールする。
$ sudo apt-get install -y android-tools-fastboot
ボードの電源を切った状態で、J4コネクタ(図 1)にUSBケーブルを接続し、PCのUSBポートと接続します。次に S4ボタン(図 2)を押しながら電源を入れ、数秒後に離す。
図 1:J4コネクタ
図 2:S4ボタン
以下のコマンドを実行して、fastbootからデバイスが見えているか確認する。
$ sudo fastboot devices
デバイスが見えている場合は、以下のように8桁の16進数が表示される。
$ sudo fastboot devices 11e02318 fastboot
ブートローダのダウンロードとパーティション設定
eMMCのパーティション設定を行うためにここからブートローダのファイルをダウンロードする必要がある。
wget
で取得する場合は、以下のコマンドを実行する。
$ wget http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/dragonboard410c_bootloader_emmc_linux-46.zip
zip形式で圧縮されているので、次のコマンドで解凍する。
$ unzip -d bootloader dragonboard410c_bootloader_emmc_linux-46.zip
PCとボードが接続された状態で、解凍したファイルの中にあるflashall
を実行する。
$ cd bootloader $ sudo ./flashall
イメージの書き込み
次のコマンドを実行し、ルートファイルシステムとカーネルイメージを書き込む。
$ cd ${HOME}/work/yocto/oe-qcom/build/tmp-rpb-glibc/deploy/images/dragonboard-410c $ gzip -d < rpb-console-image-dragonboard-410c.ext4.gz > rpb-console-image-dragonboard-410c.ext4 $ sudo fastboot flash rootfs rpb-console-image-dragonboard-410c.ext4 $ sudo fastboot flash boot boot-dragonboard-410c.img
起動
電源を切り、J4コネクタからUSBのケーブルを抜いて、電源を再度投入するとOSが起動する。(図 3)
図 3:ブート画面