Roon control GUI working on Linux using Wine

Sorry to necropost. I also have this requirement, but I have Roon control working on Linux using Wine.

The key is to create a unique Wine instance just for Roon.

Create the Wine instance, I create a 32 bit instance, I can no longer recall why but haven’t changed it as it works (note WinRoon is the directory name I choose, its not overly important)

env WINEPREFIX=/home/alan/WinRoon WINEARCH=win32 wine wineboot

Set the Window version to Win7

env WINEPREFIX=/home/alan/WinRoon winecfg

Install .Net 4.5

env WINEPREFIX=/home/alan/WinRoon winetricks dotnet45

Install Roon (previously downloaded)

env WINEPREFIX=/home/alan/WinRoon wine /home/alan/Downloads/RoonInstaller.exe

That should install it. Then to run it use the following (with the correct path)

env WINEPREFIX=/home/alan/WinRoon wine-stable /home/alan/WinRoon/drive_c/users/alan/Local\ Settings/Application\ Data/Roon/Application/Roon.exe

I had to mess around with .desktop files to get it to appear in my menus but it works, its a little unstable and drops connection to the server often.

NOTE the Windows bridge/output portion does NOT work. I installed the Linux bridge, configured it using a different, native Roon control (on my phone - its a bit weird to do it that way, but if you think it through you can see why), but now have local playback on Linux. Volume control doesn’t play that nicely with PulseAudio though, but its not a major issue.

5 Likes

Thanks @am4c130d for your post. I’ll try it soon.

OK, I take back the PulseAudio comment.

I changed the Roon Linux bridge to fixed volume, and can control the volume using the PulseAudio vol control.

As the Roon audio transport fails if I have the PA mixer open (I presume PA then grabs the device and locks Roon out), what is happening is PA is only controlling the device Roon is using. Perversely, I prefer it like this, as I like having the vol control in my taskbar and not only within the app.

Maybe this works: https://anbox.io/ (until a native client is on the way)?
Update: I don’t know myself / haven’t tried it.

I’m running it on wine. runs fine!

I’ve been trying to get it installed in Wine but having issues getting dotnet45 installed. I will try again today. If you have any tricks to get it running I’d appreciate the help.

Try roon web. Works just fine for us Linux users.

Follow this instruction:

https://community.roonlabs.com/t/roon-control-linux/23081/14

Be nice to have a Docker container for this, or a snap.

Agreed. I’m working on a (very) simple script to make it easier for @Scott_Muckleroy. Next step would be to put in a docker.

2 Likes

I think I’m having the same issues with dotnet45. The installation process hangs.

Failure to install dotnet45 is a Wine issue, may be worth going to their forum for help. I can’t recall if dotnet45 was the version specifically needed, or if you could use other versions - it may simply be that dotnet45 has been replaced or an older one will suffice.

When first getting this going, I created many Wine instances as I experimented away, if you are having problems with dotnet45, create other Wine instances and try a different version of dotnet in each - once you have one that works well, delete the old ones. Since doing this, I now install a unique instance of Wine for every application - its definitely a more robust approach.

I hope that helps.

Of course, a native app would be the best - wrapping the web app in electron or similar would be almost as good for the Roon Remote.

Never tried making a snap, but apparently others have: https://forum.snapcraft.io/t/winesnap-creating-snaps-for-windows-applications/6392

@Bill_Janssen and @Scott_Muckleroy,

I’ve hacked a script together, which you can find here: https://github.com/RoPieee/roon-on-wine

It’s very beta-ish, but I’m going on holiday and wanted to have something before I go ‘offline’.
Feel free to try it out and provide feedback. I’ll work on it some more when I’m back from holiday.

This script can also be used to create a snap, so I think we can combine the efforts here.

Oh. It takes some time. Be patient :wink:

