PetaLinux

Docker 上のUbuntu 16.04 のPetaLinux 2018.2 でビルドしてみた1
    ”Ultra96-PYNQをビルドしてみた”のDocker Container にはPetaLinux 2018.2 がインストールしてあるので、試しにビルドを行う。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2 でビルドしてみた2
前回は、”Ultra96-PYNQをビルドしてみた”のDocker Container にはPetaLinux 2018.2 がインストールしてあるので、試しにビルドを行うということで、petalinux-build までを行った。今回は残りのビルドをやっていこう。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2 でビルドしてみた3
前回は、uImage と BOOT.BIN を生成した。petalinux-boot には失敗してしまったが、Ultra96 をブートするに必要なファイルは揃った。そういう訳で、今回はMirco SD カードにファイルを書いてUltra96 でブートしてみよう。

Docker上ののUbuntu 16.04にPetaLinux 2018.3をインストールする
武内先生の”Petalinux2018.3環境を整える”を参考にさせていただいて、Docker 上のUbuntu 16.04 にPetaLinux 2018.3 をインストールしてみよう。やはりエラーになってしまった。
Docker上のの Ubuntu 16.04にPetaLinux 2018.3をインストールする2(インストールできた)
前回は、武内先生の”Petalinux2018.3環境を整える”を参考にさせていただい て、Docker 上のUbuntu 16.04 にPetaLinux 2018.3 をインストールしてみたが”ERROR: Failed to install Yocto SDK for aarch64.”でエラーになってしまってインストールできなかった。全く原因は分からない。そこで、PetaLinux 2018.2 をインストールしてみて、その結果から何のパッケージが足りないか?を探って行った。結局PetaLinux 2018.2 がインストールできたら、PetaLinux 2018.3 もインストールできた。
Docker 上のUbuntu 16.04 のPetaLinux 2018.3でRootFSを使用するUltra96のPetaLinuxをビルドする1
Docker コンテナにUbuntu 16.04 のPetaLinux 2018.3をインストールできたので、今度はUltra96 用のPetaLinux をビルドしてみよう。
Docker 上のUbuntu 16.04 のPetaLinux 2018.3でRootFSを使用するUltra96のPetaLinuxをビルドする2
Ultra96 用のPetaLinux 2018.3 をMicroSD カードの第2パーティションに入れたRoot File system でブートしたいということで前回は、petalinux-build までやってみた。今回は、uImage, BOOT.BIN を作成してUltra96 ボードでMicroSD カードから起動した。しか し、”Waiting for root device /dev/mmcblk0p2...”で止まってしまい、Linux をブートできなかった。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2でRootFSを使用するUltra96のPetaLinuxをビルドする
Ultra96 用のPetaLinux 2018.3 を使用して、MicroSD カードの第2パーティションに入れたRoot File system でブートしたいということで、前回は、uImage, BOOT.BIN を作成してUltra96 ボードでMicroSD カードから起動したのだが、”Waiting for root device /dev/mmcblk0p2...”で止まってしまい、Linux をブートできなかった。今回は、PetaLinux 2018.2 を使用したら MicroSD カードの第2パーティションに入れたRoot File system でブートできたので、紹介する。
Docker 上のUbuntu 16.04 のPetaLinux 2018.3でRootFSを使用するUltra96のPetaLinuxをビルドしたが失敗した
前回、PetaLinux 2018.2 を使用したら MicroSD カードの第2パーティションに入れたRoot File system でブートできたので、PetaLinux 2018.3 を使って同様に MicroSD カードの第2パーティションに入れたRoot File system でブートできるかどうか?やってみたら失敗した。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2で、Vivado 2018.3のSDKのディレクトリを使用してRootFSを使用するUltra96のPetaLinuxをビルドする(Ultra96 BSPを使用)
今回は、”Docker 上のUbuntu 16.04 のPetaLinux 2018.3でRootFSを使用するUltra96のPetaLinuxをビルドしたが失敗した”で使用したVivado 2018.3 の cam_dp_183 プロジェクトの SDK ディレクトリを使用して、Ultra96 のPetaLinux 2018.2 のBSP を使用してPetaLinux 2018.2 でビルドするとどうなるか?を確かめてみよう。Ultra96 でPetaLinux をブートできた。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2で、Vivado 2018.3のSDKのディレクトリを使用してRootFSを使用するUltra96のPetaLinuxをビルドする(Ultra96 BSPを使用)にUIOを追加した
前回、Linux 起動時に ls /sys/class してみたところ uio が入っていなかったと思うので、今回は、”Docker 上のUbuntu 16.04 のPetaLinux 2018.2で、Vivado 2018.3のSDKのディレクトリを使用してRootFSを使用するUltra96のPetaLinuxをビルドする(Ultra96 BSPを使用)”にUIO を追加する。ついでに、”Ultra96 のuEnv.txt のbootargs に cpuidle.off=1を追加した”に書いたようにLinux 起動時にハングアップしないように、Linux のブートオプションに cpuidle.off=1 も追加する。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2で、Vivado 2018.3のSDKのディレクトリを使用してRootFSを使用するUltra96のPetaLinuxをビルドする(Ultra96 BSPを使用)にPLのUIOを追加した
前回は、Linux のブートオプションに uio_pdrv_genirq.of_id=generic-uio cpuidle.off=1 を追加して、UIOを活かした。今回は、PL のIP をUIO として設定できた。
udmabufを PetaLinuxで使用する(ホストパソコンでudmabufをmakeして、udmabuf.koをPetaLinuxにコピーしたが失敗)
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2で、Vivado 2018.3のSDKのディレクトリを使用してRootFSを使用するUltra96のPetaLinuxをビルドする(Ultra96 BSPを使用)にPLのUIOを追加した”でPetaLinux にPL のIP のUIO を追加することができた。cam_dp_183 プロジェクトで作成したビットストリームを動作させるには、どうしても udmabuf が必要なので、udmabuf をインストールしよう。
udmabufを PetaLinuxで使用する(ホストパソコンでudmabufをmake したが致命的エラー)
前回の make は X86 用のカーネルモジュールを生成してしまい、Ultra96 のPetaLinux に持っていったがinsmod でエラーになった。今回は、arm64 用に make を行ってみよう。なお、arm64 用のコンパイル環境は、source /tools/Xilinx/Vivado/2018.3/settings64.sh を起動することにより確保している。
udmabufを PetaLinux 2018.2でビルドする
前回は、arm64 用にホストパソコン上で make でudmabuf をビルドしようとしたが、致命的エラーになってビルドできなかった。今回は、素直にPetaLinux 2018.2 を使用して、PetaLinux 上でビルドしてみよう。
Ultra96 のPetaLinux2018.2 で無線LANを設定する
前回は、udmabuf をPetaLinux 2018.2 上でビルドしてみたところ、Ultra96 のPetaLinux で insmod することができた。今回は、無線LANを設定してネットワークを使用できるようにしてみよう。
Ultra96 のPetaLinux2018.2 でhelloworld アプリケーションを作る(ただし、rootfs を使用)
前回は、無線LANを設定してネットワークを使用できるように設定を行った。今回は、 PetaLinux の手順でhelloworld アプリケーションを作成してみよう。
Ultra96 で動作するPetaLinux 2018.2 へSDKリモートデバックを行ったが失敗した
Ultra96 で動作するPetaLinux 2018.2 へSDKリモートデバックを行ったが失敗した。
使用するのは、”Ultra96 のPetaLinux2018.2 でhelloworld アプリケーションを作る(ただし、rootfs を使用)”のシステムだ。
Ultra96 で動作するPetaLinux 2018.2 へSDKリモートデバックを行ったが失敗した2
前回は、”TCF agent を使ってLinaro Ubuntu14.04LTSが動作してるZYBO へパソコンのSDK からリモートデバッグする2”の手順でSDK リモートデバック(つまりホストパソコンからSDK を使用してUltra96 のPetaLinux へリモートデバックする)してみたが失敗した。今回は、PetaLinux のリファレンス・ガイド(UG1144)の手順でやってみたが同様に失敗した。
Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)
今まで、cam_dp_183 のVivado 2018.3 プロジェクトを使用して、PetaLinux をいろいろと試してみたが、uio と udmabuf の動作テストをする場合に、カメラをDisplayPort に表示して、BMP ファイルの落とすソフトウェアはOpenCV の関数を使用していてハードルが高い。そこで、DMA_pow2_test のVivado 2018.2 プロジェクトを使用して uio と udmabuf のテストをすることにした。
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”にPLのIPのUIOを追加する
前回は、DMA_pow2_test のVivado 2018.2 プロジェクトを使用して uio と udmabuf のテストをすることにした。ということで、PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成まで行った。今回は、それにPL のIP のUIO を追加しよう。
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”にudmabufを追加する
PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加した。今回は、それに udmabuf を追加する。
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”で2乗IPを動作させることができた
PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加し、さらに udmabuf.ko をビルドした。今回は、DMApow2Test2.c を作成し、ビルドして、Ultra96 のPetaLinux 上でテストする。
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”のRootFSをUbuntu 18.04に変更した
前回は、PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加し、さらに udmabuf.ko をビルドした。そして、DMApow2Test2.c を作成し、ビルドして、Ultra96 のPetaLinux 上でテストしたところ成功した。今回は、そのPetaLinux のRootFS をUbuntu 18.04.2 に変更する。
”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”のRootFSをUbuntu 18.04に変更した2
前回は、PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加し、さらに udmabuf.ko をビルドした。そして、DMApow2Test2.c を作成し、ビルドして、Ultra96 のPetaLinux 上でテストしたところ成功した。そしてそのPetaLinux のRootFS をUbuntu 18.04.2 に変更したところうまく起動した。今回は、Ubuntu 18.04.2 のUIOの状況を見ていこう。
/sys/devices/platform/amba_pl@0/80000000.DMA_pow2 はあったので、デバイスツリーは認識されているが、UIO には入っていないようだ。

