Kyoto Maker

Software & Hardware Laboratory Found In Kyoto, 2015.

HelioボードでLinuxをブートする

はじめに

Helioボードは、FPGAとARMプロセッサが同居しており、Linuxをブートできます。 今回はHelioボードでLinuxをブートできるようにします。 HelioボードにLAN接続することで、同梱のWebサーバやsshdにPCからアクセスできるようになります。

準備

以下を事前に用意しておきます。

  • SDカードリーダー
  • LANケーブル

このSDカードリーダーは、SDカードアダプタを使わなくてもMicro SDカードを直接読み書きできるので便利です。

f:id:fixme:20150111225024j:plain

LANケーブルは、必須ではありませんが、HelioのLinuxイメージにデフォルトでセットアップされているWebサーバとsshdサーバ試したいので用意することにしました。

Win32DiskImagerのインストール

MicroSDブートディスクを書き込むために必要になるのでインストールしておきます。 こちらからダウンロードしました。

Tera Termのインストール

シリアル接続するためにTera Termが必要になるのでインストールしておきます。

USB⇔シリアル接続のためのデバイスドライバのインストール

こちらからダウンロードしました。 64ビット環境なので、展開したzipファイルに含まれるCP210xVCPInstaller_x64.exeを実行します。

MicroSDブートディスクの作成

Getting Startedの「3. Creating a MicroSD boot disk from pre-built ALL in One Image」参考にMicroSDブートディスクを作成します。

Macnica Helio SoC Evaluation Kitからリンクされているhelio_gsrd_sdimage_v3.13.tar.gzが最新のようなので、こちらを使用します。

アーカイブを展開してイメージファイルを抽出します(cygwinを使いました)。2GBと結構大きいです。

$ tar zxvf helio_gsrd_sdimage_v3.13.tar.gz
helio_gsrd_sdimage_v3.13.img

$ ls -lh helio_gsrd_sdimage_v3.13.img
-rw-r--r--+ 1 yoshinori None 2.0G 9月   4 16:27 helio_gsrd_sdimage_v3.13.img

Win32DiskImagerを起動して、イメージファイルを書き込みます。

f:id:fixme:20150111225230p:plain

各種接続の準備

HelioボードのPowerスイッチがOFFになっていることを確認して以下の通り機材を準備します。

DCジャックに電源ケーブルを接続します。

SDカードを挿入します。

LANケーブルを接続します。DHCPからIPアドレスをアサインしてもらうため、WiFiルーターのLANポートと接続しました。

f:id:fixme:20150111231720j:plain

USBケーブルは、J9 (UART)に接続します。ここでPCがデバイスを認識します。

f:id:fixme:20150111225237p:plain

Tera Termを起動し、COM5のBaud Rateを115200にして接続します。

Linuxのブート

HelioボードのPowerスイッチをONにするとTera TermにLinuxのブートシーケンスが表示された後にログイン受付状態になります。

Poky 8.0 (Yocto Project 1.3 Reference Distro) 1.3 socfpga ttyS0

socfpga login:

IPアドレスDHCPからアサインされているのを確認しました。

root@socfpga:~# ifconfig
eth0      Link encap:Ethernet  HWaddr a2:83:a1:16:02:17
          inet addr:192.168.11.7  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1240 (1.2 KiB)  TX bytes:1248 (1.2 KiB)
          Interrupt:152

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

PCのブラウザから「http://192.168.11.7」(もちろん環境に依存します)にアクセスするとデモページが表示されました。

また、sshdが動いているので、Helioにsshで接続できることを確認しました。

おわりに

実はHelioボード上のWebデモページにLEDの制御のデモがあります。 これはWebアプリ(CGI)からFPGA側のLEDを制御するというもので、大変興味深いです。 しかし、残念ながら、今回の手順だけでは動きません。 Golden Hardware Reference Design (GHRD)をFPGAに予め書き込んでおく必要があります。 詳しくは次回紹介したいと思います。