I’m trying to get my ChipWhisperer running on a MacBook with the M1 processor, and am getting the error below when attempting to run Setup_Generic.ipynb. Has anyone run into this issue before? I’d really appreciate some help. “No backend available” seems to be the primary error.
Traceback (most recent call last):
File “”, line 3, in
if not scope.connectStatus:
NameError: name ‘scope’ is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/Users/me/miniforge3/envs/tf24/lib/python3.8/site-packages/chipwhisperer/hardware/naeusb/naeusb.py”, line 314, in txrx
response = self.get_possible_devices(payload)
File “/Users/me/miniforge3/envs/tf24/lib/python3.8/site-packages/chipwhisperer/hardware/naeusb/naeusb.py”, line 433, in get_possible_devices
dev = list(usb.core.find(idProduct=id, **my_kwargs))
File “/Users/me/miniforge3/envs/tf24/lib/python3.8/site-packages/usb/core.py”, line 1299, in find
raise NoBackendError(‘No backend available’)
usb.core.NoBackendError: No backend available
PyUSB requires libusb0 or libusb1 as a backend. I’m not sure what compatibility is on Mac for either of these libraries. You may just need to install one manually. libusb0 hasn’t been developed for a while at this point, so I’d check libusb1 first.
I tried installing both libusb and libusb1 via pip and unfortunately still got the same error. I looked to see what I had on my old Mac and found that neither of them were in my site-packages for that env strangely (which the ChipWhisperer worked in). libusb was installed via brew on that laptop though, so I did that on my new one as well, but yet again hit the same error. Is there something else it could be, or maybe it’s a path issue?
You won’t be able to install libusb via pip as it’s written in C, not Python (https://libusb.info/ is the library, source is https://github.com/libusb/libusb). I know it supports all the major x86 platforms, but I’m not sure if it runs on the M1. If may be that you need to compile libusb yourself, or it may not support the M1 at all.