Just tried it on 16.04. Goes OK till it opens browser tabs and prompts to download the Microsoft XML Parser. Then on top of that a Roon installer pops up, and says it will install dotnet, which it does, but when the Roon installer ends, an error window comes up saying it doesn’t have the correct version of .NET: “To run this application, you must first install one of the following versions of the .NET Framework: 4.0.30319.” Need some user coaching about what to do with the pop-up installers and download pages.

Hangs with this error. The Roon installer still starts up, but is pointless. Apparently the winetricks install of dotnet45 doesn’t error out properly.

fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization Service"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000457,(nil),0x0001,0x00000000,0x94e1fc,(nil)): stub
err:eventlog:ReportEventW L".NET Runtime Optimization Service (clr_optimization_v2.0.50727_32) - Service reached limit of transient errors. Will shut down. Last error returned from Service Manager: 0x80040155.\n"
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization Service"): stub
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
  C-c C-c^C

Ok. Did you gave it time enough?

Which version of Wine are you running? (wine --version)

Hmmm… Ubuntu doesn’t seem to have the latest Wine.
Can you follow this instruction and try again? https://wiki.winehq.org/Ubuntu

It hung for about 30 minutes, no I/O, no CPU activity, before I killed it.

After some struggle with apt dependency issues, I managed to install winehq-stable. Hung again. The hang is because I’m running in an Emacs shell buffer, and Windows interacts badly with the terminal there. There was a prompt that wasn’t being shown:

Are you sure you want to delete the registry key 'HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled'? (Yes|No)

This prompt occurs twice during the dotnet45 install.

So tried again in a Terminal windows. The next issue is three further downloads that have to be done manually, for some reason. After downloading each to the specified subdirectory of ~/.cache/winetricks/, I removed ~/my_roon_instance, and started install.sh fresh.

Another problem is that during the install of dotnet20, the Windows version is set to win2k, and then at the end of the dotnet45 install, the Windows version is set to Windows 2003, so when the Roon installer runs, it fails because it requires Windows 7.

Once dotnet45 is installed, and the Windows version is set back to Windows 7, the installation of Roon goes smoothly, and the UI comes up fine.

Thanks for putting this together! Really appreciate it.

1 Like

Continuing the discussion from Roon control GUI working on Linux using Wine:

It works for me on debian testing, this finally convinced me to pay for roon as i really didn’t like controlling from my android because i use roon as an ‘all in one’ on my laptop.

what i did:
install wine as explained in the debian wiki:
https://wiki.debian.org/Wine
i just did the standard installation plus installed winetricks.

(Note: I’m not sure if the following two downloads are really required but only after i did it the dotnet45 installation completed successfully and the roon launcher works and stopped complaining about mono is not installed or mono could not be loaded.)
download wine-mono-4.5.0.msi and place it in /usr/share/wine/mono/ and give the directory read access.
https://dl.winehq.org/wine/wine-mono/4.5.0/

downloaded wine_gecko-2.47-x86_64.msi and wine_gecko-2.47-x86.msi and place them in /usr/share/wine/gecko/ and give the directory read access. probably only the x86_64 is required.
https://wiki.winehq.org/Gecko

then:
WINEPREFIX=$HOME/.wine/my_roon_instance WINEARCH=win32 wine wineboot

WINEPREFIX=$HOME/.wine/my_roon_instance winetricks dotnet45

launch winecfg and change windows version to 7
WINEPREFIX=$HOME/.wine/my_roon_instance winecfg

download roon installer
http://download.roonlabs.net/builds/RoonInstaller.exe
and install it:
WINEPREFIX=$HOME/.wine/my_roon_instance wine RoonInstaller.exe

it installs fine and magically i have a gnome launcher for it under: $HOME/.local/share/applications/wine/Programs/Roon.desktop
and i can launch it as any other gnome app.

I’m using it for an hour now and it works fine, when radio is playing there’s sometimes a long delay between tracks but i can’t say if it has to do with the wine installation.

2 Likes