gpsd for a garmin usb gps not working

My GPS is found:


dmesg
  902.239955] usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
  902.239959] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0


lsusb
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 003: ID 04f2:b681 Chicony Electronics Co., Ltd 
Bus 004 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 1d5c:5001  
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 007: ID 1d5c:5100  
Bus 002 Device 006: ID 1235:8210 Focusrite-Novation 
Bus 002 Device 005: ID 262a:9227  
Bus 002 Device 004: ID 1d5c:5011  
Bus 002 Device 003: ID 2c7c:0125  
Bus 002 Device 011: ID 091e:0003 Garmin International GPS (various models)


lsusb -s002:011 -v

Bus 002 Device 011: ID 091e:0003 Garmin International GPS (various models)
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x091e Garmin International
  idProduct          0x0003 GPS (various models)
  bcdDevice            0.01
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              300mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0


systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-03-11 00:44:39 PST; 18min ago
  Process: 4719 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS)
 Main PID: 4720 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─4720 /usr/sbin/gpsd

There is much history on setting up rules for the GPS. This is what I am using.


/etc/udev/rules.d> ls
51-garmin.rules                    70-headsets.rules          70-persistent-net.rules
56-sane-backends-autoconfig.rules  70-persistent-ipoib.rules  rtl-sdr.rule

Contents of 51-garmin.rules


cat 51-garmin.rules 
#SYSFS{idVenor}=="091e", SYSFS{idProduct}=="0003", MODE="0666"
SUBSYSTEM=="usb", ATTRS(idVendor)=="091e", ATTRS{idProduct)=="0003", MODE="0666"

Blacklisting is suggested.


cd modprobe.d/
mrg@linux-yxjo:/etc/modprobe.d> ls
00-system.conf               50-sound.conf.YaST2save      60-blacklist_fs-exofs.conf     60-blacklist_fs-qnx4.conf
10-unsupported-modules.conf  50-yast.conf                 60-blacklist_fs-f2fs.conf      60-blacklist_fs-qnx6.conf
50-alsa.conf                 50-yast.conf.YaST2save       60-blacklist_fs-freevxfs.conf  60-blacklist_fs-sysv.conf
50-blacklist.conf            60-blacklist_fs-adfs.conf    60-blacklist_fs-hfs.conf       60-blacklist_fs-ufs.conf
50-bluetooth.conf            60-blacklist_fs-affs.conf    60-blacklist_fs-hpfs.conf      99-local.conf
50-ipw2200.conf              60-blacklist_fs-befs.conf    60-blacklist_fs-jfs.conf       firewalld-sysctls.conf
50-iwl3945.conf              60-blacklist_fs-bfs.conf     60-blacklist_fs-minix.conf     mlx4.conf
50-libmlx4.conf              60-blacklist_fs-cramfs.conf  60-blacklist_fs-nilfs2.conf    truescale.conf
50-prism54.conf              60-blacklist_fs-efs.conf     60-blacklist_fs-ntfs.conf      tuned.conf
50-sound.conf                60-blacklist_fs-erofs.conf   60-blacklist_fs-omfs.conf


 cat 50-blacklist.conf 
#added for garmin gps
blacklist garmin_gps
#blacklist snd
#blacklist snd_pci_acp3x
#blacklist snd_intel_hda
#
# $Id$
*****truncated for brevity***

foxtrotgps finds gpsd but doesn’t read the gps. (I compiled the program with the maintainer’s help.) xgps doesn’t find the gps either.

The GPS is a Garmin gpscsx. System is AMD Ryzen.


 5.3.18-lp152.66-default #1 SMP Tue Mar 2 13:18:19 UTC 2

Suggestions?

While I can understand a lot of what you post, I am a bit at loss at what the results of the udev rule is. Am I right that it should result in a device file created? Then where is that file and what is the name?

And you have really documented with many facts (I like that), but the statement “foxtrotgps finds gpsd but doesn’t read the gps. (I compiled the program with the maintainer’s help.) xgps doesn’t find the gps either.” is not accompanied by any prove. Aren’t there any messages (when starting from a terminal)?

Hi
Start gpsd from the command line and add some debug…

NOTE:You will need to add the application:geo repository, gpsd is too old in Leap 15.2…


gpsd -D 5 -N /dev/ttyUSB0

Did you edit the options and add the device?


 cat /etc/sysconfig/gpsd | grep GPSD_OPTIONS
GPSD_OPTIONS="/dev/ttyUSB0"

Are you using ipv6? If not you need to edit the gpsd.socket file…

Is this gps device a USB dongle?

Example;


systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/etc/systemd/system/gpsd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-03-10 22:14:13 CST; 9h ago
  Process: 1885 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS)
 Main PID: 1886 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─1886 /usr/sbin/gpsd /dev/ttyUSB0

Mar 10 22:14:13 t-kglh4 systemd[1]: Starting GPS (Global Positioning System) Daemon...
Mar 10 22:14:13 t-kglh4 systemd[1]: Started GPS (Global Positioning System) Daemon.

 systemctl status cgps
