TVM のコンパイルをしようとしたのだが、cmake のバージョンが 3.12 以降が必要だというメッセージが出てしまった。apt でインストールできる cmake のバージョンは 3.10 ということで、cmake 3.12.0 を”
Linuxに特定のバージョンのcmakeをインストール”を参考にインストールした。
現在の cmake のバージョンは 3.4.3 だった。
これで、cmake .. を実行すると cmake のバージョンが 3.12 以降が必要だというメッセージが出てしまった。
sudo apt remove cmake で削除しても削除されなかった。これは、/usr/local/bin に直接 cmake をインストールしてしまったのが原因の様だ。よって、/usr/local/bin から ccmake, cmake, cpack, ctest を削除した。
なお、
sudo apt remove cmake した時に libdvd-pkg パッケージが壊れていたので
dpkg-reconfigure を使用して、再設定した。



cmake 3.12.0 を”
Linuxに特定のバージョンのcmakeをインストール”を参考にインストールする。
cmake.org の Index of /files の
Index of /files/v3.12 から cmake-3.12.0-Linux-x86_64.sh をダウンロードした。
cmake-3.12.0-Linux-x86_64.sh を実行した。
sudo ./cmake-3.12.0-Linux-x86_64.sh

cmake-3.12.0-Linux-x86_64 ディレクトリが生成された。
cmake-3.12.0-Linux-x86_64 ディレクトリを /opt に移動する。
sudo mv cmake-3.12.0-Linux-x86_64 /opt /opt/cmake-3.12.0-Linux-x86_64/bin/* を /usr/local/bin にシンボリックリンクする。(パスの順番が早いので /usr/local/bin になった)
sudo ln -s /opt/cmake-3.12.0-Linux-x86_64/bin/* /usr/local/bin/opt/cmake-3.12.0-Linux-x86_64/bin ディレクトリを示す。

これで、cmake バージョン 3.12.0 が使用可能になった。
- 2022年06月20日 04:11 |
- Linux
-
| トラックバック:0
-
| コメント:0
現在、Ultra96-V2 の ikwzm さんのDebian を使用して、 sudo コマンドを使用すると”sudo: unable to resolve host debian-fpga: Name or service not known”が表示されてしまう。

ある方に解決方法を教えていただいたのだが、忘れてしまったため、Web を検索してやってみた。忘れないようにブログに書いておく。
”
sudo: unable to resolve host が表示されたら”を参照させていただきながらやっていく。
まずは、/etc/hosts を確認する。
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/hosts にホスト名を追加する。
sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'もう一度、/etc/hosts を見ると、ホスト名が追加されていた。
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 debian-fpga
これで、sudo コマンドを実行しても”sudo: unable to resolve host debian-fpga: Name or service not known”が表示されなくなった。感謝。。。
- 2019年08月16日 04:47 |
- Linux
-
| トラックバック:0
-
| コメント:0
”
icrawler で学習用画像を収集する”で icrawler はなんとか pip でインストール出来たのだが、ZYBOt のKeras での学習が出来なかったので、仕方が無いので Anaconda をインストールすることにした。
”
Ubuntuを初めて触るド素人がAnacondaを入れてみた”を参考にして、Anaconda のサイトから Anaconda3-5.2.0-Linux-x86_64.sh をダウンロードしてインストールした。

インストール後に .bashrc を反映した。
source .bashrcAnaconda に keras をインストールした。
conda install -c conda-forge keras 
Anaconda に icrawler をインストールした。
conda install -c hellock icrawler
jupyter notebook &でJupyter Notebook を立ち上げた。
icrawler が動作した。

Keras の学習も問題ない。
- 2018年09月29日 16:06 |
- Linux
-
| トラックバック:0
-
| コメント:0
ZYBO-Z7-20 の Debian 上の Xクライアントをパソコンの Ubuntu 上に表示したいということで、やってみた。
参考にしたのは、”
Xクライアントを別のPCで表示する”
”
Xクライアントを別のPCで表示する”によると
ssh CentOSのIPアドレス -X
で ZYBO-Z7-20 の Debian に入って、Xクライアントのコマンドを入力すれば良いようだ。
ssh 192.168.3.39 -X -l fpgaで、ZYBO-Z7-20 の Debian にログインして nautilus を起動した。
nautilus &
ZYBO-Z7-20 の Debian 上の nautilus がパソコンの Ubuntu 上に表示された。
(2018/08/17 :追記)まずは、ikwzm さんに教えて頂いた xbase-clients と xterm をインストールする必要がある。
sudo apt-get install xbase-clients xtermこれで、nautilus を起動できたが、起動すると文字がトーフ状態だった。
検索してみるとロケールを日本語にしているのに、日本語フォントが入っていないのが問題ということだった。
対処方法として、梅フォントをインストールした。
sudo apt-get install fonts-vlgothic
sudo apt-get install fonts-horai-umefont
sudo apt-get install fonts-umeplusこれで無事にnautilus で日本語が表示できた。
- 2018年04月01日 06:01 |
- Linux
-
| トラックバック:0
-
| コメント:0
Ubuntu 16.04.4 LTS に git-lfs をインストールのに苦労したのでインストール方法を書いておく。
最初に、linuxbrew をインストールして git-lfs をインストールしようとした。
”
Git LFSの導入方法”辺りを参考にして、次のインストール方法を試してみた。
sudo apt linuxbrew-wapper
brew update
brew install git-lfs
git lfs installgit lfs install コマンドを実行した時に決まって、”git: 'lfs' はgitコマンドではありません。”と言われてしまった。

いくらやっても同じなので、”
Git LFSが1.0になってGitHubで使えるようになったので試してみた”を参考にした。
git-lfs.github.com から git-lfs-linux-amd64-2.4.0.tar.gz をダウンロードした。
git-lfs-linux-amd64-2.4.0.tar.gz を解凍したら、git-lfs-2.4.0 ディレクトリができた。
git-lfs-2.4.0 ディレクトリに入って、install.sh を実行した。
cd git-lfs-2.4.0
sudo bash install.sh
git lfs init は unknown command "init" for "git-lfs" になってしまったが、これが正常に解釈されるということは、git-lfs がインストールできたということだ。良かった。。。
- 2018年04月01日 05:37 |
- Linux
-
| トラックバック:0
-
| コメント:0
”
@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる14(led_on.py を C で書いてみる)”の続き。
前回は、デバイスツリーをロードして、LEDを点灯させるアプリケーションソフトは @ikwzm さんの作成された led_on.py の代わりにじぶんで書いた C 言語のアプリケーションソフトを使用した。今回は、Vivado HLS で作ったプロジェクトで udmabuf を使用してみよう。
今回、参照するのは@ikwzm さんの書かれた、”
UltraZed 向け Debian GNU/Linux で Vivado-HLS を使って合成した回路を動かす”まずは、この通りにやってみよう。
fpga ユーザーの examples ディレクトリに移動して、git clone でGitHub の ikwzm/ZynqMP-FPGA-Linux-Example-2-UltraZed を negative という名前でダウンロードして、negative ディレクトリに入る。なお、Vivado HLS の回路は in を AXI4 Master で読んできて、マイナスにして、out へ書くという回路だ。
cd negative
git clone https://github.com/ikwzm/ZynqMP-FPGA-Linux-Example-2-UltraZed negative
cd negative
Python スクリプトでビットファイルをバイナリ・ファイルへ変換し、/lib/firmware へコピー。
python3 fpga-bit-to-bin.py -f negative.bit negative.bin
sudo cp negative.bin /lib/firmware
/lib/firmware ディレクトリを見ると、negative.bin があるのが分かる。

fpga-load.dts をコンパイルして、fpga-load.dtb を生成する。
dtc -I dts -O dtb -o fpga-load.dtb fpga-load.dts
fpga-load.dtb を fpga に登録
sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo
COMポートのTrea Term ウインドウにメッセージが表示された。

FPGA のクロックを設定するための fclk0-zynqmp.dts をコンパイル
dtc -I dts -O dtb -o fclk0-zynqmp.dtb fclk0-zynqmp.dts
fclk0-zynqmp.dts を fclk0 に登録
sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo
COMポートのTrea Term ウインドウにメッセージが表示された。

UIO と udmabuf のデバイスツリー negative.dts

negative.dts をコンパイル
dtc -I dts -O dtb -o negative.dtb negative.dts
negative.dtb を negative に登録
sudo mkdir /config/device-tree/overlays/negative
sudo cp negative.dtb /config/device-tree/overlays/negative/dtbo
ls -l /dev/uio*
ls -l /dev/udmabuf*
COMポートのTrea Term ウインドウにメッセージが表示された。

negative.py を動作させる
sudo python3 negative.py
今回はスループットが 292 MByte/sec 程度だったが、2回目やると次に示すようにスループットが減っていた。何か?奇数回の方が偶数会よりもスループットが高い気がする。
2 回目の結果を示す。

スループットは、148 MByte/sec 程度と 1 回目よりも少なくなっている。
後始末
デバイスツリーをディレクトリごと削除する。
sudo rmdir /config/device-tree/overlays/netagive
sudo rmdir /config/device-tree/overlays/fclk0
sudo rmdir /config/device-tree/overlays/fpga
COMポートのTrea Term ウインドウに表示されたメッセージを示す。
- 2018年02月01日 04:32 |
- Linux
-
| トラックバック:0
-
| コメント:0
”
@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる12(FPGAのコンフィギュレーション)”
”
@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる13(デバイスツリーの入れ替え)”
では、デバイスツリーをロードして、LEDを点灯させるアプリケーションソフトは @ikwzm さんの作成された led_on.py を使用した。Python のコードを使っても良いのだが、いつも書いている C 言語でアプリケーションソフトを書いてみることにした。
関連する @ikzwm さんの記事は”
UltraZed 向け Debian GNU/Linux で FPGA をコンフィギュレーション”の”
LED を点滅させてみる”だ。
まずは、led_on.c を書いてみた。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <assert.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
int main(){
int fd1;
volatile unsigned int *led;
unsigned int pattern[14] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02};
int i, j;
fd1 = open("/dev/uio1", O_RDWR);
if(fd1 < 1){
fprintf(stderr, "/dev/uio1 (led) open error\n");
exit(-1);
}
led = (volatile unsigned *)mmap(NULL, 0x1000, PROT_READ|PROT_WRITE, MAP_SHARED, fd1, 0);
if(!led){
fprintf(stderr, "led mmap error\n");
exit(-1);
}
for(i=0; i<10; i++){
for(j=0; j<14; j++){
led[0] = pattern[j];
usleep(100000);
}
}
munmap((void *) led, 0x1000);
close(fd1);
return(0);
}
led_on.py と比べて点滅する数は少し多いかもしれないが、大体同じ動作をする。
これをUltraZed-EG Starter Kit のDebian Linux の ~/examples/gpio ディレクトリにおいて、コンパイルを行った。
gcc -o led_on led_on.cled_on を実行するために、”
@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる12(FPGAのコンフィギュレーション)”と同様に sh スクリプトを作成した。exe_led_on_c.sh だ。その内容を示す。

#!/bin/sh
sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load_uzed.dtb /config/device-tree/overlays/fpga/dtbo
sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo
sudo mkdir /config/device-tree/overlays/uio
sudo cp uio_uzed.dtb /config/device-tree/overlays/uio/dtbo
ls -la /dev/uio*
sudo ./led_on
ただ単に最後の行を入れ替えただけだ。
exe_led_on_c.sh を実行すると、同様にLED が点灯した。これで、従来通りに C で書いても動作するということが分かった。
- 2018年01月30日 04:09 |
- Linux
-
| トラックバック:0
-
| コメント:0