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 には入っていないようだ。




inserted by FC2 system