● cgps.service - GPS view on a Virtual Terminal with cgps.
   Loaded: loaded (/etc/systemd/system/cgps.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-03-10 22:14:14 CST; 9h ago
 Main PID: 1889 (sh)
    Tasks: 2
   CGroup: /system.slice/cgps.service
           ├─1889 /usr/bin/sh -c /usr/bin/cgps -s > /dev/tty11 < /dev/tty11
           └─1893 /usr/bin/cgps -s

Mar 10 22:14:14 t-kglh4 systemd[1]: Started GPS view on a Virtual Terminal with cgps..

https://forums.opensuse.org/attachment.php?attachmentid=988&stc=1

cgps.png

Before trying the suggestions in the second reply, I figured I would reply to your before making any changes. Here is the output from Foxtrotgps when run from a console:


foxtrotgps
REPOLIST == NULL

(foxtrotgps:5297): Gtk-CRITICAL **: 17:07:56.572: IA__gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed

(foxtrotgps:5297): Gtk-CRITICAL **: 17:07:56.572: IA__gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed

(foxtrotgps:5297): Gtk-CRITICAL **: 17:07:56.572: IA__gtk_entry_set_text: assertion 'GTK_IS_ENTRY (entry)' failed
connection to gpsd SUCCEEDED 


The program works even though the message is ominous. You can see the gpsd is connected, but no data is conveyed because gpsd isn’t getting the data from the GPS. Foxtrotgps otherwise operates fine.It loads maps,pans,etc.

When running xgps, no error messages are produced. Here is what you see on a console:


xgps
xgps: host localhost port 2947

Localhost use should require no changes to the firewall.

I forgot to mention I was using the geo repo. My rev of gpsd is 3.22-lp152.125.4-x86_64. (I had to transcribe that is I can’t cut and past from yast). Here is the output from gpsd:


 gpsd -V
gpsd: 3.22 (revision 3.22)

And here is the drivers list:


gpsd -l
                                NMEA0183
                                Ashtech
                                Delorme TripMate
                                Pre-2003 Delorme EarthMate
                                Furuno Electric GH-79L4
n                               Garmin NMEA
                c               MTK-3301
                                OceanServer OS5000
                                San Jose Navigation FV18
        b                       True North
                c               Jackson Labs Fury
                        *       AIVDM
n       b       c       *       EverMore
n                       *       Garmin Serial binary
                        *       Garmin USB binary
n       b               *       GeoStar
        b               *       GREIS
                        *       iTalk
                        *       Motorola Oncore
        b               *       Navcom NCT
n       b               *       SiRF
                        *       Skytraq
n       b               *       SuperStarII
n       b               *       Trimble TSIP
                                iSync
n       b       c       *       u-blox
        b               *       Zodiac
                        *       NMEA2000
                        *       RTCM104V2
                        *       RTCM104V3
                        *       Garmin Simple Text
                        *       JSON slave driver
                                PPS
# n: mode switch, b: speed switch, c: rate switch, *: non-NMEA packet type.
# Socket export enabled.
# Shared memory export enabled.
# DBUS export enabled
# Control socket for hotplug notifications enabled
# Magic Hat enabled
# systemd socket activation enabled


99 times out of 100 IPV6 messes up your system. However I saw the message that gpsd needs ipv6 so I enabled it.

The GPS60csx is a stand alone GPS, not a dongle. Every indication is GPSD can handle garmin’s proprietary format though I did put it in NEMA output as well with no change.

Here is my issue with your suggesting I assign the gps to ttyUSB0. I also have a GSM modem in the notebook. It uses ttyUSB0, ttyUSB1, ttyUSB2 and ttyUSB3. It would be
best to let the operating system assign the USB ports. That said, if I make the GPS be ttyUSB0, will the operating system pick different ports for the modem?

As an experiemt I plugged and unplugged the GPS several times. The GPS itself says “connected” then it indicates “disconnected.” Here is the dmesg:


 7960.899263] usb 2-2: new full-speed USB device number 13 using xhci_hcd
 7961.055003] usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
 7961.055007] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
 8139.366153] usb 2-2: USB disconnect, device number 13
 8142.057195] usb 2-2: new full-speed USB device number 14 using xhci_hcd
 8142.212314] usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
 8142.212318] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
 8192.234759] usb 2-2: USB disconnect, device number 14
 8194.937799] usb 2-2: new full-speed USB device number 15 using xhci_hcd
 8195.094100] usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
 8195.094104] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
 8202.330474] usb 2-2: USB disconnect, device number 15
 8204.857904] usb 2-2: new full-speed USB device number 16 using xhci_hcd
 8205.014186] usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
 8205.014190] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0


The idVendor is what I selected in the rules.d for garmin.

As an experiment I will assigned ttyUSB4 to the default.


systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-03-11 18:36:24 PST; 4s ago
  Process: 8838 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, status=0/SUCCESS)
 Main PID: 8839 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─8839 /usr/sbin/gpsd /dev/ttyUSB4

Mar 11 18:36:24 linux-yxjo systemd[1]: Starting GPS (Global Positioning System) Daemon...
Mar 11 18:36:24 linux-yxjo systemd[1]: Started GPS (Global Positioning System) Daemon.


A check of /dev doesn’t show usb4 in use.


sh-4.4# pwd
/dev
sh-4.4# ls ttyUSB*
ttyUSB0  ttyUSB1  ttyUSB2  ttyUSB3

The gps itself indicates it is disconnected.

Here is disabled the daemon but can’t get your test to work:


sh-4.4# systemctl disable gpsd
Removed /etc/systemd/system/multi-user.target.wants/gpsd.service.
Removed /etc/systemd/system/sockets.target.wants/gpsd.socket.
sh-4.4# sysctl status gpsd
sysctl: cannot stat /proc/sys/status: No such file or directory
sysctl: cannot stat /proc/sys/gpsd: No such file or directory
sh-4.4# systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; disabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2021-03-11 18:43:09 PST; 1min 10s ago
 Main PID: 8839 (code=exited, status=0/SUCCESS)

Mar 11 18:36:24 linux-yxjo systemd[1]: Starting GPS (Global Positioning System) Daemon...
Mar 11 18:36:24 linux-yxjo systemd[1]: Started GPS (Global Positioning System) Daemon.
Mar 11 18:40:12 linux-yxjo gpsd[8839]: gpsd:ERROR: SER: device open of /dev/ttyUSB4 failed: No such file or directory - retr>
Mar 11 18:40:12 linux-yxjo gpsd[8839]: gpsd:ERROR: SER: read-only device open of /dev/ttyUSB4 failed: No such file or direct>
Mar 11 18:40:12 linux-yxjo gpsd[8839]: gpsd:ERROR: /dev/ttyUSB4: device activation failed, freeing device.
Mar 11 18:43:09 linux-yxjo systemd[1]: Stopping GPS (Global Positioning System) Daemon...
Mar 11 18:43:09 linux-yxjo systemd[1]: Stopped GPS (Global Positioning System) Daemon.
sh-4.4# gpsd -D 5 -N /dev/ttyUSB4
gpsd:INFO: launching (Version 3.22)
gpsd:IO: opening IPv4 socket
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: command sockets creation failed, netlib errors -1, -1

Hi
You need to let the onboard devices use allocated ports, so run the following commands it two different terminals as root user with the device unplugged, then plug it it, this should verify the rule is working, should also tell you what the usb device is;

Terminal 1;


udevadm monitor

Terminal 2;


journalctl -f

Above should show what is being allocated, if not then you will need to tweak your udev rule to allocate as required, eg ttyUSB4

Then, just run the gpsd command I indicated, no systemd yet, just to make sure it’s working.

If your not using ipv6, then yes, disable system wide and copy over /usr/lib/systemd/system/gpsd.* over to /etc/systemd/system and edit to remove the ipv6 line from gpsd.socket. Once over in /etc any system updates won’t override your changes.

Hi
Another thought, the USB cable your using is what you use in storage mode? It should be a serial interface…

Does the gpscsx mount? I have 2 Garmin GPS devices and both mount readily without further tinkering, e.g.:

**erlangen:~ #** journalctl --since 00:00 -u FR735.service  
-- Logs begin at Fri 2021-02-19 13:01:26 CET, end at Fri 2021-03-12 07:38:49 CET. -- 
Mar 12 07:38:48 erlangen systemd[1]: Started Get FR735 Activities. 
Mar 12 07:38:48 erlangen rsync[25029]: sending incremental file list 
...
Mar 12 07:38:49 erlangen rsync[25029]: GARMIN/TOTALS/TOTALS.FIT 
Mar 12 07:38:49 erlangen rsync[25029]: sent 92,618 bytes  received 417 bytes  62,023.33 bytes/sec 
Mar 12 07:38:49 erlangen rsync[25029]: total size is 6,882,246  speedup is 73.97 
Mar 12 07:38:49 erlangen systemd[1]: FR735.service: Succeeded. 
**erlangen:~ #**

Data are available at the mount point:

**erlangen:~ #** find /FR735/ -type d 
/FR735/ 
/FR735/GARMIN 
/FR735/GARMIN/DEBUG 

...

/FR735/GARMIN/REMOTESW 
/FR735/GARMIN/TEXT 
/FR735/System Volume Information 
**erlangen:~ #**

From the first root window:


sh-4.4# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[24304.197552] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
KERNEL[24304.202262] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)
UDEV  [24305.779951] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
UDEV  [24305.782272] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)

And from the second root window:



