Deep Harmony on RoPieee?

Has anyone had any luck getting Deep Harmony running on RoPieee? I’m not at all familiar with Linux or Docker, but I’ve tried both installation methods. With Docker I’m getting stuck at ‘error response from daemon: unable to find “net_prio” in controller set: unknown’ when I try to run the Deep Harmony Docker container. With the Linux console application, I’m able to download the Arm zip, extract it, but then I get “permission denied” when trying to run the run.sh script. It’s possible I’ve extracted the zip to the wrong location. I’m just tinkering and really have no idea what I’m doing, so I’m open to all suggestions.

Hi @randing, I’ve got no experience with Deep Harmony but plenty of Linux experience. I suspect that to run the script it’s a case of missing executable permissions, so from a console in the directory with run.sh type chmod +x ./run.sh then try ./run.sh. That said I’d be a little cautious as there’s very little visible source, the project on GitHub’s just a README and a bunch of binaries. The run.sh file looks fairly carelessly written:

#!/bin/sh
until env DEBUG="*" ./roon-extension-deep-harmony; do
    echo "roon-extension-deep-harmony terminated with exit code $?.  Restarting.." >&2
    if [ -f ./roon-extension-deep-harmony.old ]; then
        rm ./roon-extension-deep-harmony.old
    fi
    if [ -f ./downloads/roon-extension-deep-harmony ]; then
        mv ./roon-extension-deep-harmony ./roon-extension-deep-harmony.old
        mv ./downloads/roon-extension-deep-harmony ./roon-extension-deep-harmony
        chmod 777 ./roon-extension-deep-harmony
        rm ./readme.html
        mv ./downloads/readme.html ./readme.html
    fi
    sleep 1
done

and makes some assumptions about operating above a downloads directory. Proceed with care and good luck.

1 Like

Thanks, that was it. I ran chmod +x on run.sh and on the executable (or whatever the actual program is called in Linux), then I was able to successfully run the script.

Thanks for the heads up about the security concerns. The developer is active on here and the source code is available on GitHub, but we’re already well beyond my skillset as for verifying what’s happening in the background. (edit: you’re already parsing the source above)

Do you have the repo link for this please? This https://github.com/Khazul/roon-extension-deep-harmony-release is just a release wrapper with no source. The docker images aren’t sporting public Dockerfiles either, hence my caution.
Edit

The run.sh source isn’t under source control, I unpacked it from the zipped package. There’s a big 43MB binary in there as well and I’ve no idea of the provenance of it. I’m not trying to put you off, I’m more wary of encouraging you without fair warning is all.

There’s downloads at the bottom of this page, but that might be what you’re already reviewing.

Sorry, that’s right but please read my edit above.

Thanks, I appreciate the heads up before shooting myself in the foot.

Remember to put your head down again or you might miss :wink:

lol, any tips for getting the script to run as a service? As soon as I kill my SSH session the script is also killed.

Rather than go full service at first I’d look at detaching from your terminal session. It’ll mean that it won’t survive reboots but you might have a bit more control if something unexpected happens. Once you’re sure it’s all good go service?

And worry not, with me to guide you there’s no way your foots coming out unharmed. :stuck_out_tongue: It’s lateish here so signing off now. Good luck

That’s an even better idea, then I can always power cycle the Pi to get out of trouble. It’s like you’ve done this before or something, lol. I got dtach installed, but struggling with syntax. I’ll keep fumbling with it. Thanks for the help.

If you install anything on Ropieee it may well get wiped next update. Its not a distro to install things on its limited to just run what it ships with. Your better using dietpi. Install docker and extension manager and use extension manger to run it.

1 Like

That’s a good point. I may pick up another Pi to play with.