LoginSignup
1
0

More than 1 year has passed since last update.

Ultra96V2 Debian環境構築メモ

Last updated at Posted at 2021-04-03

はじめに

Ultra96V2ボードの環境構築をした際の備忘録です。
思い出しながら後から修正している部分もあるのでおかしいところがあったらご指摘頂ければ幸いです。

ボードの情報

回路図、BSP、ドキュメントなどは下記から入手できます。

ikwzm 氏の Debianイメージ

イメージ本体

VirtualBoxとかでSDカードのパーティーション切るときは安定しない場合はUSBカードリーダーを2.0ポートにさすと無難な模様です(遅いですが)。

SD Association 公式の SDフォーマッタ使うと
パーティーションは先頭に4Mほど空領域ができるようです(クラスタとFlashのブロックの境界がそろいパフォーマンスが出るようです)。

VirtualBoxのUbuntuを使っていますが USBのSDカードリーダーを「デバイス」→「USB」で選ぶと、UbuntuからSDカードが見えるようになります。

image.png

私は Ubuntu から gparted を使ってGUIでパーティーション設定をしています。

gparted 右上のところでSDカードのマウントされているディスクを選んでください(この図では /dev/sdc でした)。

image.png

今回は FAT16 領域を "ULTRA96"、 ext4 領域を "rootfs" でラベルを付けています。
Ubuntuの場合、後のこの名前で /media/ の下に自動でマウントされるようなのでそのままやっています。

あとは手順通り

git clone -b v2019.2.1 https://github.com/ikwzm/ZynqMP-FPGA-Linux
cd ZynqMP-FPGA-Linux
git lfs pull

でイメージ取得して

