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 のコンピュータは初めてです。

QualcommDragonBoard 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 900MHz1200MHz
メモリ 512MB 1GB 1GB
GPU VideoCore IVVideoCore IVAdreno 306 400MHz
eMMC --SanDisk 8GB
microSD slot 1 1 1
USB 2 4 4 2
Ethernet 100M100M-
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)。

Arm64仮想マシンの作成

HiKey の入手と Debian のインストール

Orange Pi PC2 の性能と Ubuntu のインストール