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
I'm running Debian/Trixie on an AMD64 system. I got GarminExpress to work using cbeley's scripts (which don't work directly as downloaded - they refer to other scripts and also have his name embedded). Anyway, I got it to launch but wouldn't recognize the device. I added the device as a drive using winecfg but that didn't help.
I can see the device and its files from Linux. Interestingly a lot of the folders have a 1979-12-31-date stamp. I know the device is old but these dates don't seem reasonable. Other dates are from 2007, 2008, 2010, 2014, 2019 and 2022, which seem more like how the device was actually used.
I'm not sure why usb should prove to a problem for wine. It seems to me that wine should just be able to recognize the ports directly.