ournalctl -f
-- Logs begin at Thu 2021-03-11 07:51:24 PST. --
Mar 11 22:17:42 linux-yxjo NetworkManager[1456]: <info>  [1615529862.5005] device (wlan1): set-hw-addr: set MAC address to A6:57:FE:80:22:DF (scanning)
Mar 11 22:22:57 linux-yxjo NetworkManager[1456]: <info>  [1615530177.4994] device (wlan1): set-hw-addr: set MAC address to 36:3E:AA:9E:4E:D5 (scanning)
Mar 11 22:28:12 linux-yxjo NetworkManager[1456]: <info>  [1615530492.4993] device (wlan1): set-hw-addr: set MAC address to 3A:DF:B4:D4:D0:96 (scanning)
Mar 11 22:29:37 linux-yxjo ksmserver[2360]: UnmapNotify: 174063647
Mar 11 22:29:37 linux-yxjo ksmserver[2360]: UnmapNotify: 174063647
Mar 11 22:29:37 linux-yxjo ksmserver[2360]: CreateNotify: 174063680
Mar 11 22:29:37 linux-yxjo kwin_x11[2384]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 9054, resource id: 174063680, major code: 18 (ChangeProperty), minor code: 0
Mar 11 22:29:37 linux-yxjo ksmserver[2360]: Grab Released
Mar 11 22:32:43 linux-yxjo kio_http_cache_cleaner[3916]: QIODevice::skip (QBuffer): WriteOnly device
Mar 11 22:33:27 linux-yxjo NetworkManager[1456]: <info>  [1615530807.5005] device (wlan1): set-hw-addr: set MAC address to C2:C1:C3:F3:E2:FF (scanning)
Mar 11 22:36:24 linux-yxjo kernel: debugfs: Directory '01' with parent 'devices' already present!
Mar 11 22:36:24 linux-yxjo kernel: usb 2-2: new full-speed USB device number 29 using xhci_hcd
Mar 11 22:36:24 linux-yxjo kernel: usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
Mar 11 22:36:24 linux-yxjo kernel: usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Mar 11 22:36:24 linux-yxjo mtp-probe[12462]: checking bus 2, device 29: "/sys/devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2"
Mar 11 22:36:25 linux-yxjo mtp-probe[12462]: bus: 2, device: 29 was not an MTP device
Mar 11 22:38:42 linux-yxjo NetworkManager[1456]: <info>  [1615531122.5000] device (wlan1): set-hw-addr: set MAC address to 32:39:0E:4C:8A:90 (scanning)

So does that mean it is trying to use ttyUSB2? Clearly a conflict.

Double checking /dev shows no ttyUSB4 created.

And I forgot to have the daemon running as shown below.


mrg@linux-yxjo:/dev> systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; disabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2021-03-11 18:43:09 PST; 4h 0min ago
 Main PID: 8839 (code=exited, status=0/SUCCESS)
mrg@linux-yxjo:/dev> systemctl enable gpsd
Created symlink /etc/systemd/system/multi-user.target.wants/gpsd.service → /usr/lib/systemd/system/gpsd.service.
Created symlink /etc/systemd/system/sockets.target.wants/gpsd.socket → /usr/lib/systemd/system/gpsd.socket.
mrg@linux-yxjo:/dev> systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2021-03-11 18:43:09 PST; 4h 1min ago
 Main PID: 8839 (code=exited, status=0/SUCCESS)
mrg@linux-yxjo:/dev> systemctl start gpsd
mrg@linux-yxjo:/dev> systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-03-11 22:45:14 PST; 5s ago
  Process: 12731 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, stat>
 Main PID: 12732 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─12732 /usr/sbin/gpsd /dev/ttyUSB4

And now I will start over again. GPS is unplugged and the daemon is running. I aborted the processes in the two windows, ran clear, then started them again.

window one:


sh-4.4# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[25106.676998] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
KERNEL[25106.681473] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)
UDEV  [25108.222011] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
UDEV  [25108.224396] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)

window two:


