Specifically, I have a Garmin Forerunner 305 (a GPS-enabled, hear-rate-monitor for runners). I plug it in to the USB port and it is not recognized by Ubuntu at all. I'd like to be able to have it recognized, so that I can pull the exercise record from the watch. This would allow me to upload it to the Garmin Connect website, or perhaps use a Linux exercise software option. I'd also appreciate suggestions for exercise software to use with the Garmin.

6 Answers 6


Maybe these will help you connecting to your Garmin device.

  • 2
    This page has a lot of info -- maybe too much, really. It also seems aimed at Hardy-era Ubuntu. I'd like to see a simpler, clearer answer to this question, plus one that will work on Lucid. Thanks for the link, though! Commented Jul 30, 2010 at 18:23
  • 2
    I should note, though, that I did get my Garmin Forerunner to work under 10.04 with one of the options listed on this page, namely, Garmin-sync. Here: launchpad.net/garmin-sync Commented Aug 2, 2010 at 0:14

I have found that all my Linux systems will mount my Garmin 500 and I can access the device like a USB drive.

To import my activities into Strava, I just go to the device and within the Garmin/Activites folder there are all the *.fit files. The file names are in the format YYYY-MM-DD-XX-XX-XX.fit. I just select the file for that particular activity and upload it.

There is nothing magic about the Garmin uploader and it really is a terrible way to get data into Garmin connect. I don't particularly like that site, so I use Strave for everything. However, if you want to use Garmin, you can upload the files by following the instructions here

The manual upload is so much faster and way less hassle, even if I used Garmin to track my history, I would still do it manually rather than via Garmin connect.

  • 2
    Although your answer is 100% correct, it might also become 100% useless if that link is moved, changed, merged into another one or the main site just disappears... :-( Therefore, please edit your answer, and copy the relevant steps from the link into your answer, thereby guaranteeing your answer for 100% of the lifetime of this site! ;-) You can always leave the link in at the bottom of your answer as a source for your material...
    – Fabby
    Commented Jun 11, 2015 at 22:08
  • Interesting Fabby. Your point makes sense, but I would suggest the opposite. Target site might amend the answer and make it better, makinbg this "pointless" duplication. Btw, that link is now broken so your suggestion was better than mine it seems :)
    – Riccardo
    Commented Apr 11, 2017 at 6:31
  • Unrelated to the original discussion, but to get my Garmin 810 data onto Strava my device connects to my iPhone via bluetooth and syncs data to the Garmin Connect App. Then within Strava app settings via 'Link Other Services' I've mapped to the Garmin Connect app. So, I simply have to turn bluetooth on both devices and it is pushed up to Strava within minutes (internet connection depending).
    – Dan Norris
    Commented Jun 29, 2017 at 9:29
  • For some reason it works when I plug the USB cable where the watch is connected to the USB hub, but not if I just connect the watch to the USB cable which is already connected to the USB hub.
    – Étienne
    Commented Aug 2, 2020 at 13:33

I can highly recommend trying Linux Garmin Communicator Plugin. This is a "native" ubuntu solution and there is a ppa repository.

Having just got an Edge 500, I installed this plugin on Natty and it worked fine with Chrome and Firefox. The Garmin Connect upload button finds the device and uploads activities as requested.

  • This plugin appears to no longer be supported due to Garmin site changes doesn't operate.
    – flickerfly
    Commented Apr 9, 2015 at 2:01
  • The NPAPI which the Garmin plugin uses is deprecated and – in the case of Chrome – will be removed from all platforms in September 2015. So this is not going to work in major browsers anymore.
    – jnns
    Commented Apr 17, 2015 at 15:42

I am also looking for a good pure Linux answer to this. I've owned a Garmin Edge 305 for 2 years and have been a full time Ubuntu user for 3-4 years. This is (sadly) how I do it:

Install VirtualBox, then create a windows virtual machine. From there it's pretty straightforward. Install your favorite drivers and software for dealing with your training data and use it from there. (This question has a bit more on the install step if you haven't used VirtualBox at all)

Some caveats: Once you have booted into your virtual machine and selected the Garmin device from the USD devices drop down to 'plug into' the virtual machine (shows up as an 'unknown device' for me), the Garim will not immediately work. It will show up in the device manager, at this point you need to disable it and re-enable it, then you are good to go.

Clearly this isn't a pure Ubuntu solution, but given my software of choice doesn't work under linux yet, I didn't have much choice. (Zone 5's SportTracks, though supposedly they are getting close to running under Mono) There are other solutions, but this has basically been the most efficient way to deal with training data from a Garmin I've found.

  • Have you tried Garmin-sync, which I linked to above? If I install it (and also make sure python-usb is installed), plug in the Garmin and turn it on, garmin-sync will extract the files in TCX format. I can then upload these files to connect.garmin.com, which I like. I just have to open the terminal, cd to the directory, and execute "python ./garmin-sync" . The TCX files appear in a folder, titled, "Exports," in my home directory. Commented Aug 13, 2010 at 23:58
  • I did quite a while ago, though the experience was... not pleasant. It's entirely possible it's improved, I have not tried again and a Linux only solution would be awesome. Also, I should be clear that much of my unhappiness with that was due to Garmin Connect itself. I had used motionbased religiously for about two years before Garmin bought it, took it out back, shot it and replaced it with Connect, the early versions of which were pretty terrible. Commented Aug 14, 2010 at 4:31
  • Ah, I understand. Because I never used motionbased, I didn't have quite so strong an averse a reaction to Garmin Connect. It is imperfect, certainly. Let us know if you find a Linux only solution. Commented Aug 14, 2010 at 10:19

I wrote gols just for that, feel free to test it and send bug reports,

Long story short you install it like you would for any python package, then you create a systemd service that will automount your watch and launch the script on USB insert, as simple as that.

That blog post explains how it works, you'll find the link to the repo inside too.


  • First, use Software Manager or sudo apt-get from the terminal to install the garmin-forerunner-tools package.
  • Next sudo vi or sudo nano or sudo gedit /etc/udev/rules.d/51-garmin.rules and add the content SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", MODE="666" as detailed in http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=124627
  • Reboot
  • Plug in your garmin 305 and make sure it is powered on.
  • Type garmin_get_info and you should see xml output
  • Create a container directory for example mkdir garmin and cd into it
  • Type garmin_save_run and it will create subdirectories for each year and the months under each year and finally track/workout files under each month, each in gmn format. You can convert each to gpx format if you wish by using garmin_gpx ... very nice.

Thanks much to txwikinger.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .