First we start by creating a wineprefix and installing our prerequisites from terminal:
WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks dotnet452 vcrun2010 corefonts
WINEARCH=win32 WINEPREFIX=/home/$USER/GarminExpress winetricks win7
Note: You will be prompted during the setup for .NET installation just hit next and finish. Also, I like to seperate win7 after the prerequisites are setup to make sure the wineprefix runs in Windows 7 mode.
With that out of the way we need to download and install our GarminExpress.exe Setup executable. I downloaded mine from https://www.garmin.com/en-US/software/express
Run the GarminExpress.exe file in our wine prefix
WINEPREFIX=/home/$USER/GarminExpress wine explorer /desktop=garmin,1366x768 /home/$USER/Downloads/GarminExpress.exe
Note: If you downloaded the GarminExpress.exe to another location replace it above
Modify your shortcut to be the following command
WINEPREFIX=/home/$USER/GarminExpress wine explorer /desktop=garmin,1366x768 ‘/home/$USER/GarminExpress/drive_c/Program Files/Garmin/Express/express.exe’
Upon Launch you should see this screen which should recognize your Garmin device
Just tried this all out, and it all works with @MJWootton 's notes. However, I also wanted to make the install 100% headless/unattended and noticed some other things. I was able to update my Inreach Mini without issue on Ubuntu. My notes and links to my scripts:
wine explorer /desktop=garmin,1366x768
does not seem necessary to run it once installed.--unattended
to not have to go through all the prompts with winetricks:winetricks --unattended dotnet472 vcrun2010 corefonts d3dcompiler_47
/passive
option. With this, you do not have to click a single button to install it and it auto-exits upon completion:wine explorer /desktop=garmin,1366x768 ./GarminExpress.exe /passive
.desktop
file wine will create for you automatically is not very useful. You can delete if you'd like:rm -rf "$HOME/.local/share/applications/wine/Programs/Garmin"
The unattended install scripts I wrote are here (though, they are meant to be executed within the context of my environment repo, but may be useful to some):
.desktop
file placed in$HOME/.local/share/applications/Garmin-Express.desktop
: https://github.com/cbeley/beleyenv/blob/master/installScripts/installGarminExpress/GarminExpress.desktopI appreciate the notes from others! Wanted to pay it forward.