sh-4.4# journalctl -f
-- Logs begin at Thu 2021-03-11 07:51:24 PST. --
Mar 11 22:45:14 linux-yxjo polkitd[1087]: Unregistered Authentication Agent for unix-process:12722:2483028 (system bus name :1.236, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Mar 11 22:47:40 linux-yxjo kernel: usb 2-2: USB disconnect, device number 29
Mar 11 22:48:45 linux-yxjo kernel: debugfs: Directory '01' with parent 'devices' already present!
Mar 11 22:48:45 linux-yxjo kernel: usb 2-2: new full-speed USB device number 30 using xhci_hcd
Mar 11 22:48:45 linux-yxjo kernel: usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
Mar 11 22:48:45 linux-yxjo kernel: usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Mar 11 22:48:45 linux-yxjo mtp-probe[12799]: checking bus 2, device 30: "/sys/devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2"
Mar 11 22:48:46 linux-yxjo mtp-probe[12799]: bus: 2, device: 30 was not an MTP device
Mar 11 22:48:47 linux-yxjo kernel: usb 2-2: USB disconnect, device number 30
Mar 11 22:49:12 linux-yxjo NetworkManager[1456]: <info>  [1615531752.5003] device (wlan1): set-hw-addr: set MAC address to 9E:A7:47:40:F8:3A (scanning)
Mar 11 22:49:46 linux-yxjo kernel: debugfs: Directory '01' with parent 'devices' already present!
Mar 11 22:49:47 linux-yxjo kernel: usb 2-2: new full-speed USB device number 31 using xhci_hcd
Mar 11 22:49:47 linux-yxjo kernel: usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
Mar 11 22:49:47 linux-yxjo kernel: usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Mar 11 22:49:47 linux-yxjo mtp-probe[12844]: checking bus 2, device 31: "/sys/devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2"
Mar 11 22:49:48 linux-yxjo mtp-probe[12844]: bus: 2, device: 31 was not an MTP device

Looks like it still wants to use USB2. The /etc/sysconfig rule is set for usb4, double checking:


cat gpsd
## Path:        Hardware/GPS
## Description: GPS Daemon

## Type:        yesno
## Default:     no
#
# Whether or not to start gpsd automatically on plugin event
#
GPSD_STARTBYUDEV="no"

## Type:        integer
## Default:     2947
#
# Use different port for the daemon
#
GPSD_PORT=

## Type:        string
## Default:     ""
#
# Further options to gpsd
#
#GPSD_OPTIONS=""
GPSD_OPTIONS="/dev/ttyUSB4"


Well this gives me something to investigate. From my previous reply with the daemon stopped I still couldn’t connect to /dev/ttyUSB4 so that is something to check out.

I am in the Garmin proprietary serial mode. I know the storage mode and I am not in it. But it was a useful question.

Well now we are getting somewhere. I did a journalctl>temp and then used vi to search for garmin:


linux-yxjo systemd-udevd[469]: Invalid rule /etc/udev/rules.d/51-garmin.rules:2: unknown key 'ATTRS(idVendor)'

This page says it should be ATTR not ATTRS:

Does mass storage mode work?

**erlangen:~ #** journalctl --since 07:00 _KERNEL_SUBSYSTEM=usb 
-- Logs begin at Fri 2021-02-19 13:01:26 CET, end at Fri 2021-03-12 08:53:59 CET. -- 
Mar 12 07:38:46 erlangen kernel: usb 1-10: new full-speed USB device number 14 using xhci_hcd 
Mar 12 07:38:47 erlangen kernel: usb 1-10: New USB device found, idVendor=091e, idProduct=086e, bcdDevice= 5.09 
Mar 12 07:38:47 erlangen kernel: usb 1-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0 
**Mar 12 07:38:47 erlangen kernel: usb-storage 1-10:1.0: USB Mass Storage device detected **
Mar 12 07:59:03 erlangen kernel: usb 1-10: USB disconnect, device number 14 
**erlangen:~ #**

I got rid of ipv6. More on that later. Here is the monitoring:


 udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[773.860425] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
KERNEL[773.864888] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)
UDEV  [775.423686] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2 (usb)
UDEV  [775.426600] add      /devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2/2-2:1.0 (usb)



