HelioボードでLinuxをブートする
はじめに
Helioボードは、FPGAとARMプロセッサが同居しており、Linuxをブートできます。 今回はHelioボードでLinuxをブートできるようにします。 HelioボードにLAN接続することで、同梱のWebサーバやsshdにPCからアクセスできるようになります。
準備
以下を事前に用意しておきます。
- SDカードリーダー
- LANケーブル
このSDカードリーダーは、SDカードアダプタを使わなくてもMicro SDカードを直接読み書きできるので便利です。
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を起動して、イメージファイルを書き込みます。
各種接続の準備
HelioボードのPowerスイッチがOFFになっていることを確認して以下の通り機材を準備します。
DCジャックに電源ケーブルを接続します。
SDカードを挿入します。
LANケーブルを接続します。DHCPからIPアドレスをアサインしてもらうため、WiFiルーターのLANポートと接続しました。
USBケーブルは、J9 (UART)に接続します。ここでPCがデバイスを認識します。
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に予め書き込んでおく必要があります。 詳しくは次回紹介したいと思います。