ZYBOでXiLLinux2.0(導入編)

はじめに

  XillinuxはFPGASoC用に開発れされたlinuxシステムです。ここではZYBOを題材にXillinux2.0の導入方法を紹介します。

セミナー情報<広告>

実習・1日でわかる!FPGAプロセッサNios II入門(基礎編)

2018年9月21日(金)、CQ出版社セミナルーム
ハードとソフトのいいとこ取り開発に挑戦

詳しくはこちらへ

1.必要な機材、ツール

 ・FPGAボード Digilent社製ZYBO 購入先(秋月電子)

 ・周辺機器 MicroSDカード(4G以上) USBキーボード LANケーブル  VGAモニタまたはHDMIモニタ

       VGAケーブルまたはHDMIケーブル USBケーブル

       XillinuxのGUIを使用するときは USBハブ UBBマウス 5v電源

 

 ・開発ツール Xilinx社Vivado HL WebPACK Edition(無償) インストール方法

 ・MicroSDカード・イメージ書き込みツール win32diskimager ※インストールしてください。

 ・開発用PC Windos10またはWindows7(ともに64bit版)のインストールされたPC

       ※32bit版ではVivadoが起動しません。

       ※Linuxマシンも利用可能です。ただし、このページでは触れません。

2.Xillinuxのダウンロード

  Xillinuxのダウンロードデータはxillbus社のサイトにあります。xillinuxは教育・研究・評価に限り無償で利用可能です。 

①はZYBO用のハードウェア設計データの圧縮ファイル

②はillinuxのイメージデータの圧縮ファイル

①,②をダウンロードして解凍してください。

 

3.ハードウェア設計データの準備

3-1.設計プロジェクトの作成

Vivodo(ここではバージョン2017.4を使用)を起動します。メニューからTools→Run Tcl Scriptを選択

ダウンロードデータ①を解凍したデータのxillinux-eval-zybo-2.0c/vwerilog/xillydemo-vivado.tclを指定してOKをクリック。設計プロジェクトが作成される。

3-2.BITファイルの作成

左下のGenerate BitStreamをクリックすると論理合成・配置配線が実行されてFPGAのコンフィグレーションに使われるBitファイルが作成される。実行時間が長いので”4.ブート用MicroSDカードの作成”を先に進めてください。

Bitstream Generation Completedが表示されたらBITファイルは作成完了です。キャンセルをクックした後にVivadoを終了します。

4.ブート用MicroSDカードの作成

MicroSDカードをPCに接続します。

win32diskimagerを起動してImage Fileにダウンロードデータ②を解凍したxillinux-2.0.imgを指定、Deviceには接続したMicroSDカードのドライブ名を指定します。指定されたドライブはイメージファイルで上書きされ元のデータは無くなりますので、ドライブ名は間違えないでください。Writeをクリックすると書き込みが開始します。

指定したドライブに書き込みをするか聞かれるので

指定が合っていればYesをクリックする。

Write Successfulと表示されれば書き込み完了です。

一旦、MicroSDカードをPCから取り外して再度接続します。

 

MicroSDカードに二つパーティションが作られます。一つはuImageファイルがあるパーティション、もう一つはWindowsでファイルシステムが認識されなパーティションです。ファイルシステムが認識されなパーティションはファーマットするか聞かれるが、キャンセルを選んでフォーマットは実施しない。

uImageファイルがあるドライブへ解凍した設計データのxillinux-eval-zybo-2.0c/bootfilesにあるboot.bintとdevicetree.dtbをコピーする。さらにVivadoで作成したBitファイル(xillinux-eval-zybo-2.0c/verilog/vivado/xillydemo.runs/impl_1/xillydemo.bit)をコピーする。完成したMicroSDカードにはuImage,boot.bint,devicetree.dtb,xillydemo.bitがある。

5.Xillinuxの立ち上げ

5-1.周辺機器の接続

ZYBOに

 MicroSDカード

 USBキーボード

     LANケーブル

 VGAケーブルとVGAモニタ

 またはHDMIケーブルとHDMIモニタ

 USBケーブル(電源に使用)とPC

 または5V電源

 ※使用する電源に応じてJP7を 切り替えてください。

5-2電源投入

ZYBOの電源を入れると立ち上がりモニタに起動画面が表示される(右参照)。"root@localhost:~#"とコマンドプロンプトが表示されれば起動成功です。

”uname -a"と入力するとシステム情報が表示されます。

~立ち上げ時のログ表示~

You may communicate data with standard FPGA FIFOs in the logic fabric by
writing to or reading from the /dev/xillybus_* device files. Additional
pipe files of that sort can be set up with a custom Xillybus IP core.

For more information: http://www.xillybus.com.

To start a graphical X-Windows session, type "startx" at shell prompt.

root@localhost:~# uname -a
Linux localhost.localdomain 4.4.30-xillinux-2.0 #1 SMP PREEMPT Tue Dec 5 11:54:25 IST 2017 armv7l armv7l armv7l GNU/Linux


5-2.パスワードの設定

passwdコマンドでパスワードを設定します。

ネットワーク経由でログインするときはこの

root@localhost:~# passwd
Enter new UNIX password:"自分で決めたパスワード"
Retype new UNIX password:"自分で決めたパスワード"
passwd: password updated successfully


5-3.ネットワークの確認

ifconfgコマンドでネットワーク情報を表示します。接続しLANにDHCPサーバーがあればIPアドレスが割り振られます。私の環境では:192.168.XX.XX が割り振られていました。(実際にはXXには数字が入ります)。

root@localhost:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0a:35:00:01:22
          inet addr:192.168.XX.XX  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::b7b2:1124:XXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:86 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9425 (9.4 KB)  TX bytes:9769 (9.7 KB)
          Interrupt:31 Base address:0xb000

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:63 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:5363 (5.3 KB)  TX bytes:5363 (5.3 KB)


5-4.アップデート

apt-get update”と入力するとネットワーク上の最新のパッケージをインストールしてくれます。

 

root@localhost:~# apt-get update
Hit:1 http://ports.ubuntu.com/ubuntu-ports xenial InRelease
Hit:2 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:3 http://ports.ubuntu.com xenial InRelease
Reading package lists... Done
root@localhost:~#


5-5.終了

haltコマンドを実行するとシステムを停止します。”System halted"表示されたら電源を切ります。

root@localhost:~# halt

~ログ表示~
[  747.864432] reboot: System halted


6.Ubuntディスクトップを使いた場合

ZYBOのUSB OTGにUSBハブを接続してUSBキーボードとUSBマウスを接続します。電源はUSB給電で容量が不足気味で動作が不安定になるので、外部電源5Vの2A程度のもの接続します。

ZYBOの電源を入れてLinuxが立ち上がったら"startx"と入力します。しばらくするとUbuntディスクトップが起動します。