環境初期化手順 - takgto/utokyo-chipathon2023 GitHub Wiki
授業で使用するPCとFPGAを初期化する手順です。
注意:PC、FPGAの環境が完全に綺麗さっぱりになってしまいます。保存しておきたいデータは予め移しておきましょう。
Windowsのクリーンアップを行います。
デスクトップとピクチャフォルダの余計なファイルを削除します。
ダウンロードフォルダにweights
フォルダだけ置きます。(yolov3-***.cfg
とyolov3-***_best.weights
が入っています)
Googleアカウントにログインしていたらログアウトしてプロファイルを削除してください。
最後にごみ箱を空にします。
次にUbuntuのクリーンアップを行います。
ここからはUbuntuコンソールにコマンドを入力します。
UbuntuのVitis-AIディレクトリにあるmy_tf_calib4.npyをホームに移動します。
mv ~/Vitis-AI/yolov3-dlab/scripts_tf2/my_tf_calib4.npy ~
rm -rf Vitis-AI
rm: remove write-protected regular file ~?
と訊いてきた時は、y
と入力してEnterを押してください。
その他Ubuntu側に余計なファイルがある場合は削除します。ディレクトリを削除したい場合はrm -r <ディレクトリ名>
、ファイルを削除したい場合はrm <ファイル名>
のコマンドを使ってください。
my_tf_calib4.npyは削除しないでください。誤って削除した場合はTAに声をかけてください。
Vitis-AIをクローンします。
git clone https://github.com/Xilinx/Vitis-AI -b 2.5 --depth 1
Vitis-AIディレクトリに移動してyolov3-dlabとedge-evalとyolov3_edgeをクローンします。
cd Vitis-AI
# Vitis-AIディレクトリで実行する
git clone https://github.com/takgto/edge-eval
git clone https://github.com/takgto/yolov3-dlab
git clone https://github.com/takgto/yolov3_edge.git
Vitis-AI/yolov3-dlab/work
ディレクトリにyolov3-tiny.cfg
、yolov3-512.cfg
を置きます。
yolov3-608.cfg
とyolov3-obj.cfg
(416のcfg)は最初から入っています。
cp /mnt/c/Users/x-nics-kuroda/Downloads/work_best_weights/yolov3-tiny.cfg /home/x-nics-kuroda/Vitis-AI/yolov3-dlab/work
cp /mnt/c/Users/x-nics-kuroda/Downloads/work_best_weights/yolov3-512.cfg /home/x-nics-kuroda/Vitis-AI/yolov3-dlab/work
退避していたmy_tf_calib4.npyを元に戻します。
以下のコマンドを入力します。
mv ~/my_tf_calib4.npy ~/Vitis-AI/yolov3-dlab/scripts_tf2/my_tf_calib4.npy
PCに残っている今回の基板との接続で生成されたSSH鍵を削除します。
x-nics-kuroda/.ssh/known_hosts
はWindows側とUbuntu側にあるので両方削除します。
Windows:
● C:\Users\x-nics-kuroda\.ssh\known_hosts
を開き、192.168.1.100から始まる行を削除する。
または
● C:\Users\x-nics-kuroda\.ssh\known_hosts
ファイルを削除する。
Ubuntu:
ssh-keygen -R 192.168.1.100
これでPCのクリーンアップは完了です。ありがとうございました。
基板にSerialケーブルとイーサケーブルを接続し、電源を入れます。 Serialコンソールに以下を入力してください。
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
~/Vitis-AI/examples/VART/yolov3
のディレクトリを回収します。
scp -r [email protected]:~/Vitis-AI/examples/VART/yolov3 .
もしscp
がうまく動かない時は-O
のオプションをつけて試してください。
SSHで接続できない場合は以下のコマンドをUbuntuコンソールに入力してください。SSH鍵を削除します。
ssh-keygen -R 192.168.1.100
また、Serialで~/Vitis-AI/examples/VART
のディレクトリの中身を確認します。
ls ~/Vitis-AI/examples/VART
yolov3XXXX
という名前のディレクトリがあればそれも回収します。
次に、基板のクリーンアップを行います。 SDカードをフォーマットをします。この時、容量が77.5MB程度のことを確認します。
balenaEtcherを起動します。
balenaEtherのFlash from fileで、xilinx-kv260-dpu-v2022.1-v2.5.0.img.gzを選択します。
Select targetでMicroSDカードを選択します。
Flash!を選択します。
15分程かかります。
MicroSDを差してFPGAを起動してください。シリアルケーブルとイーサケーブルを接続します。
MobaXTermでSerialでFPGAに接続します。FPGAがしっかり起動すればOKです。
Serialコンソールに以下を入力してください。
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
これでifconfigしたときに、ipアドレスが192.168.1.100になっていればOKです。
SSHで接続できない場合は以下のコマンドをUbuntuコンソールに入力してください。SSH鍵を削除します。
ssh-keygen -R 192.168.1.100
以下をUbuntuコンソールで実行してください。
最初のscp init260.sh [email protected]:/home/root
を実行するとAre you sure you want to continue connecting (yes/no/[fingerprint])?
と訊かれるのでyes
と入力してください。その後[email protected]'s password:
と訊かれるのでroot
を入力してください。
edge-evalのC++ソースコードを転送します。Ubuntuコンソールに入力します。
cd ~/Vitis-AI/edge-eval
scp init260.sh [email protected]:/home/root
sshpass -p "root" scp aliases [email protected]:/home/root
sshpass -p "root" scp -r data [email protected]:/home/root
sshpass -p "root" scp cpp/* [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r video [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r mAP [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r dpu_yolov3 [email protected]:/usr/share/vitis_ai_library/models
もしscp
がうまく動かない時は-O
のオプションをつけて試してください。
Vitis-AI/examples/VARTにyolov3ディレクトリを作成します。Serialコンソールに入力します。
cd ~/Vitis-AI/examples/VART
mkdir yolov3
yolov3_edgeのC++ソースコードを転送します。Ubuntuコンソールに入力します。
cd ~/Vitis-AI/yolov3_edge
sshpass -p "root" scp -r cpp/* [email protected]:/home/root/Vitis-AI/examples/VART/yolov3
もしscp
がうまく動かない時は-O
のオプションをつけて試してください。
授業中に./make.sh ~
を行ったときに正常にmakeできないことがあります。(VARTのみ)その時はC++ソースコードがバイナリになっています。
その時は、上記のコマンドを使って/home/root/Vitis-AI/examples/VART/yolov3
のファイルを更新してください。
次のコマンドをMobaXtermのSerialコンソールに入力します。
cd
./dpu_sw_optimize/zynqmp/zynqmp_dpu_optimize.sh
次のコマンドをMobaXtermのSerialコンソールに入力します。
chmod +x ~/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3/make.sh
次のコマンドをMobaXtermのコンソールに入力してmake.shを開きます。
cd ~/Vitis-AI/examples/VART/yolov3/
vi make.sh
make.shの中身が正常に見られたらOKです。
これで基板のクリーンアップ完了です。
まずはクリーンアップ後のPCに不要なデータがないことを確認します。
次に、Dockerを確認します。WindowsのDockerをダブルクリックします。立ち上がったらUbuntuコンソールに以下のコマンドを入力してDockerのConda環境が立ち上がることを確認します。
cd Vitis-AI
docker images
./docker_run.sh my_vitis-ai-cpu:latest
conda activate vitis-ai-tensorflow2
Dockerのコンソールで、生成ファイルがないことを確認します。
ls /workspace/yolov3-dlab/keras_model
ls /workspace/yolov3-dlab/yolov3_quantized2
README.md
だけあればOKです。
VitisとPetaLinuxをインストールしておきます。Vivado, Vitis install
以下のコマンドをインストールします。
sudo apt install cmake
sudo apt update
sudo apt install build-essential
sudo apt install libidn11
sudo apt-get install xvfb
sudo apt-get install unzip
sudo apt-get install zip
libidn11がunlocaleで入らない時。
sudo apt update
cd ~/Downloads
wget http://mirrors.kernel.org/ubuntu/pool/main/libi/libidn/libidn11_1.33-2.2ubuntu2_amd64.deb
sudo apt install ./libidn11_1.33-2.2ubuntu2_amd64.deb
xsct ファイルを修正します。
→/tools/Xilinx/Vitis/2022.1/bi/xsctの241行目付近 ifの行とelse項を(4行)#でコメントアウト。(条件なしでif条件の処理が走るように)