# Using Yakut monitor on Raspberry Pi compute module 4

**URL:** <https://forum.opencyphal.org/t/using-yakut-monitor-on-raspberry-pi-compute-module-4/1399>\
**Category:** CLI tools (Cynic/Yakut)\
**Created:** [August 19, 2021, 12:49pm UTC](https://forum.opencyphal.org/t/using-yakut-monitor-on-raspberry-pi-compute-module-4/1399 "2021-08-19T12:49:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rebeccaRossRobotics](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/rebeccarossrobotics/32/1387_2.png) [@rebeccaRossRobotics](https://forum.opencyphal.org/u/rebeccaRossRobotics)\
**Post date:** [August 19, 2021, 12:49pm UTC](https://forum.opencyphal.org/t/using-yakut-monitor-on-raspberry-pi-compute-module-4/1399/1 "2021-08-19T12:49:38Z")

</div>

Hi,

I’m currently trying to install yakut onto a raspberry pi compute module 4.  
I’ve followed the install instructions found [here](https://forum.opencyphal.org/t/screencast-of-installing-configuring-yakut/1197), however when i try to run yakut moniter i get the following error: OSError: /usr/local/lib/python3.8/dist-packages/libpcap/\_platform/\_linux/x64/tcpdump/libpcap.so: cannot open shared object file: No such file or directory

The full output with verbose is this:

```auto
  File "/usr/local/bin/yakut", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/yakut/main.py", line 209, in proxy
    return loop.run_until_complete(f(*args, **kwargs))
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.8/dist-packages/yakut/cmd/monitor/_cmd.py", line 132, in monitor
    iface = Iface(node)
  File "/usr/local/lib/python3.8/dist-packages/yakut/cmd/monitor/_iface.py", line 30, in __init__
    node.presentation.transport.begin_capture(self._process_capture)
  File "/usr/local/lib/python3.8/dist-packages/pyuavcan/transport/udp/_udp.py", line 292, in begin_capture
    self._sniffer = self._sock_factory.make_sniffer(self._process_capture)
  File "/usr/local/lib/python3.8/dist-packages/pyuavcan/transport/udp/_ip/_v4.py", line 142, in make_sniffer
    return SnifferIPv4(self._local, handler)
  File "/usr/local/lib/python3.8/dist-packages/pyuavcan/transport/udp/_ip/_v4.py", line 151, in __init__
    self._link_layer = LinkLayerSniffer(filter_expression, handler)
  File "/usr/local/lib/python3.8/dist-packages/pyuavcan/transport/udp/_ip/_link_layer.py", line 122, in __init__
    dev_names = _find_devices()
  File "/usr/local/lib/python3.8/dist-packages/pyuavcan/transport/udp/_ip/_link_layer.py", line 341, in _find_devices
    import libpcap as pcap
  File "/usr/local/lib/python3.8/dist-packages/libpcap/ __init__.py", line 7, in <module>
    from ._pcap import * ; del _pcap # noqa
  File "/usr/local/lib/python3.8/dist-packages/libpcap/_pcap.py", line 73, in <module>
    from ._dll import dll
  File "/usr/local/lib/python3.8/dist-packages/libpcap/_dll.py", line 10, in <module>
    raise exc
  File "/usr/local/lib/python3.8/dist-packages/libpcap/_dll.py", line 8, in <module>
    dll = DLL(DLL_PATH)
  File "/usr/lib/python3.8/ctypes/ __init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python3.8/dist-packages/libpcap/_platform/_linux/x64/tcpdump/libpcap.so: cannot open shared object file: No such file or directory

```

Does anyone know how to fix this?  
Thanks

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [August 20, 2021, 2:43pm UTC](https://forum.opencyphal.org/t/using-yakut-monitor-on-raspberry-pi-compute-module-4/1399/2 "2021-08-20T14:43:58Z")

</div>

I see that you are using the UAVCAN/UDP transport, that’s cool.

Yakut is built on top of PyUAVCAN, which has an optional dependency on libpcap if the UAVCAN/UDP transport is needed:

> <https://github.com/UAVCAN/pyuavcan/blob/76f29d67938a8f3dc6a44eb1c812049fdd757f2e/setup.cfg#L49-L50>

The sources of the libpcap wrapper are here: [https://github.com/karpierz/libpcap](https://github.com/karpierz/libpcap). It comes with prebuilt native libraries for some of the platforms, including GNU/Linux x86/x86\_64, Windows, and macOS. Prebuilt libraries for ARM-based platforms are not included, for which you have two solutions:

- **Quick and dirty:** install the native libpcap for your platform and symlink `libpcap.so` from the path referenced in your original post.

- **Proper:** send a pull request against the libpcap wrapper adding support for your platform, or modify the wrapper to search for the libpcap binary in the standard lib paths for the system.

---

<div class="post-metadata">

**Author:** ![rebeccaRossRobotics](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/rebeccarossrobotics/32/1387_2.png) [@rebeccaRossRobotics](https://forum.opencyphal.org/u/rebeccaRossRobotics)\
**Post date:** [August 23, 2021, 10:59am UTC](https://forum.opencyphal.org/t/using-yakut-monitor-on-raspberry-pi-compute-module-4/1399/3 "2021-08-23T10:59:26Z")

</div>

Thanks very much! all working now!!

Just incase anyone else has this issue and want’s to know what i did to fix this I followed this link: [https://stackoverflow.com/questions/59507388/cross-compile-libpcap-dev-aarch64](https://stackoverflow.com/questions/59507388/cross-compile-libpcap-dev-aarch64)

And then deleted the libpcap.so file at the location “/usr/local/lib/python3.8/dist-packages/libpcap/\_platform/\_linux/x64/tcpdump”

At that same location i created a symlink to the libpcap.so file compiled with this command:  
ln -s /usr/lib/aarch64-linux-gnu/libpcap.so libpcap.so
