概要
以前、[こんな記事]https://ryuz.hatenablog.com/entry/2022/04/30/213444を書きましたが、その際、実 SD カードにイメージを作ってから dd コマンドでイメージを保存していました。
もちろんもっといいやり方はあるだろうなとは思っていたのですが、「Win32DiskImager 使えると便利」とか言ってる時点でもともと Linux には詳しくなく。
そんなときに下記の話を見かけたので、ちょっとだけ挑戦中です。
読んでる。ZynqMP-FPGA-Linux や FPGA-SoC-Linut のブートイメージを作るのに参考にしたい。「SDカードイメージの作成」 https://t.co/y5p1RKgeeL #Qiita @miuraより
— 隠居したエンジニア (@ikwzm) 2022年6月16日
やってみたこと
まだ動作確認までしていないので備忘録レベルですが。
こんな感じでイメージ作れないかな?
#!/bin/bash VERSION="2021.1.1" TAG="v2021.1.1" IMG_FILE="ultra96v2-debian-v2021.1.1.img" TGZ_FILE="ZynqMP-FPGA-Linux-${TAG}.tar.gz" # ZynqMP-FPGA-Linux-v2021.1.1.tar.gz if [ ! -f $TGZ_FILE ]; then # wget -O $TGZ_FILE https://github.com/ikwzm/ZynqMP-FPGA-Linux/archive/refs/tags/$TAG.tar.gz wget -O $TGZ_FILE 'https://onedrive.live.com/download?cid=E643EA309C96C6F6&resid=E643EA309C96C6F6%2142121&authkey=ACAH_X1CZF8a6fU' fi tar zxvf $TGZ_FILE DEV_LOOP=`sudo losetup -f` rm -f $IMG_FILE truncate -s 6GiB $IMG_FILE sudo losetup $DEV_LOOP $IMG_FILE sudo parted $DEV_LOOP -s mklabel msdos -s mkpart primary fat32 1048576B 315621375B -s mkpart primary ext4 315621376B 100% -s set 1 boot sudo mkfs.vfat ${DEV_LOOP}p1 sudo mkfs.ext4 ${DEV_LOOP}p2 sudo mkdir -p /mnt/usb1 sudo mkdir -p /mnt/usb2 sudo mount ${DEV_LOOP}p1 /mnt/usb1 sudo mount ${DEV_LOOP}p2 /mnt/usb2 cd ZynqMP-FPGA-Linux-${VERSION} sudo cp target/Ultra96-V2/boot/* /mnt/usb1 sudo tar xfz debian11-rootfs-vanilla.tgz -C /mnt/usb2 sudo mkdir /mnt/usb2/home/fpga/debian sudo cp linux-image-5.4.0-xlnx-v2020.2-zynqmp-fpga_5.4.0-xlnx-v2020.2-zynqmp-fpga-3_arm64.deb /mnt/usb2/home/fpga/debian sudo cp linux-headers-5.4.0-xlnx-v2020.2-zynqmp-fpga_5.4.0-xlnx-v2020.2-zynqmp-fpga-3_arm64.deb /mnt/usb2/home/fpga/debian sudo cp fclkcfg-5.4.0-xlnx-v2020.2-zynqmp-fpga_1.7.2-1_arm64.deb /mnt/usb2/home/fpga/debian sudo cp u-dma-buf-5.4.0-xlnx-v2020.2-zynqmp-fpga_3.2.4-0_arm64.deb /mnt/usb2/home/fpga/debian sudo cp linux-image-5.10.0-xlnx-v2021.1-zynqmp-fpga_5.10.0-xlnx-v2021.1-zynqmp-fpga-4_arm64.deb /mnt/usb2/home/fpga/debian sudo cp linux-headers-5.10.0-xlnx-v2021.1-zynqmp-fpga_5.10.0-xlnx-v2021.1-zynqmp-fpga-4_arm64.deb /mnt/usb2/home/fpga/debian sudo cp fclkcfg-5.10.0-xlnx-v2021.1-zynqmp-fpga_1.7.2-1_arm64.deb /mnt/usb2/home/fpga/debian sudo cp u-dma-buf-5.10.0-xlnx-v2021.1-zynqmp-fpga_3.2.4-0_arm64.deb /mnt/usb2/home/fpga/debian sudo mkdir /mnt/usb2/mnt/boot sudo sh -c "cat <<EOT >> /mnt/usb2/etc/fstab /dev/mmcblk0p1 /mnt/boot auto defaults 0 0 EOT" sudo umount /mnt/usb1 sudo umount /mnt/usb2 sudo losetup -d $DEV_LOOP