Composable Overlay v2.7

I had fresh installed PYNQ-Z2 with PYNQ 2.6 image, I follow 3 steps to install this great thing.
It update PYNQ to 2.7.

I tried to run " [01_composable_overlay_intro.ipynb]"

But I got error at first step to load bitstream

from composable_pipeline import ComposableOverlay
ol = ComposableOverlay("../overlay/cv_dfx_4_pr.bit")

cpipe = ol.composable

I got these error message, How to install xclbinutil in PYQN-Z2?
I have search internet. But have no idea about it.

FileNotFoundError Traceback (most recent call last)
in ()
1 from composable_pipeline import ComposableOverlay
2
----> 3 ol = ComposableOverlay("…/overlay/cv_dfx_4_pr.bit")
4
5 cpipe = ol.composable

/usr/local/lib/python3.6/dist-packages/composable_pipeline/composable.py in init(self, bitfile_name, dtbo, download, ignore_version, device)
288 “”"
289
→ 290 super().init(bitfile_name, dtbo, download, ignore_version, device)
291
292 switch = list()

/usr/local/lib/python3.6/dist-packages/pynq/overlay.py in init(self, bitfile_name, dtbo, download, ignore_version, device)
338 self._register_drivers()
339
→ 340 self.parser = self.device.get_bitfile_metadata(self.bitfile_name)
341
342 self.ip_dict = self.gpio_dict = self.interrupt_controllers = \

/usr/local/lib/python3.6/dist-packages/pynq/pl_server/embedded_device.py in get_bitfile_metadata(self, bitfile_name)
602
603 def get_bitfile_metadata(self, bitfile_name):
→ 604 parser = _get_bitstream_handler(bitfile_name).get_parser()
605 if parser is None:
606 raise RuntimeError(“Unable to find metadata for bitstream”)

/usr/local/lib/python3.6/dist-packages/pynq/pl_server/embedded_device.py in get_parser(self)
190 parser = HWH(hwh_data=hwh_data)
191 if xclbin_data is None:
→ 192 xclbin_data = _create_xclbin(parser.mem_dict)
193 xclbin_parser = XclBin(xclbin_data=xclbin_data)
194 _unify_dictionaries(parser, xclbin_parser)

/usr/local/lib/python3.6/dist-packages/pynq/pl_server/embedded_device.py in _create_xclbin(mem_dict)
333 ‘–add-section=MEM_TOPOLOGY:JSON:mem.json’, ‘–output’,
334 ‘t.xclbin’, ‘–skip-bank-grouping’],
→ 335 cwd=td, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
336 if completion.returncode != 0:
337 raise RuntimeError("xclbinutil failed: " +

/usr/lib/python3.6/subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
401 kwargs[‘stdin’] = PIPE
402
→ 403 with Popen(*popenargs, **kwargs) as process:
404 try:
405 stdout, stderr = process.communicate(input, timeout=timeout)

/usr/lib/python3.6/subprocess.py in init(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
707 c2pread, c2pwrite,
708 errread, errwrite,
→ 709 restore_signals, start_new_session)
710 except:
711 # Cleanup if the child failed starting.

/usr/lib/python3.6/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
1342 if errno_num == errno.ENOENT:
1343 err_msg += ': ’ + repr(err_filename)
→ 1344 raise child_exception_type(errno_num, err_msg, err_filename)
1345 raise child_exception_type(err_msg)
1346

FileNotFoundError: [Errno 2] No such file or directory: ‘xclbinutil’: ‘xclbinutil’

1 Like

I modified setup.py in folder of PYNQ_Composable_Pipeline to use PYNQ 2.6.2
Then the overlay can be load normally.

python_requires=">=3.6.0",
install_requires=[
“pynq==2.6.2”,
“graphviz>=0.16”
],

The released version is only validated with pynq 2.6.2. The is a new release for pynq 2.7 coming soon.

I also got the same problem.
If anyone knows how to fix it, please tell me.
thanks~

Are you using a PYNQ 2.7 image?

@jetlan @max90235 to clarify, if you start from a PYNQ SD card image 2.6 you should not update to pynq 2.7. The reason being is that the rootfilesystem and pynq requirement change, that is why you are seeing this error.

If you start from a PYNQ SD card image 2.6, you can only update the pynq package to 2.6.2.

My recommendation would be to flash a new SD card with the PYNQ SD card image 2.7

Mario

Hi @marioruiz, I started fresh with PYNQ SD card image 2.7 because it is the only version that I can download from PYNQ - Python productivity for Zynq - Board. Do you know where I can download the older 2.6 images?
If version 2.7 is the only option now, do you have a tutorial similar to this one for 2.7? (The Composable Video Pipeline)
Thank you!

You can install it in 2.7.

Follow the steps here GitHub - Xilinx/PYNQ_Composable_Pipeline at v1.0.0-dev, just a minor modification to grab the v1.0.0-dev branch. The version 1.0.0 will be released soon, but it is stable for you to use it.

git clone https://github.com/Xilinx/PYNQ_Composable_Pipeline -b v1.0.0-dev
python3 -m pip install PYNQ_Composable_Pipeline/ --no-build-isolation
pynq-get-notebooks pynq-composable -p $PYNQ_JUPYTER_NOTEBOOKS

Mario

1 Like

Thank you @marioruiz ! I no longer have code execution error although I have not gotten any video output to a screen yet. I will try different devices to ensure I have good input/output.
BTW, can I use a USB webcam for this code? I ran with a USB webcam but not seeing any output.
PYNQ_Composable_Pipeline/pynq_composable/notebooks/custom_pipeline/08_webcam_pipeline.ipynb

Chris

Yes, you can use a webcam. Did you try the standard notebooks that use a webcam, notebooks that are delivered in the PYNQ SD card image itself?

1 Like