fumiLab

fumimakerが作ったもの、やったことについて書いていきます。

ikwzmさんのdebian image for KV260を構築する

Image from Gyazo

前回までのあらすじ

fumimaker.net

fumimaker.net

いつもお世話になっております.

今回はこれを構築してみます.基本的にはGithubの内容通りになります.

https://github.com/ikwzm/ZynqMP-FPGA-Linux/blob/master/doc/install/kv260.md

一部ハマったところもありました.

Ubuntu18(vmware)で作業しています.

SDカードの準備

ubuntuのdisk toolsからFAT 100MB, EXT4残り容量でパーティションを作りました.名前はそれぞれBootとRootfsとしています.本当はコマンドラインでやるべきなんですけどね・・・便利すぎてやめられない.

画像ではすでに書き込まれていますが気にしないでください.フォーマットできたらマウントしましょう.それぞれ/media/fumi/boot, rootfsにマウントされています.

image-20221031202358831

Bootに書き込む

wget https://github.com/ikwzm/ZynqMP-FPGA-Linux/archive/refs/tags/v2021.1.2.tar.gz
tar xfz v2021.1.2.tar.gz

してダウンロードしておきます.GithubからZIPを落としてもOK.

cp target/Kv260/boot/* /media/fumi/boot
cp image-5.10.0-xlnx-v2021.1-zynqmp-fpga /media/fumi/boot

もしくはD&Dでコピーします.

Rootfsに書き込む

説明では

cat debian11-rootfs-vanilla.tgz.files/* | tar xfz - -C             /mnt/usb2

となっていますが,自分の環境だとこの様になってできませんでした.なんででしょう.

fumi@ubuntu:~/kv260/ZynqMP-FPGA-Linux-2021.1.2$ sudo cat debian11-rootfs-vanilla.tgz.files/* | tar xfz - -C /media/fumi/rootfs/
tar: dev/urandom: Cannot mknod: Operation not permitted
tar: dev/full: Cannot mknod: Operation not permitted
tar: dev/random: Cannot mknod: Operation not permitted
tar: dev/zero: Cannot mknod: Operation not permitted
tar: dev/tty: Cannot mknod: Operation not permitted
tar: dev/null: Cannot mknod: Operation not permitted
tar: dev/ptmx: Cannot mknod: Operation not permitted
tar: Exiting with failure status due to previous errors

調べてみると権限が動向という感じなので多分特権でやればいいと思います.catにsudoはつけたけどtarにはつけてなかった.なのでこうします.

fumi@ubuntu:~/kv260/ZynqMP-FPGA-Linux-2021.1.2$ sudo cat debian11-rootfs-vanilla.tgz.files/* | sudo tar xfz - -C /media/fumi/rootfs/

問題なく動作しました.続き行きます.パスが長いですが該当ファイルは一つしかないので補完すればOKです

mkdir /media/fumi/rootfs/home/fpga/debian
cp linux-image-5.10.0-xlnx-v2021.1-zynqmp-fpga_5.10.0-xlnx-v2021.1-zynqmp-fpga-4_arm64.deb /media/fumi/rootfs/home/fpga/debian/
cp linux-headers-5.10.0-xlnx-v2021.1-zynqmp-fpga_5.10.0-xlnx-v2021.1-zynqmp-fpga-4_arm64.deb /media/fumi/rootfs/home/fpga/debian/
cp fclkcfg-5.10.0-xlnx-v2021.1-zynqmp-fpga_1.7.2-1_arm64.deb /media/fumi/rootfs/home/fpga/debian/
cp u-dma-buf-5.10.0-xlnx-v2021.1-zynqmp-fpga_3.2.4-0_arm64.deb /media/fumi/rootfs/home/fpga/debian/

次は複数行の入力です.

root@ubuntu:~/kv260/ZynqMP-FPGA-Linux-2021.1.2# cat <<EOT >> /media/fumi/rootfs/etc/fstab
> /dev/mmcblk1p1 /mnt/boot auto defaults 0 0
> EOT

fumi userだと失敗したのでsudo -sしています.

アンマウントします.GUIでポチポチしてもいいしコマンドでもOK

shell# umount /mnt/usb1
shell# umount /mnt/usb2

image-20221031205221831

SDをKV260に挿して起動

SDを挿して起動です.microUSBを挿してシリアルポートを開きます.いけました.

Image from Gyazo

image-20221031210050235

ちゃんとネットワークも認識してますね

image-20221031210122034

fpga userの場合はfpga, rootの場合はadminで入れます.

image-20221031210201096

パッケージのインストール

各種インストールしておきます.

cd /home/fpga/debian
dpkg -i linux-headers-5.10.0-xlnx-v2021.1-zynqmp-fpga_5.10.0-xlnx-v2021.1-zynqmp-fpga-4_arm64.deb
dpkg -i fclkcfg-5.10.0-xlnx-v2021.1-zynqmp-fpga_1.7.2-1_arm64.deb
dpkg -i u-dma-buf-5.10.0-xlnx-v2021.1-zynqmp-fpga_3.2.4-0_arm64.deb

ところで,sudoとするとこのようなエラーがでます.

root@debian-fpga:/home/fpga/debian# sudo sudo: unable to resolve host debian-fpga: Name or service not known

systemctl status systemd-hostnamed.serviceを見てみるとコケてる様子.原因は

● systemd-hostnamed.service - Hostname Service
     Loaded: loaded (/lib/systemd/system/systemd-hostnamed.service; static)
     Active: failed (Result: exit-code) since Mon 2022-10-31 21:37:10 JST; 4min 27s ago
       Docs: man:systemd-hostnamed.service(8)
             man:hostname(5)
             man:machine-info(5)
             man:org.freedesktop.resolve1(5)
    Process: 11046 ExecStart=/lib/systemd/systemd-hostnamed (code=exited, status=127)
   Main PID: 11046 (code=exited, status=127)
        CPU: 141ms

Oct 31 21:37:09 debian-fpga systemd[1]: Starting Hostname Service...
Oct 31 21:37:09 debian-fpga systemd[11046]: systemd-hostnamed.service: PrivateNetwork=yes is configured, but the kernel does not support network namespaces, ignoring.
Oct 31 21:37:10 debian-fpga systemd-hostnamed[11046]: /lib/systemd/systemd-hostnamed: error while loading shared libraries: libsystemd-shared-247.so: cannot open shared object file: Permission denied
Oct 31 21:37:10 debian-fpga systemd[1]: systemd-hostnamed.service: Main process exited, code=exited, status=127/n/a
Oct 31 21:37:10 debian-fpga systemd[1]: systemd-hostnamed.service: Failed with result 'exit-code'.
Oct 31 21:37:10 debian-fpga systemd[1]: Failed to start Hostname Service.

debian-fpga systemd-hostnamed[11046]: /lib/systemd/systemd-hostnamed: error while loading shared libraries: libsystemd-shared-247.so: cannot open shared object file: Permission deniedだそうです.よくわからなかったのですが今のところ問題ないのでとりあえずそのままにしておきました.(解決策求む)

次回

次回はデバイスツリーオーバーレイを使ったu-dma-bufやfclkcfgを動かしたいと思います.ほんとikwzmさん様々です…ありがとうございます.