sudo cp target/Ultra96-V2/boot/*  /media/$USER/ULTRA96
sudo tar xzvf debian10-rootfs-vanilla.tgz -C /media/$USER/rootfs
sync

sudo mkdir /media/$USER/rootfs/home/fpga/debian
sudo cp linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb   /media/$USER/rootfs/home/fpga/debian
sudo cp linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb /media/$USER/rootfs/home/fpga/debian
sudo cp fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb       /media/$USER/rootfs/home/fpga/debian
sudo cp udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb       /media/$USER/rootfs/home/fpga/debian
sudo cp u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb     /media/$USER/rootfs/home/fpga/debian
sync

ファイルをコピーした後 sync しておくことをお勧めします。

sudo mkdir /media/$USER/rootfs/mnt/boot
sudo nano /media/$USER/rootfs/etc/fstab

として

/dev/mmcblk0p1  /mnt/boot   auto    defaults    0   0

を追加します。

UART (JTAGカードなど) もしくは、DisplayPort があれば、コンソール使えるようなので、後半の設定はUltra96上でやった方が楽かもしれません。
ちなみに私は DisplayPortは AMC-MDPHD を使っています。

JTAG用の修正

v2019.2版では最初から設定されているので不要ですが、v2019.1版では uEnv.txt に cpuidle.off=1 を追加すると良いようです。以下情報元です。

ネットワークの設定

こちらを参考に設定すれば WiFi も繋がるようです(私は諸事情からもっぱらUSB-LANで有線接続しています)。

Ultra96V2で debian 起動

Ultra96V2 に準備したSDカードを取り付け起動します。
ユーザーは fpga (パスワードもfpga)で login して、説明通り

時刻合わせ

この段階で WiFi が繋がっていれば自動で時刻合わせされるのですが、そうでない場合はここで一度手動で時刻を設定しないと、この後のパッケージのインストールで躓くことがあるようです。

sudo date -s "06/13 16:05 2021"

のような感じで時刻の設定が可能です(中の日付は書き換えてください)。

パッケージインストール

cd /home/fpga/debian
sudo dpkg -i linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
sudo dpkg -i linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
sudo dpkg -i fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb
sudo dpkg -i udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb
sudo dpkg -i u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb

としておきます。

ホスト名設定

他にも Zybo など複数のボードを持っている人は hostname が同じだと紛らわしいので名前変更しています。

今回は

sudo nano /etc/hostname

として debian-fpga を debian-ultra96 に変更しました。

変更して再起動すると sudo するたびに「sudo: unable to resolve host」と出たので
https://qiita.com/ogomr/items/89e19829eb8cc08fcebb
にならって

sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'

としております。

ユーザー作成

fpga というユーザー名のままでもいいのですが、github を使う場合などもあるので自分の名前でユーザーも作ります。

sudo adduser <username>

sudo権限もつけておきます

sudo gpasswd -a username sudo

Samba設定

Windowsからの利用が楽なように Samba の設定をします。

sudo pdbedit -a <username>
sudo nano /etc/samba/smb.conf
sudo systemctl restart smbd nmbd

smb.conf は [homes] セクションで

read only = no

にしておけばフルアクセスできます。

さらに [global] のセクションに

unix extensions = no
wide links = yes

を足すと、シンボリックリンクの先もアクセスできるようです。

ssh と X-Windowポート転送

TeraTermの「設定」->「SSHポート転送」で「リモートのXアプリケーションをXサーバーに表示する」をONにして、「設定」->「設定の保存」。TeraTerm再起動して、sshで接続します。
Windows側にはXmingなどを入れておきましょう。

sudo apt update
sudo apt upgrade

sudo apt install -y xauth
sudo apt install -y x11-apps

sshd_config は X11Forwarding yes とすればよいはずです。当初 xauth を入れ忘れていて嵌りました。ご注意ください。

xclock &
xeyes &

として動作確認します。

Zynq の場合各種の制御に sudo コマンドを付けてプログラムを実行することも多いと思います。

.profile に

export XAUTHORITY=$HOME/.Xauthority

を追加しておけば sudo でも X が使えるようになるようです。

Python設定

やりかけですが

sudo pip3 install jupyter
sudo pip3 install matplotlib

などpipでいろいろインストール可能です。
jupyter もきちんと設定すればPCから接続可能です。

OpenCV

今回は OpenCV3 を入れています。

私が以前使ったスクリプトを ここ に置いておきます。

適当なディレクトリに build_opencv3.sh を置いて

sudo apt-get install -y cmake libeigen3-dev  
sudo apt-get install -y libgtk-3-dev qt5-default freeglut3-dev libvtk6-qt-dev  
sudo apt-get install -y libtbb-dev  
sudo apt-get install -y libjpeg-dev libpng++-dev libtiff-dev libopenexr-dev  libwebp-dev  
sudo apt-get install -y libhdf5-dev  
sudo apt-get install -y wget unzip  

sudo ./build_opencv3.sh

OpenCV の imshow 関数で Xに画像表示したら
「Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files」というエラーが出たこといがあったのですが

sudo apt install at-spi2-core

としたら直ると書いてあったのでやってみたところ直りました。

USBカメラ

 sudo apt install usbutils

C270を接続して試したところ lsusb では「Logitech, Inc. Webcam C270」と出てきました。

sudo apt install fswebcam
sudo fswebcam test.jpg

で、画像は test.jpg に取り込めました。

sudo を不要にするには

sudo usermod -a -G video username
sudo chmod a+rw /dev/video0

で行けそうです。

bootgen

PLを使うアプリで必要となるので bootgenも入れておきます。

git clone https://github.com/Xilinx/bootgen
cd bootgen/
make
sudo cp bootgen /usr/local/bin/

シャットダウン

シャットダウンする場合は

sudo shutdown -h now

もしくは

sudo poweroff

とすると 2019.2版から電源が落ちるようになっている模様です(素晴らしいです)。
(haltコマンドだと電源切れない?)

おしらせ

2020/10/30 にて Qrunch がサービス終了したので移転してきた記事となります。
一時退避場所:https://github.com/ryuz/qrunch_blog

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0