SDx のUltra96-V2 用プラットフォームを作る5(PetaLinuxプロジェクト1)
前回、SDx でプラットフォームを作成する時に使用されるDSA ファイルを生成した。今回は、PetaLinuxのプロジェクトを作成しよう。

pythonのバージョンを切 り替える(anaconda使用の場合)
”SDx のUltra96-V2 用プラットフォームを作る5(PetaLinuxプロジェクト1)”で petalinux-config がERROR になってしまったが、python がバージョン 3.6.5 だったためだった。
python で動作するpython は 2系にしないといけないようだが、PetaLinux 動作させる時以外は python は 3系にしたい。ということで、python コマンドを 2系と 3系で切り替えられるようにした。

SDx のUltra96-V2 用プラットフォームを作る6(PetaLinuxプロジェクト2)
前回は、PetaLinux 2018.3 のプロジェクトを作成し、petalinux-config を行ったが、Python が 3系だったので、エラーになってしまった。その対策として、”pythonのバージョンを切り替える(anaconda使用の場合)”で Python を 2系に切り替えた。今回は、再度、petalinux-config を行っていく。
SDx のUltra96-V2 用プラットフォームを作る7(PetaLinuxプロジェクト3)
前回は、PetaLinux 2018.3 のプロジェクトの petalinux-config を行った。今回は、petalinux-build を行って、elf ファイルやLinux イメージを生成し、それらをSDx で利用しやすいように環境を整える。
SDx のUltra96-V2 用プラットフォームを作る8(PetaLinuxプロジェクト4)
前回は、petalinux-build を行って、elf ファイルやLinux イメージを生成し、それらをSDx で利用しやすいように環境を整えた。今回は、PetaLinux 2018.3 からスタテック・リンクされていたライブラリ(libsds_lib.so)がダイナミック・リンクに変更になっているので、その処理を行う。

SDx 2019.1 のUltra96-V2 用プラットフォームを作る2(PetaLinux1)
前回は、Vivado 2018.3 で作ってあったSDx のハードウェア・プラットフォームをVivado 2019.1 に変換し、DSA ファイルを生成した。今回は、PetaLinux をコンフィギュレーションして、ビルドしていこう。
SDx 2019.1 のUltra96-V2 用プラットフォームを作る3(PetaLinux2)
前回は、PetaLinux のプロジェクトを生成して、petalinux-config を行った。今回は、カーネルの petalinux-config とRoot File System の petalinux-config を行って、プロジェクトをビルドしていこう。
SDx 2019.1 のUltra96-V2 用プラットフォームを作る4(PetaLinux3)
前回は、カーネルの petalinux-config とRoot File System の petalinux-config を行って、プロジェクトをビルドした。今回は、boot, image ディレクトリを作り、boot.bif を作成し、mylib と mylib2 を作成する。

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる2(ソフトウェア・コンポーネントの作成1)
前回は、Vivado 2019.2 の組み込みプロセッサ プラットフォームを作ってみようということで、SDx 2019.1 用に作ったハードウェア・プラットフォーム用のVivado 2019.2 のプロジェクトをVivado 2019.2 にアップグレードして、XSA ファイルを生成した。今回は、”Vitis Unified Software Development Platform Documentation”の”
Embedded Processor Platform Development”の”Creating the Software Component”を参照しながら、Vitis 2019.2 のソフトウェア・コンポーネントを作成していこう。
Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる3(ソフトウェア・コンポーネントの作成2)
前回は、”Creating the Software Component”を参照しながら、PetaLinux 2019.2 を使用して、Vitis 2019.2 のソフトウェア・コンポーネントを作成していったが、petalinux-build までとなった。今回は sysroot を作成して、linux.bif を作成する。

Ultra96-V2 の Vitis アクセラレーション・プラットフォームの作り方2(ソフトウェア・コンポーネント編)
Ultra96-V2 の Vitis アクセラレーション・プラットフォームのハードウェア・コンポーネント編の続きで、ソフトウェア・コンポーネント編をやっていこう。PetaLinux 2019.2 で実装して行く。

ultra96v2_min2 プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTP できた
    ultra96v2_min2プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTP ができました。
ultra96v2_min2 プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTP できた2
”ultra96v2_min2プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTPできた”で、Ubuntu 18.04 の scp コマンドで、Ubuntu 18.04 の自分のパソコンから Ultra96-V2 のPetaLinux 2019.2 にファイルをアップロードすることができた。今回は、Ultra96-V2 のPetaLinux 2019.2 から Ubuntu 18.04 の自分のパソコンにファイルをダウンロードしてみよう。これは、ラプラシアン・フィルタ処理した画像ファイルを確認するのに使用する。


inserted by FC2 system