sh-4.4# journalctl -f
-- Logs begin at Thu 2021-03-11 17:44:35 PST. --
Mar 12 01:55:38 linux-yxjo NetworkManager[1441]: <info>  [1615542938.4795] device (p2p-dev-wlan1): supplicant management interface state: inactive -> disconnected
Mar 12 01:55:38 linux-yxjo NetworkManager[1441]: <info>  [1615542938.4816] device (wlan1): supplicant interface state: disconnected -> inactive
Mar 12 01:55:38 linux-yxjo NetworkManager[1441]: <info>  [1615542938.4817] device (p2p-dev-wlan1): supplicant management interface state: disconnected -> inactive
Mar 12 01:55:58 linux-yxjo kernel: usb 2-2: USB disconnect, device number 8
Mar 12 01:56:06 linux-yxjo sudo[4257]:     root : TTY=pts/1 ; PWD=/home/mrg ; USER=root ; COMMAND=/usr/bin/sh
Mar 12 01:56:06 linux-yxjo sudo[4257]: pam_unix(sudo:session): session opened for user root by mrg(uid=0)
Mar 12 01:56:39 linux-yxjo kwin_x11[2580]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 21548, resource id: 41943574, major code: 18 (ChangeProperty), minor code: 0
Mar 12 01:56:50 linux-yxjo sudo[4313]: gkr-pam: unable to locate daemon control file
Mar 12 01:56:50 linux-yxjo sudo[4313]:      mrg : TTY=pts/2 ; PWD=/home/mrg ; USER=root ; COMMAND=/usr/bin/sh
Mar 12 01:56:50 linux-yxjo sudo[4313]: pam_unix(sudo:session): session opened for user root by mrg(uid=1000)
Mar 12 01:57:26 linux-yxjo kernel: usb 2-2: new full-speed USB device number 9 using xhci_hcd
Mar 12 01:57:26 linux-yxjo kernel: usb 2-2: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
Mar 12 01:57:26 linux-yxjo kernel: usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Mar 12 01:57:26 linux-yxjo mtp-probe[4319]: checking bus 2, device 9: "/sys/devices/pci0000:00/0000:00:08.1/0000:07:00.3/usb2/2-2"
Mar 12 01:57:27 linux-yxjo mtp-probe[4319]: bus: 2, device: 9 was not an MTP device
Mar 12 02:00:09 linux-yxjo systemd[1]: Starting Cleanup of Temporary Directories...
Mar 12 02:00:09 linux-yxjo systemd[1]: Started Timeline of Snapper Snapshots.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/connman_resolvconf.conf:1] Line references path below legacy directory /var/run/, updating /var/run/connman → /run/connman; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/net-snmp.conf:1] Line references path below legacy directory /var/run/, updating /var/run/net-snmp → /run/net-snmp; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/redis.conf:2] Line references path below legacy directory /var/run/, updating /var/run/redis/ → /run/redis/; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/samba.conf:1] Line references path below legacy directory /var/run/, updating /var/run/samba → /run/samba; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/svnserve.conf:1] Line references path below legacy directory /var/run/, updating /var/run/svnserve → /run/svnserve; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/tmp.conf:13] Duplicate line for path "/var/tmp", ignoring.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/var.conf:21] Duplicate line for path "/var/lib", ignoring.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/var.conf:23] Duplicate line for path "/var/spool", ignoring.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/vpnc.conf:1] Line references path below legacy directory /var/run/, updating /var/run/vpnc → /run/vpnc; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/xl2tpd.conf:2] Line references path below legacy directory /var/run/, updating /var/run/xl2tpd → /run/xl2tpd; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/xl2tpd.conf:4] Line references path below legacy directory /var/run/, updating /var/run/xl2tpd/l2tp-control → /run/xl2tpd/l2tp-control; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo systemd-tmpfiles[4383]: [/usr/lib/tmpfiles.d/xl2tpd.conf:6] Line references path below legacy directory /var/run/, updating /var/run/xl2tpd/ → /run/xl2tpd/; please update the tmpfiles.d/ drop-in file accordingly.
Mar 12 02:00:09 linux-yxjo dbus-daemon[1224]: [system] Activating service name='org.opensuse.Snapper' requested by ':1.90' (uid=0 pid=4384 comm="/usr/lib/snapper/systemd-helper --timeline ") (using servicehelper)
Mar 12 02:00:09 linux-yxjo dbus-daemon[1224]: [system] Successfully activated service 'org.opensuse.Snapper'
Mar 12 02:00:09 linux-yxjo systemd[1]: Started Cleanup of Temporary Directories.
Mar 12 02:00:53 linux-yxjo NetworkManager[1441]: <info>  [1615543253.4800] device (wlan1): set-hw-addr: set MAC address to 62:6A:07:CA:9C:FD (scanning)
Mar 12 02:00:53 linux-yxjo NetworkManager[1441]: <info>  [1615543253.5325] device (wlan1): supplicant interface state: inactive -> disconnected
Mar 12 02:00:53 linux-yxjo NetworkManager[1441]: <info>  [1615543253.5326] device (p2p-dev-wlan1): supplicant management interface state: inactive -> disconnected
Mar 12 02:00:53 linux-yxjo NetworkManager[1441]: <info>  [1615543253.5378] device (wlan1): supplicant interface state: disconnected -> inactive
Mar 12 02:00:53 linux-yxjo NetworkManager[1441]: <info>  [1615543253.5381] device (p2p-dev-wlan1): supplicant management interface state: disconnected -> inactive


And to show gpsd was running when above was done:


systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disab>
   Active: active (running) since Fri 2021-03-12 01:44:38 PST; 17min ago
 Main PID: 1476 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─1476 /usr/sbin/gpsd /dev/ttyUSB4

Running xgps from a console:


xgps
xgps: host localhost port 2947

Using a program called “usb devices”:


GPS (various models)

Class
255
(Vendor Specific Class)
Subclass
255
(Vendor Specific Subclass)
Protocol
0

USB Version
1.01

Vendor ID
0x91e
(Garmin International)
Product ID
0x3
(GPS (various models))
Revision
0.00

Speed
12 Mbit/s

Channels
0

Max. Packet Size
64


Now to get rid of the error I documented in journalctl I had to change the rules.


 cat 51-garmin.rules 
#SYSFS{idVenor}=="091e", SYSFS{idProduct}=="0003", MODE="0666"
#SUBSYSTEM=="usb", ATTR(idVendor)=="091e", ATTRS{idProduct}=="0003", MODE="0666"
SUBSYSTEM=="usb", ATTR{vendor}=="091e", ATTR{product}=="0003", MODE="0666"
#SUBSYSTEM=="usb", ATTR{idVendor}=="091e", ATTRS{idProduct}=="0003" MODE="0666", GROUP="plugdev"


