I recently got a Forerunner 965 and wanted to load some custom maps for an upcoming trip. Turns out, Garmin devices use MTP instead of standard USB mass storage, so the filesystem doesn’t just show up in your file manager.
Here’s how I got it working on Debian 13.
The Setup#
First, make sure you have the MTP tools installed:
apt list --installed | grep -i mtpYou should see mtp-tools, jmtpfs, and libmtp9. If not, install them.
Mounting the Device#
mkdir -p ~/garmin-mount
jmtpfs ~/garmin-mountIf you get a “device is busy” error, it’s probably already auto-mounted by GVFS. Check with mount | grep mtp.
Copying the Map#
Navigate to the mount point and you’ll see:
~/garmin-mount/
└── Internal Storage/
├── GARMIN/ ← Maps go here
├── Music/
└── ...Copy your .img map file to the GARMIN folder:
cp Spain_East_OFM.img ~/garmin-mount/Internal\ Storage/GARMIN/That’s it. Unmount with:
fusermount -u ~/garmin-mountQuick Commands#
# Check if device is detected
lsusb | grep -i Garmin
# Mount
jmtpfs ~/garmin-mount
# Copy map
cp your-map.img ~/garmin-mount/Internal\ Storage/GARMIN/
# Unmount
fusermount -u ~/garmin-mountThe map should now show up in your watch under Settings → Map → Map Manager.
