Hello, I have a problem using the Digispark ATtiny85 by Digistump. It seems that compiling works, but it fails at this line:
/home/rootofinfinity/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
For reference, the digispark is a very small usb board that can be used kinda like a rubber ducky, in that it transmits information to the computer in keyboard input and such. Hence why you need to upload and then plug it in. I donāt know if that has significance, but Iād thought Iād mention it. I thought it was just an issue of it assuming FHS, so I did it with a steam-run arduino-ide
. Same error. Same error also appears when running the latest version appimage of Arduino IDE with appimage-run
. Gotta be honest, kinda pulling my hair out at this error, would definitely appreciate it if anyone has a suggestion.
Picture for reference.
you should installed arduino-core from nixpkgs
libusb-0.1.so is include arduino-core (libusb-compat-0_1)
Have a look at these maybe:
There are few results with the issue you mention, just search online with these keywords: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
Seems to point to either:
- symlink missing for the
.so
64
vs 32
bits compatibility
Thank you all for the support! I did some research, and found that libusb.0-1.so.4
is the OLD version of libusb, that is seemingly not in nixpkgs. There is pkgs.libusb-compat-0_1
, that is supposed to translate libusb-0.1
calls to libusb-1.0
calls instead. I did not get that working, so I did more research into the digispark board specifically.
I found the āimprovedā version of the package I was using on arduino-ide, as noted by this github page:
Available as Arduino Board Manager entry āDigistump AVR Boardsā using the Board Manager URL: https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json
This thankfully works (finally), but we are left with arduino-ide not having the permissions to interact with said usb. Just add some udev rules as outlined by this github page:
services.udev.extraRules = ''
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", OWNER:="rootofinfinity"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", OWNER:="rootofinfinity", ENV{ID_MM_DEVICE_IGNORE}="1"
'';
In the end, it was much more simplistic than I originally thought. Thanks for your help everyone!
1 Like