Note that idVendor wasn’t accepted. I went a web page on how to write udev rules and what is acceptable is “vendor” and “product”. I had to change the ATTRS to ATTR,

Change to the gpsd.socket:


cat gpsd.socket 
[Unit]
Description=GPS (Global Positioning System) Daemon Sockets

[Socket]
ListenStream=/run/gpsd.sock
#ListenStream=::1]:2947
ListenStream=127.0.0.1:2947
#ListenStream=0.0.0.0:2947
# To allow gpsd remote access, start gpsd with the -G option and
# uncomment the next two lines:
# ListenStream=::]:2947
# ListenStream=0.0.0.0:2947
SocketMode=0600
#BindIPv6Only=yes
BindIPv6Only=no

[Install]
WantedBy=sockets.target

OK now I will stop the daemon. Note the error regarding /dev/ttyUSB4:


systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disab>
   Active: active (running) since Fri 2021-03-12 01:44:38 PST; 17min ago
 Main PID: 1476 (gpsd)
    Tasks: 1
   CGroup: /system.slice/gpsd.service
           └─1476 /usr/sbin/gpsd /dev/ttyUSB4
mrg@linux-yxjo:~> xgps
xgps: host localhost port 2947
mrg@linux-yxjo:~> cd /usr/udev
bash: cd: /usr/udev: No such file or directory
mrg@linux-yxjo:~> cd /etc/udev
mrg@linux-yxjo:/etc/udev> cd rules.d/
mrg@linux-yxjo:/etc/udev/rules.d> cat 51-garmin.rules 
#SYSFS{idVenor}=="091e", SYSFS{idProduct}=="0003", MODE="0666"
#SUBSYSTEM=="usb", ATTR(idVendor)=="091e", ATTRS{idProduct}=="0003", MODE="0666"
SUBSYSTEM=="usb", ATTR{vendor}=="091e", ATTR{product}=="0003", MODE="0666"
#SUBSYSTEM=="usb", ATTR{idVendor}=="091e", ATTRS{idProduct}=="0003" MODE="0666", GROUP="plugdev"
mrg@linux-yxjo:/etc/udev/rules.d> cd /usr/lib/systemd
mrg@linux-yxjo:/usr/lib/systemd> cd system
mrg@linux-yxjo:/usr/lib/systemd/system> cat gpsd.socket 
[Unit]
Description=GPS (Global Positioning System) Daemon Sockets

[Socket]
ListenStream=/run/gpsd.sock
#ListenStream=::1]:2947
ListenStream=127.0.0.1:2947
#ListenStream=0.0.0.0:2947
# To allow gpsd remote access, start gpsd with the -G option and
# uncomment the next two lines:
# ListenStream=::]:2947
# ListenStream=0.0.0.0:2947
SocketMode=0600
#BindIPv6Only=yes
BindIPv6Only=no

