まるさや

技術っぽいことかきます

Zynqberryで公式Debianを動かしてみる


どうも,まるさ@maruuusa83です.




なにかボードを振り回したい

なんかRasPiとかArduinoとか流行りのアイテムって,買うだけ買って放置しちゃう系なので, たまにはちゃんと使いたいなあなんておもいます.

というわけで,最近研究がら使えるようになったZynqberryをとりあえず動かせるようにします.







Zynqberryってなんだ

トレンツエレクトロニック社が作っているシングルボードコンピュータ的なやつです.

Raspberry Pi2互換で,SoCにZynq XC7Z010を積んだボードです.

なぜだかBoot ModeがQSPIモードに固定されているので,Linuxを起動するにはそれらしいブートローダを 内蔵のフラッシュに書き込む必要があります.

最初が大変.

f:id:maruuusa83:20161108191651j:plain Zynqberryってこんなの


でも日本語のチュートリアルもあるのでちょっぴり安心.

www.trenz.jp







とりあえずSDにイメージを焼く

ここからは,チュートリアルの内容に基いて進めていきます. 筆者なりに内容をまとめなおしていますが,基本的にはチュートリアルと変わらないことを書いています.

トレンツのサポートから必要な諸々を落としてきます.


http://www.trenz-electronic.de/download/d0/Trenz_Electronic/d1/TE0726/d2/Reference_Design.htmlwww.trenz-electronic.de


次のものを落としてください.

zynq-debian.imgをWin32DiskImagerとかで適当なmicro SDに焼きます.

2GBしか消費しないのであまり大きくないmicro SDで大丈夫です.


f:id:maruuusa83:20161108192648p:plain diskmgmt.mscで見た様子


Windowsではリムーバブルドライブの類は先頭のパーティションしか見えませんから,11MBくらいのドライブに見えます.


f:id:maruuusa83:20161108193459p:plain


ここに先ほど落としてきた残りのimage.ubsystem.dtbを置いてください.

これでSDの準備は完了しました.







内蔵Flashにu-bootを突っ込む

ZynqではいくつかBoot Modeがあります.が,なぜかZynqberryではQSPIモードに固定されているので,ブートさせたいソフト は必ず内蔵のSPIフラッシュメモリに置く必要があります.

このフラッシュは,USBで繋いだらFAT32のディスクに見えるとかそういう便利な機能はついてないので,がんばって書き込む 必要があります.

今回はLinuxを動かしたいので,フラッシュにブートローダを置いてあげる必要があります.


とりあえず先ほどのページからブートローダとリファレンスデザインを持ってきます.

  • Debian8.4 > Flash > BOOT.bin
  • 2016.2 > test_board > te0726-test_board-vivado_2016.2-build_xxxxx.zip

zipを展開するとtest_boardフォルダができます.

test_bard/prebuilt/boot_images/te0726-mの下にu-boot-debianフォルダを作って,その中にBOOT.binを置いてください.


test_board直下のdesign_basic_settings.cmdを編集します.

- @set VIVADO_VERSION=2016.2
+ @set VIVADO_VERSION=2016.3

- @set PARTNUMBER=LAST_ID
+ @set PARTNUMBER=3

- @set SWAPP=NA
+ @set SWAPP=u-boot-debian

お察しの通り,フラッシュの書き込みにVivadoを要求してきます.

もしVivadoが入ってないのであれば,インストールする必要があります.


設定が完了したので,同じくtest_board直下のprogram_flash_binfile.cmdを実行します.

ありれ,なにやらエラーが.


f:id:maruuusa83:20161108221444p:plain Booting from configuration memory device unsuccessful


なんか書き込みが止まってしまいます.

色々試してみましたが,どうも同じところで止まってしまいます.

仕方がないので,とりあえず無視してTeraTermでつないで,SDを挿して再起動してみました.

すると・・・


f:id:maruuusa83:20161108223249p:plain ブートするじゃないか







ログインして色々調べる

なんかよくわからないエラーがありましたが,無事Debianがブートしました(笑) Vivadoが2016.2じゃないことが原因でしょうか・・・

Baud rateを115200でシリアルで接続して,最初に作ったSDを挿してZynqberryを再起動すればアクセスできます.

root/rootでログインできました.ちょっと色々みていきます.

なんかこの時点で既にボードがほくほく温かいです.


ネットワークとか

LANのケーブルつないで,とりあえずifconfigしてみる.


f:id:maruuusa83:20161108232119p:plain ifconfigの結果


普通にDHCPでIPもらってきてますね.すばらしい.

というかシリアルで接続できるとディスプレイ用意しなくてもネットワーク設定できて最高ですね!!!!!


CPUとかメモリとか

nproccpuinfomeminfoを見てみました.


f:id:maruuusa83:20161108233929p:plain 上からnproc-cpuinfo-meminfo


あっクロック出ないのか・・・

トレンツのチュートリアルでは次のように言っているけど,こんなに遅いの?ほんと?

PS(CPU部分)のクロックは33.3333MHzですが、PLへはボード上ではクロックが接続されていないので、PLを動作させるにはPSが動作して、内部でFCLKをもらう必要があります。

参考になるかわかりませんが,ウチのi3-4130@3.40GHzのBogoMIPSは6799.62でした.

メモリはきちんと512MB全部みえるみたいですね.


/devのなかみ

どんなデバイスがいるのか覗いてみました.


f:id:maruuusa83:20161108235847p:plain ls /devの結果


おっ,xdevcfgがいますね.ということはPLのコンフィグ用のドライバが入っているってことかな?

あとで実験してみたいですね.







というわけで,ZynqberryをLinuxとして動くようにするまでやってみました.

これから少しずつ色々やってみようと思います.

ZedBoardとかより全然楽カモ



それでは

今回はこのへんで ノ


まるさ