Google ColaboratoryでいつでもどこでもFPGA開発(セットアップ高速化編)
以前紹介した方法でColab上にVivadoをインストールすることはできます。ただ、実行時に毎回インストールするのは面倒くさいので、予めインストールしたデータ(ext4のイメージ)をマウントすることを検討します。
ローカルでの準備
ローカルでExt4で初期化されたイメージを準備して、Vivadoのインストールデータをコピーする(イメージのサイズは必要に応じて設定する)
$ truncate -s xxxxMiB Xilinx_2018.2.img $ sudo losetup -f Xilinx_2018.2.img $ sudo mkfs.ext4 /dev/loop0 $ sudo mount /dev/loop0 /mnt/tmp/ $ sudo mkdir -p /mnt/tmp/Vivado $ sudo cp -ravf /opt/Xilinx/Vivado/2018.2 /mnt/tmp/Vivado $ sudo losetup -d /dev/loop0 $ umount /mnt/tmp/Vivado
イメージデータはGoogle Driveに転送しておく
Colab上でext4fuse をビルドする
!apt-get install libfuse-dev !git clone https://github.com/gerard/ext4fuse %cd ext4fuse !make
なお、ビルドしたext4fuse
をGoogle driveにコピーしておくと、ext4fuseのビルド作業は省略できる
イメージをマウントする
!mkdir -p /opt/Xilinx/Vivado !ext4fuse -o allow_other "/content/drive/My Drive/tools/Xilinx_2018.2.img" /opt/Xilinx/Vivado
実行
あとはいつも通り、tcl/batchモードでVivadoを起動する。が、Google Driveから読み込んでいるせいか、待ってもなかなか起動しないことがある。一度起動すれば、問題なさそうだけど…
その他
/dev/loop0
がないので、普通にマウントすることはできないが、fuse
は使える。apt
で fuseext2
を入れたけどマウントできなかったので仕方なく、読込み専用だけどext4fuse
をビルドした。fuseiso
はapt
でインストールできて、使えることを確認した。
実際にはGoogle Diriveの1ファイルの容量制限を回避するためにimgファイルは複数に分割している。