[Install]
WantedBy=sockets.target
mrg@linux-yxjo:/usr/lib/systemd/system> ls gpsd*
gpsdctl@.service  gpsd.service  gpsd.socket
mrg@linux-yxjo:/usr/lib/systemd/system> cat gpsd.service
[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket
# Needed with chrony SOCK refclock
After=chronyd.service

[Service]
Type=forking
EnvironmentFile=-/etc/default/gpsd
EnvironmentFile=-/etc/sysconfig/gpsd
ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES

● gpsd.service - GPS (Global Positioning System) Daemon
   Loaded: loaded (/usr/lib/systemd/system/gpsd.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Fri 2021-03-12 02:15:13 PST; 8s ago
 Main PID: 1476 (code=exited, status=0/SUCCESS)

Mar 12 01:44:38 linux-yxjo systemd[1]: Starting GPS (Global Positioning System) Daemon...
Mar 12 01:44:38 linux-yxjo systemd[1]: Started GPS (Global Positioning System) Daemon.
Mar 12 01:45:53 linux-yxjo gpsd[1476]: gpsd:ERROR: SER: device open of /dev/ttyUSB4 failed: No such file or directory - retrying read-only
Mar 12 01:45:53 linux-yxjo gpsd[1476]: gpsd:ERROR: SER: read-only device open of /dev/ttyUSB4 failed: No such file or directory
Mar 12 01:45:53 linux-yxjo gpsd[1476]: gpsd:ERROR: /dev/ttyUSB4: device activation failed, freeing device.
Mar 12 02:15:13 linux-yxjo systemd[1]: Stopping GPS (Global Positioning System) Daemon...
Mar 12 02:15:13 linux-yxjo systemd[1]: Stopped GPS (Global Positioning System) Daemon.


Here is the GPSD debug test:


gpsd -D 5 -N /dev/ttyUSB4
gpsd:INFO: launching (Version 3.22)
gpsd:IO: opening IPv4 socket
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Cannot assign requested address
gpsd:ERROR: command sockets creation failed, netlib errors -1, -1
sh-4.4# 


Hi
It’s trying to connect as a storage device not a gps…

I see Speed 12 Mbit/s in the usb-devices output. So on the device it’s not in storage mode, your sure it doesn’t need a special cable and serial to connect as a gps device?

Hi
This is what I see when switching…


Plug device in...

Mar 12 09:08:12 t-kglh4 kernel: usb 7-1: new full-speed USB device number 8 using uhci_hcd
Mar 12 09:08:12 t-kglh4 kernel: usb 7-1: New USB device found, idVendor=091e, idProduct=2343, bcdDevice= 5.09
Mar 12 09:08:12 t-kglh4 kernel: usb 7-1: New USB device strings: Mfr=0, Product=0, SerialNumber=5
Mar 12 09:08:12 t-kglh4 kernel: usb 7-1: SerialNumber: 0000cb20ea56
Mar 12 09:08:12 t-kglh4 kernel: usb-storage 7-1:1.0: USB Mass Storage device detected
Mar 12 09:08:12 t-kglh4 kernel: scsi host6: usb-storage 7-1:1.0
Mar 12 09:08:13 t-kglh4 kernel: scsi 6:0:0:0: Direct-Access     Garmin   nuvi Flash       1.00 PQ: 0 ANSI: 5
Mar 12 09:08:13 t-kglh4 kernel: scsi 6:0:0:1: Direct-Access     Garmin   nuvi SD Card     1.00 PQ: 0 ANSI: 5
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: Attached scsi generic sg1 type 0
Mar 12 09:08:13 t-kglh4 kernel: scsi 6:0:0:1: Attached scsi generic sg2 type 0
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: Power-on or device reset occurred
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: [sdb] 2946989 512-byte logical blocks: (1.51 GB/1.40 GiB)
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: [sdb] Write Protect is off
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: [sdb] Mode Sense: 23 00 00 00
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:1: Power-on or device reset occurred
Mar 12 09:08:13 t-kglh4 kernel:  sdb:
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:1: [sdc] Attached SCSI removable disk
Mar 12 09:08:13 t-kglh4 kernel: sd 6:0:0:0: [sdb] Attached SCSI removable disk
Mar 12 09:08:24 t-kglh4 kernel: usb 7-1: USB disconnect, device number 8
Mar 12 09:08:24 t-kglh4 kernel: sd 6:0:0:0: [sdb] Synchronizing SCSI cache
Mar 12 09:08:24 t-kglh4 kernel: sd 6:0:0:0: [sdb] Synchronize Cache(10) failed: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK


Switch to debug mode on nuvi to switch to gps mode

Mar 12 09:09:35 t-kglh4 kernel: usb 7-1: new full-speed USB device number 9 using uhci_hcd
Mar 12 09:09:36 t-kglh4 kernel: usb 7-1: New USB device found, idVendor=091e, idProduct=0003, bcdDevice= 0.01
Mar 12 09:09:36 t-kglh4 kernel: usb 7-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Mar 12 09:09:36 t-kglh4 kernel: garmin_gps 7-1:1.0: Garmin GPS usb/tty converter detected
Mar 12 09:09:36 t-kglh4 kernel: usb 7-1: Garmin GPS usb/tty converter now attached to ttyUSB1

At this point I want to get NEMA working then work on mass storage. (Don’t tell anyone but I also have windows which I use in a pinch.)

Interesting since idVendor and idProduct weren’t accepted on my system but vendor and product were. Note the GPS60CSx is pretty old. It hasn’t seen a firmware update in a dozen years. I like it because it takes AA cells and is paid for, but mostly for AA cells.

If you could provide the rest of the associate files such as the rules it might help.

Hi
No modifications to the default install… no rules modified…

Perhaps a read here might help: USB Garmin on GNU/Linux - OpenStreetMap Wiki

My nuvi 260w is 12+ years old… I had it working years ago and pretty sure I used gpsbabel… I just use standalone gps device here along side the ads-b antenna, it goes nowhere :wink:

I see ModemManager blacklists garmin_gps /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rule

There is an optional serial cable but I never used it. It looks a lot like a cable I used on an Lowarance GPS decades ago. The manual is online. I would cut and paste the section regarding the USB port but Garmin in their wisdom decided to DRM the contents. Manual page 96. PDF page 106. Note the Garmin proprietary data format is only available on the USB port. That is there is a USB serial mode. I never used it in NEMA mode.

I put the GPS in storage mode for yucks and it locked up. Unfortunately my copy of the mapsource CD has failed, I need to find where I stashed the original to use mapsource.

https://static.garmincdn.com/pumac/GPSMAP60CSx_OwnersManual.pdf

Hi
I would then try the serial cable, does the system your using have a serial port, else need a serial to usb cable… DRM, that’s why I suspect the need to looking at gpsbabel…