Zybo 開発環境構築記
長らくZyboを眠らせたままでしたが、ちょっとだけ余裕が出てきたのでRealTime-GPUの設計を再開いたしました次第ですが、MIPI CSI-2 に挑戦したくて、Zybo Z7 を購入し、折角なのでちゃんと Zybo を Zybo らしく使おうと、最新の環境を構築しなおしました。
(なにしろ今までPSをWindowsのみの開発環境で XilinxSDK から standalone でしか使っていなかったので、Etherなど活用できずに、ただの内部シーケンサとしての利用でとまっていましたので。もったいなかったです)
その際のWindows7上で作成した環境を備忘録程度に書いておきます。
参考にさせていただいた記事の著者の皆様にこの場をお借りして御礼申し上げます。
なお、作業できたときだけ、ちょっとづつ進めていたので、いろいろと思い出せないところがあるのですが、一連の情報へのポインタになればといったところです。
どちらかというと、私のようなRTL開発はしたことあるけど、PS上にLinuxを構築する方法が分からないという人向けかもしれません。PSだけでも Raspberry Pi 的な世界が作れますので、それにFPGAが繋がると非常に楽しい世界が産まれそうです。似たような境遇の方の参考になれば幸いです。
[とりあえず Zynqで Linux を起動する最短コース]
1. Zybo を買う
Zybo と Zybo Z7 と Zybo Z7-20 の3種類あります。
違いの一覧表は
https://reference.digilentinc.com/reference/programmable-logic/zybo-z7/migration-guide
にあえります。 私は、Z7-20を買うのに、RSオンラインとDigikeyと秋月を比較しましたが、消費税と送料を加味すると秋月が一番安かったです。
私は手元のものを使いましたが、SDカード/microUSBケーブル/ACアダプタも必要になるので、ご注意ください。
ACアダプタは microUSBからの給電能力が十分なら不要かもしれません。
2. VirtualBoxに Ubuntu 16.04 LTS をインストール
これはあちこちに情報があると思いますので、割愛します。
3. ビルド済みイメージ
結局、下記をそのまま利用させていただきました。
FPGA+SoC+Linux+Device Tree Overlay+FPGA Region(ブートイメージの提供)
https://qiita.com/ikwzm/items/7e90f0ca2165dbb9a577
非常に使いやすいです。
SDカードのパーティーションは、
apt install gparted
などで gparted などを入れると良いかと思います。
SDカード用のUSBアダプタを使って、VirtualBoxの[デバイス]->[USB]から選択すれば、Ubuntuからマウントできます。
4. 電源を入れて起動
Zybo の UART にUSBを挿しておけばCOMとして認識されます。115.2kbps で接続すればログイン画面まで進むはずです。
初期ユーザーが fpga (パスワードもfpga) なのでログインします。
/sbin/ifconfig
で DHCPでアドレスが取れていれば、IPアドレスが確認できます。
あとは apt が使えるので何でも好きなものが入れられます。
sshでもログインするようにすればusb接続も不要になります(ACアダプタは必要)。
adduser で追加のアカウントを作っても良いと思います。
5. X-Windowの設定
下記を参考にさせていただきました。
FPGAの部屋 ZYBOのLinaro Ubuntu のXウインドウの表示をパソコンで行う(Xmingを使用)
http://marsee101.blog19.fc2.com/blog-entry-2947.html
とても快適になります。
6. sambaの設定
sudo apt-get install samba
sudo pdbedit -a <user>
でユーザー追加
/etc/samba/smb.conf を編集
[homes] の
read only を no に変更
sudo systemctl restart smbd nmbd
これで、Windowsからアクセスできるようになります。
[開発ツールのインストール]
ikwzm 様イメージだといきなり起動できてしまいますが、開発ツールも必要ですね。
1. SDSoC 2017.4 をインストール
バウチャーつきを買うとSDSoCのライセンスもついてくるようです。
以前にWindowsで先にVivadoを入れるとSDSoCが入らなかった記憶があります。SDSoCを入れるとSDSoCにはVivadoが含まれるようです。
2. VirtualBoxのUbuntuにPetaLinuxをインストール
下記を参考にさせていただきました。
ZYBO (Zynq) 初心者ガイド (8)
https://qiita.com/take-iwiw/items/6e6915f7318689818368
3. ボードファイルのインストール
下記を参考にさせていただきました。
FPGAの部屋 Digilent社のボード・ファイルのインストール
http://marsee101.blog19.fc2.com/blog-entry-3365.html
gitでも取得できます。
git clone https://github.com/Digilent/vivado-boards.git
なお、Block Design での PSの設定は Zynqコアを置いただけでは反映されず、「Run Block Automation」を「Apply Board Preset」にチェックをつけて実行した段階で設定されるようです。
[PLの開発]
PSが動いただけでも、PSに繋がる各種デバイスは利用できるので、ちょっとしたRaspberryPi 的な環境になります。
が、私のような人間だと、「じゃあPLは、XilinxSDKのstandaloneの時と違ってどうやって使うの?」となります。ハードウェア空間はMMUでプロテクトされている上に、論理アドレスと物理アドレスが違うわけで、Linuxのデバイスドライバなんて超ハードルが高いわけです。
で、UIOという以前軽く触っただけのものに本格的に手を出します。
Device-Treeを書いて と UIOを使えばいいようです。
とても分かりやすい記事が下記です。
https://qiita.com/take-iwiw/items/da91ce4dc2a8a8df3c0a
とても参考にさせていただきました。
次はこれをどう反映させるかです。
本来の配布イメージの趣旨としては FPGA region を使うべきなのですが、初心者な私にはこれまたハードルが高くてまだ試していません。
でもひとまず確実な方法があります。SDカードを書き換えてリブートしちゃえば良いのです。
ということでそのやり方ですが、FAT32のパーティーションにある、bitファイルと dtb ファイルを置き換えるなり、新しい名前で置いてuEnv.txtを書き換えるなりすればOKのようです。
他は
ZYBO (Zynq) 初心者ガイド (1) 開発環境の準備
https://qiita.com/take-iwiw/items/966f252f6ca954aff08b
をざっとこなせば概ね解決するかと思います。
[おまけ]
sambaが標準で入っているの知らなかった&SDが8Gで心もとなかった時に、SFTPでのマウントを試みました。
調べた範囲が下記のツールです。
・ dokan + win-sshfs => 試したけど自分の環境では動かなかった
・ SFTP Net Drive
Free版(非商用限定)と Pro版がある模様、Free版はメールアドレス登録が必要
Free版を試しましたが快適でした。ただマウント中にZyboを落とすとおかしくなりました。
・ExpanDrive 試してません&有料のようですが、調べた限り使い勝手はよさそうな感じ
PetaLinux ベタで環境作る場合などで、sshだけはあるとか、ネットに繋ぐのでsambaではセキュリティー的に不安というときはsshでのマウントも便利そうです。
[おまけ2]
X-Windowが動いてうれしくて、xneko動かしてみました(懐)
xneko.tar.gz とってくる
% sudo apt install xutils-dev
% sudo apt search Xlib.h
% xmkmf
% make
% sudo make install
いろいろ抜けていそうですが、引き続き、情報足していければと思います。
« ARメガネにおけるハイフレームレートの必要性 | トップページ | Zynq の面白さとハードルの高さと(駄文) »
「FPGA」カテゴリの記事
- LUT-Networkの蒸留とMobileNet風構成とセマンティックセグメンテーション(2020.03.09)
- LUT-Networkの蒸留(Distillation)について(2019.12.29)
- FPGAでのDNN(Deep Neural Network)の整理(LUT-Netまとめ)(2019.12.15)
- LUT-NetのFPGAリソースについて(2019.12.08)
- MNIST認識のリアルタイム動作環境更新(2019.09.02)
この記事へのコメントは終了しました。
« ARメガネにおけるハイフレームレートの必要性 | トップページ | Zynq の面白さとハードルの高さと(駄文) »
コメント