{"id":827,"date":"2022-02-10T20:36:32","date_gmt":"2022-02-10T19:36:32","guid":{"rendered":"https:\/\/spoton.cz\/?p=827"},"modified":"2024-11-22T07:59:18","modified_gmt":"2024-11-22T06:59:18","slug":"garmin-software-on-linux","status":"publish","type":"post","link":"https:\/\/spoton.cz\/index.php\/2022\/02\/10\/garmin-software-on-linux\/","title":{"rendered":"Garmin software on Linux"},"content":{"rendered":"\n<h2 id=\"the-basic-problem\">The basic problem<\/h2>\n\n\n\n<p>The absolute basic problem with buying a Garmin product, be it a Garmin GPS, smartwatch, smartwig or a freakin&#8217; Garmin dildo is that any of the apps does not support Linux. Event if there is a pretty large community around the Garmin Open Source section, most of the devices use proprietary stuff for firmware uploads and general updates of data. <\/p>\n\n\n\n<h2 id=\"setting-the-scene\">Setting the scene<\/h2>\n\n\n\n<p>I have recently acquired a Garmin Fenix 6 smartwatch, because I was fed up with the socialist built Mi semi-smart watch from the Stratos(phere) 3, that regularly stopped working or syncing. This, more than often left me with unfinished workouts, or no logs at all. I do wish from the new device to be capable of doing it&#8217;s job flawlessly &#8211; especially for the money. By doing it&#8217;s job, it is primarily for logging workouts with accurate enough heart rate, O2 measurements are a bonus.<\/p>\n\n\n\n<p>The Garmin family does come at a cost. Not everything can be done from a smart phone, so, a computer is needed. A standard computer comes with an operating system. The operating system (meaning Windows) or MacOS. Anything else is not supported and you can go flick yourself. <\/p>\n\n\n\n<h2 id=\"the-solution\">The solution <\/h2>\n\n\n\n<p>The first ever thing that comes into your mind when you need to run a WIndows executable on a Linux machine, well, contrary to popular belief &#8211; a VM! This is my personal experience \/ preference, because I was almost never completely successful with running Win32\/64 binaries in Wine. And when, they had a lot of stuff either missing, or garbled. Especially fonts, or when additional packages are required. And ESPECIALLY, when the binary tried to interact with a peripheral. As it comes, the USB connected watch would be the later here. <\/p>\n\n\n\n<p>While I have found very little evidence of people successfully running GarminExpress in Wine, I decided to try this route first, contrary to my previous experience. <\/p>\n\n\n\n<p>I have no idea how people determine which extra packages are needed for a particular application to run successfully, but I&#8217;ve found a very promising video on Youtube: https:\/\/www.youtube.com\/watch?v=hg01Z6VCox0<\/p>\n\n\n\n<h2 id=\"long-story-short-the-sequence-of-this-video-is-as-follows\">Long story short, the sequence of this video is as follows:<\/h2>\n\n\n\n<ol><li>Prepare the environment for binary (including the packages: dotnet,vcrun,corefonts and d3dcompiler)<\/li><li>Additional settings for the env to really be Win7<\/li><li>Run the installer with a specific setting to emulate the task bar. This step proved to be crucial<\/li><li>Modify the Wine launcher to reflect the option of virtual desktop AND a taskbar<\/li><\/ol>\n\n\n\n<h2 id=\"quick-and-dirty-commands\">Quick and dirty commands<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># WINEARCH=win32 WINEPREFIX=\/home\/ventil\/GarminExpress --unattended winetricks dotnet472 vcrun2010 corefonts d3dcompiler_47\n# WINEARCH=win32 WINEPREFIX=\/home\/ventilGarminExpress winetricks win7\n# WINEARCH=win32 WINEPREFIX=\/home\/ventil\/GarminExpress wine explorer \/desktop=garmin,1200x720 \/home\/ventil\/Downloads\/GarminExpress.exe<\/pre>\n\n\n\n<h2 id=\"1-env-preparation\">1, Env preparation <\/h2>\n\n\n\n<p>Short recap of what is listed on the Garmin site as requirements:<\/p>\n\n\n\n<ul><li>Windows 7 Service Pack 1 or newer<\/li><li>Microsoft .NET 4.7.2 (included in the download)<\/li><li>1024 x 768 display<\/li><li>USB port<\/li><li>1 GB RAM<\/li><li>High-speed Internet access (not for use with dial-up, mobile, or satellite connections)<\/li><li>Up to 20 GB free disk space<\/li><\/ul>\n\n\n\n<p><strong>WINEARCH=win32<\/strong> is quite self-explanatory, this will be set up for a 32-bit architecture, not a 64-bit<\/p>\n\n\n\n<p><strong>WINEPREFIX=\/home\/ventil\/GarminExpress<\/strong> is the destination directory which will be used as the Windows emulated home, C drive and whatever you configure. This is also the path where the binary will be installed. Under &#8220;Program Files&#8221;<\/p>\n\n\n\n<p><strong>winetricks<\/strong> &#8211; this defines you want to configure the environment, not launching an app. This is to be followed by the list of packages to include in the env. The more you select, the more it needs to download, the more will the win home grow. Currently, I have no idea how to determine which packages are needed for the desired application \/ binary<\/p>\n\n\n\n<p><strong>dotnet472<\/strong> &#8211; is currently the last stable version for wine. GarminExpress refused to work with previous versions, so make sure that you try out different versions of .NET if you encounter problems. Side note: you&#8217;ll need to set up the env from beginning after deleting the WinePrefix. In all, it is listed in the requirements, isn&#8217;t it?<\/p>\n\n\n\n<p><strong>vcrun2010<\/strong> &#8211; Visual C++ 2010 libraries (mfc100,msvcp100,msvcr100) (Microsoft, 2010). How somebody determined this needs to be there? No idea, was not able to find any info on this. Just keep in mind that a lot apps are dependent on this. How to determine the version? Well&#8230;<\/p>\n\n\n\n<p><strong>d3dcompiler_47<\/strong> &#8211; the latest version of MS compiler. Why? Ehm&#8230; <\/p>\n\n\n\n<p>It might be that the last 2 packages are part of the SP1 for Win7, who knows?<\/p>\n\n\n\n<h2 id=\"2-additional-win7-setting\">2, Additional Win7 Setting<\/h2>\n\n\n\n<p>This is actually quite clear and already present in the requirements taken from the Garmin site.<\/p>\n\n\n\n<h2 id=\"3-running-the-installer\">3, Running the installer<\/h2>\n\n\n\n<p><strong>wine<\/strong> &#8211; obviously start wine, followed by what should actually be run.<\/p>\n\n\n\n<p><strong>explorer \/desktop=garmin,1200&#215;720 <\/strong>&#8211; this is the crucial part. We need to run explorer to setup a fictive, virtual desktop with some name and a resolution of 1200&#215;720. This is my choice, but you can clearly see that the minimal required is 1024&#215;768. Funny enough, 720 was accepted for the vertical resolution, np.<\/p>\n\n\n\n<p><strong>\/home\/ventil\/Downloads\/GarminExpress.exe<\/strong> &#8211; as the last argument, the downloaded installation binary. This should be replaced by whatever path you have downloaded it to. <\/p>\n\n\n\n<h2 id=\"additional-concerns\">Additional concerns<\/h2>\n\n\n\n<p>Keep in mind, that the versions of packages and OS version required might change for future releases of GarminExpress. Please check this first with the requirements on their page. <\/p>\n\n\n\n<p>Also, there might some issues with the USB permissions, when WIne would not have access to the hardware descriptor file. Please consult your OS documentation on how to make this available, or which groups should the user be part of&#8230; Arch Linux had 0 issues in this regard. <\/p>\n\n\n\n<h2 id=\"4-final-step-modify-the-launcher\">4, Final step, modify the launcher<\/h2>\n\n\n\n<p id=\"block-1fd6537a-04ec-4aa2-9050-deea1d2ceaaf\">Launcher content on your desktop: ventil@temelin:~\/Desktop$ cat &#8216;Garmin Express.desktop&#8217;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Desktop Entry]\nName=Garmin Express\nExec=env WINEPREFIX=\"\/home\/ventil\/GarminExpress\" wine C:\\\\Program\\ Files\\\\Garmin\\\\Express\\\\express.exe\nType=Application\nStartupNotify=true\nIcon=7F32_express.0\nStartupWMClass=express.exe<\/pre>\n\n\n\n<p>Should be changed to:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Desktop Entry]<br>Name=Garmin Express<br>Exec=env WINEPREFIX=\"\/home\/ventil\/GarminExpress\" wine explorer \/desktop=garmin,1920x1080 C:\\\\Program\\ Files\\\\Garmin\\\\Express\\\\express.exe<br>Type=Application<br>StartupNotify=true<br>Icon=7F32_express.0<br>StartupWMClass=express.exe<\/pre>\n\n\n\n<p>Have you notices the subtle difference? Just adding the section with the explorer and desktop settings. This emulates a taskbar as well. This is (sadly) needed. <\/p>\n\n\n\n<p>Enjoy!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"591\" src=\"https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-1024x591.png\" alt=\"\" class=\"wp-image-828\" srcset=\"https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-1024x591.png 1024w, https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-300x173.png 300w, https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-768x443.png 768w, https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-1536x886.png 1536w, https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image-480x277.png 480w, https:\/\/spoton.cz\/wp-content\/uploads\/2022\/02\/image.png 1924w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The basic problem The absolute basic problem with buying a Garmin product, be it a Garmin GPS, smartwatch, smartwig or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":830,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,9],"tags":[38,118,116,61,117,119,120],"_links":{"self":[{"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/posts\/827"}],"collection":[{"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/comments?post=827"}],"version-history":[{"count":2,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/posts\/827\/revisions"}],"predecessor-version":[{"id":859,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/posts\/827\/revisions\/859"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/media\/830"}],"wp:attachment":[{"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/media?parent=827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/categories?post=827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spoton.cz\/index.php\/wp-json\/wp\/v2\/tags?post=827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}