Yes, Windows and Linux use different path delimiters, but the stock uncompress apps (i.e. double-click in the gui) for both OSes are smart enough to handle that.
If only

Ark is the default on KDE (double click to open, or right click to extract directly) and fails to handle it. The bug report has been open for 2 years with only 1 comment and 1 duplicate, so I guess people just don't run into it very often. It was a first for me, hence the initial assumption it was a problem with the file instead of the tool I used to extract it.
@webfrog what did you use? If we can narrow it down we can at least add a warning for those likely to run into this.
There are a number of different ways documented to install .net 8. The one that works easiest and best is to follow Microsoft's instructions. When you download the archive file it shows a page of instructions with essentially 3 bash lines (untar and then add a couple of path settings). Run those and it's done. The built-in Ubuntu methods (like snap) didn't do it for me. In my README there are also lines that worked reliably.
So is Documentation/FixUbuntu.txt obsolete?
I prefer to use the packaged versions wherever possible as it's almost always less painful in the long run - updates, dependencies etc. I've also run into too many vendor-supplied scripts that do bad things to run them blind. I'll look into it if it's really necessary, in which case a warning that alternate methods won't work would be useful. From a quick read of the instructions it looks like it might install a full SDK not just a runtime, and possibly multiple versions. I'm a bit confused about what dependencies are for running binaries vs. to compile everything.
You must also install libusb as described in the README since it just isn't in a stock Ubuntu build. This does a build and could be better but works. My MacOSX and Windows installs have a pre-compiled libusb but the Linux flavors do builds.
I already have libusb-1.0-0 installed due to other things using it. I assumed libusb-1.0-0-dev wouldn't be needed as I'm just running the binaries not compiling anything - compile time vs. runtime dependency confusion again.
Finally, yes, the USB ports require permission, and numerous links provided the exact same method so that's what I showed in my README. It works and is very low-risk, it just creates a group with USB permission and adds yourself as the one group member (which requires admin permission). Yes, the USB permission is rather broad but it's a lot easier than specifying exactly which dll & version to allow and we're not exactly plugging the DSPi into a secure corporate server.
Bad security practice remains bad even when it 'works' and is widely repeated, or set as the default. It's how we end up with so many poorly secured servers exposed on the internet. This is like 'fixing' a blocked port by turning off the whole firewall instead of identifying and opening the port you need. Doing it properly isn't much harder, and it should stop former sysadmins complaining
I have no issue with creating a group and adding yourself to it - that part is a good idea, but might not be needed which I'll come to. The issues are:
1. Instead of adding just a group write permission (0664 or even 0660) you make it writeable by everybody (0666) - if you had meant to do that then you could have skipped creating the group.
2. You apply this permission to every USB device, not just the one that needs it. We know the vendor and product IDs so we can limit on those using something like:
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8b", ATTRS{idProduct}=="feaa", MODE="0660", group="usbwriters"
As for rebooting, it shouldn't be necessary although it's the easiest to explain than reloading udev rules. I think you can use 'TAG+="uaccess"' instead of the group to grant access to the currently logged in user, but in the long run (making it a service rather than just being run by a logged in user) the group is probably better.
So far I have a Pico (RP2040) running DSPi-RP2040-v1.1.4-beta2.uf2 and appearing as an audio device. I can run DSPiCliServer and get the web page, but it just says it's not connected:
Code:
[14:30:24] Sent: get_presets | Received: Not connected
[14:30:24] Sent: get_activepreset | Received: Not connected
[14:30:24] Sent: get_vol | Received: Not connected
[14:30:25] Sent: get_loudness | Received: Not connected
[14:30:25] Sent: get_leveling | Received: Not connected
[14:30:25] Sent: get_crossfeed | Received: Not connected
[14:30:25] Sent: get_samplerate | Received: Not connected
[14:30:25] Sent: get_deviceid | Received: Not connected
[14:30:25] Sent: get_input | Received: Not connected
[14:30:25] Sent: is_running | Received: False
Is there a verbose logging option to help me find out where the problem is?