I followed the instructions to create a new custom board found here:
The board is the Avent Ultrazed-EV. I used the ZCU104 design as the basis for my own design. They have enough similarities that the port should be relatively straightforward.
The makefile in the sdbuild directory runs nearly to completion but I get an error that says:
+ sudo cp dist/pynq-2.5.1.tar.gz /home/nichodd1/Projects/PYNQ/sdbuild/build/bionic.Ultrazed-EV/home/xilinx/pynq_git/dist
cp: error writing '/home/nichodd1/Projects/PYNQ/sdbuild/build/bionic.Ultrazed-EV/home/xilinx/pynq_git/dist/pynq-2.5.1.tar.gz': No space left on device
When I run df -h it confirms that the problem is that the mount is completely full:
I tried modifying the line in create_mount_img.sh from this:
truncate --size 7G $image_file
to this:
truncate --size 15G $image_file
This did not help. Originally the mount seems to have the correct size (15G) but later in the build process this gets reduced to ~6G. Then the build fails with the same âNo Space Left on Deviceâ error.
I unmounted the FS and did a âsudo make cleanâ in sdbuild. Then after a rebuild, I get the same error. Early in the build process this is the output from df -h:
It looks like something weird is going on with stale images - thatâs the only explanation I have for the loop device numbers being 42 and 43 for the first two stages and then falling back to 35 for last. Can you get the output of losetup -a?
I can concur that I am having the same issue when using v2.5 as a base for building from source. losetup -a output is empty, I have increased the size limit to 15GB in create_mount_img.sh and I get the same error (insufficient disk space). For reference, I am using an Ultra96v2 board from AVNET.
@annapCoug@Joe_Dinius In one of our building steps, the board folder will be copied over to the build area; so make sure you do not have any unnecessary file staying in that board folder (for example, a complete vivado project sitting in the board folder - try to make clean it before you run sdbuild). If you have some large files in the board folder, they can be copied accidentally by our SDbuild flow, which results in insufficient disk space for the rootfs.
Unmount dangling drives (as an aside: shouldnât the build process clean this up automatically, maybe as part of the checkenv target in the Makefile? I know this would require running make checkenv as sudo, which is less than desirable)
Run make clean
Run make BOARDDIR={path-to-my-board-dir}
But the issue persists nevertheless. Any other thoughts @rock?
make clean probably only cleans your SD build folder, but you need to clean your BOARD folder as well. Make sure there is no large file in your board folder (Ultra96 in your case). If you have built a hardware design in your ultra96 folder, clean it and leave only sensor96b.bit and sensors96b.hwh files there.
@rock had the right answer in my case. I had a non .bsp version of Petalinux in the board folder and a build version of the Vivado project. I wrongly assumed the tools would be judicious about what files/folders to copy over.
Then again the makefile is the worst kind of makefile. The dependencies are all wrong or incomplete. It doesnât do necessary cleanup when the build fails. Pynqâs build system is pretty bad. Perhaps it is telling that Xilinx doesnât support Pynq through its Service Request system.
We apologize for your frustration. Can you provide some ideas on how we improve it? Or you can just submit pull requests to improve it yourself? I donât want to make an excuse but we are a small group of roughly 4 people and our hands are pretty tight.