前回までのあらすじ
いつもお世話になっております.
今回はこれを構築してみます.基本的には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
にマウントされています.
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
SDをKV260に挿して起動
SDを挿して起動です.microUSBを挿してシリアルポートを開きます.いけました.
ちゃんとネットワークも認識してますね
fpga userの場合はfpga, rootの場合はadminで入れます.
パッケージのインストール
各種インストールしておきます.
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さん様々です…ありがとうございます.