DragonBoard 410C へのUbuntu のインストール(2015/07/09)
Raspberry Pi の兄貴分のようなクアッドコアの64ビットARMを使ったシングルボードコンピュータの DragonBoard 410C が到着しました。 発注が 2015/06/25、到着が 2015/07/06 でした。本体 75 ドルと送料 43.99ドルで計 118.99ドル、 15273円でした。 64ビットの ARM といえば iPhone5 のApple A7、iPhone6 のApple A8 がありますが、自由にプログラミングできる個人で気軽に購入できる価格の Arm64 のコンピュータは初めてです。
Qualcomm のDragonBoard 410C は、 Linaro が作った 96boards という オープンな規格に合わせて作られたシングルボードコンピュータの一つです。 Linaro は ARMアーキテクチャのCPUコアで動作するLinuxの最適化を行っている組織でARM系のSoC(CPUコアと周辺回路を一緒にしたチップ) 関連の企業がスポンサーになっているようです。
複数のメーカーから共通規格のボードを販売するという 昔のMSX のような感じです。
DragonBoard 410C に ディスプレイのHDMI ケーブルとUSBマウス、USBキーボードを接続して、電源としてACアダプタ をつなぐと Android 5(Lollipop)が起動しました。 最初から内蔵の eMMC (フラッシュメモリ) に Androidがインストールされています。 マウスを使って普通にAndroidが使えます。 DragonBoard 410C には無線LAN と Bluetooth が基板上に実装されていますが、 技適マーク(特定無線設備の技術基準適合証明等のマーク)がついていないので、電波を出すと違法になります。 設定の画面で確認すると無線LANもBluetoothも初期設定が OFF になっているのでセーフです。
DragonBoard 410C をもう少し近くで見てみます。 DragonBoard 410C は電源として 6.5 - 18V の直流電源を使います。DCジャックコネクタ(PJ-041H)が日本で標準的に使われている 外径5.5㎜/内径2.1㎜のプラグではなく、外径4.75㎜/内径1.7㎜のプラグを使うタイプなので、 変換アダプタ を使って電源を供給しています。 今回使った電源は、12V の ACアダプタ(3.8A) です。 消費電力は 4W 程度 (ワットチェッカー による実測値) でした。
写真中央のQUALCOM MSM8916と書いてあるチップが CPU で、Qualcomm製のSnapdragon 410 という64ビットでクワッドコアの Cortex A53 です。 写真の左側のチップ(SanDisk) は8GBのフラッシュメモリ(eMMC)でOSを書き込んで使います。 MicroSD に格納した OS から起動するのではなく、基板上のフラッシュメモリから起動する形になっています。
DragonBoard 410C には Wifi と Bluetooth が実装されていて、下の写真がアンテナのパターンになっています。 技適マークがついていないので、電波を出すと違法になります。(2015/11/20 追記: 記事末を参照<。)
DragonBoard 410C と Raspberry Pi の比較
Raspberry Pi Model B+ を並べてみました。 Raspberry Pi のほうがUSBコネクタと有線LANコネクタのせいで大きく見えますが、基板のサイズは同じです。
ボードの仕様をRaspberry Pi model B+、Raspberry Pi2 model B、DragonBoard 410C で比べてみます。
ボード | Raspberry Pi B+ | Raspberry Pi2 | DragonBoard 410C |
---|---|---|---|
チップ名称 | BCM2835 | BCM2836 | SnapDragon410 |
プロセッサアーキテクチャ | ARMv6 | ARMv7 | ARMv8 |
命令セット | AArch32 | AArch32 | AArch32+ AArch64 |
コア名称 | ARM1176JZF-S | Cortex-A7 | Cortex-A53 |
コア数 | 1 | 4 | 4 |
浮動小数点演算 | VFPv2 | VFPv4 + NEON | VFPv4 + NEON |
クロック | 700MHz | 900MHz | 1200MHz |
メモリ | 512MB | 1GB | 1GB |
GPU | VideoCore IV | VideoCore IV | Adreno 306 400MHz |
eMMC | - | - | SanDisk 8GB |
microSD slot | 1 | 1 | 1 |
USB 2 | 4 | 4 | 2 |
Ethernet | 100M | 100M | - |
Wifi | - | - | 802.11a/b/g/n 2.4GHz |
Bluetooth | - | - | 4.1 |
GPS | - | - | 1 |
Ubuntu Linux のインストール
最初からインストールされている Android を Ubuntu Linux に変更するには、MicroSDカードにOSのイメージを書き込んで、DragonBoard 410Cのディップスイッチを変更し、起動して内蔵のeMMチップに書き込み、ディップスイッチを変更して再起動という手順です。
作業を行うSD カードはデータがすべて初期化されるので、新しいカードやデータが不要で消去してもいい SD カードを使って下さい。
MacBook Pro17 (MacOSX 10.10.4) でインストール作業した記録です。 MacOS X ではデバイス名の指定方法が異なるだけで、Linuxと同じく dd コマンドを使ってSDカードに ディスクイメージを書き込みます。 以下の例は、私の MacBook Pro17 で作業した記録です。今回の作業では SDカード が /dev/disk2 で認識されています。
まず、作業した MacOSX のバージョンを記録しておきます。
$ uname -rsv
Darwin 14.4.0 Darwin Kernel Version 14.4.0: Thu May 28 11:35:04 PDT 2015;
root:xnu-2782.30.5~1/RELEASE_X86_64
MacBook Pro17 に USB接続のmicroSDカードリーダを接続して、SDカードをアンマウントします。
$ df -k Filesystem 1024-blocks Used Available Capacity iused ifree %iused Mounted on 略 /dev/disk2s1 15343616 2400 15341216 1% 0 0 100% /Volumes/NO NAME $ diskutil unmount /dev/disk2s1 Volume NO NAME on disk2s1 unmounted
fdisk で一応 MBR を書き込みます。
$ sudo fdisk -i /dev/disk2
Password:
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
-----------------------------------------------------
------ ATTENTION - UPDATING MASTER BOOT RECORD ------
-----------------------------------------------------
Do you wish to write new MBR and partition table? [n] y
パーティションを確認。
$ sudo fdisk /dev/disk2
Disk: /dev/disk2 geometry: 1911/255/63 [30703616 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*1: AB 0 1 1 - 1023 254 63 [ 63 - 16384] Darwin Boot
2: AF 1023 254 63 - 1023 254 63 [ 16447 - 30687169] HFS+
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
「 DragonBoard410c_sdcard_install_ubuntu*.zip 」という 429MB のファイルを96boards の DragonBoard 410C のページの「Downloads」タブで表示されるページからダウンロードします。 zipファイルを展開してできた SDカードイメージを確認します。
$ ls -l
-rw-r--r--@ 1 jun staff 2621440000 6 18 17:41 db410c_sd_install_ubuntu.img
-rw-rw-r--@ 1 jun staff 14026 6 18 17:41 license.txt
この 2.6GB の db410c_sd_install_ubuntu.img をSDカードに書き込みます。 この SDカードのイメージを DragonBoard 410Cの機能でボードの内蔵フラッシュに書き込んで使います。SDカードから直接 OS を起動する Raspberry Pi と異なります。
$ sudo time dd bs=1m if=db410c_sd_install_ubuntu.img of=/dev/rdisk2
2500+0 records in
2500+0 records out
2621440000 bytes transferred in 237.015801 secs (11060191 bytes/sec)
237.04 real 0.01 user 1.93 sys
基板の裏に小さなディップスイッチがあります。最初はすべてOFFになっています。写真の上がON(1)になります。真ん中の2つを上(0110)に切り替えます。
マウスとキーボードをUSBで DragonBoard 410C につなぎ、ディスプレイのHDMIケーブルを接続します。OSを書き込んだ SD カードを差して電源を接続するとしばらくしてインストールするイメージを指定するダイアログが開きます。
インストールするOSイメージの選択画面のようですが、Ubuntu 15.04 の1つだけなので、インストールボタンをクリックします。
基板に内蔵されているフラッシュメモリ (eMMC) のデータをすべて上書きしてもいいかと確認してきます。 OSを変更するには上書きするしかないので「Yes」を押します。
書き込みには数分がかかります。
内蔵のフラッシュメモリへの OS の書き込みが終って、「OK」を押すとリブートしますが、基板の裏のディップスイッチを「0010」に変更する必要があります。
Ubuntu 15.04 (Vivid Vervet) の起動
再起動すると Ubuntu 15.04 (Vivid Vervet) のログイン画面が表示されます。 Ubuntuといっても通常版の茶色系の画面ではなく、ウィンドウマネージャ(デスクトップ環境)に LXDE を使った青系の Lubuntu のデスクトップです。
これで普通のデスクトップ Linux になりました。
無線LAN は技適マークが付いていないので使えません。Wifi のカーネルモジュールは「wcn36xx」です。 lsmod コマンドで表示されている場合は /etc/modprobe.d/blacklist.conf に「blacklist wcn36xx」の行を追記して、ドライバを組み込まないようにします。
有線ネットワークを手元にあった Wii専用 LANアダプタ を試してみたところ、何の設定も不要で 有線LAN が使えるようになりました。
速度の比較や Arm64 のアセンブラはまた後日。
Arm64 のアセンブラで書いた Tiny Basic はこちら(2015/10/05)。
国内 https://www.chip1stop.com/ でも販売開始のようです。こちらは技適マーク(工事設計認証)取得済とのことです(2015/11/20)。