GPS receiver connexion problem with display

I am running openSUSE 12.2 x86_64.
I have connected a Navilock NL-402U gps receiver.
I have installed the following : gpsd (version 3.5-2.1.2) , gpsd-clients, gpsd-devel, libgps20 and** python-gpsd** included in the openSUSE 12.2 distribution.
I have started gpsd with the following command :
sudo /usr/sbin/gpsd -F /dev/ttyACM0
The process ID is running as given by ps -C gpsd.

lsusb gives :
Bus 002 Device 002: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter
Bus 005 Device 002: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
**Bus 006 Device 002: ID 1546:01a5 U-Blox AG **
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

In the output of dmesg:
** 1511.497014] usb 6-1: new full-speed USB device number 2 using uhci_hcd
1511.695033] usb 6-1: New USB device found, idVendor=1546, idProduct=01a5
1511.695036] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
1511.695039] usb 6-1: Product: u-blox 5 - GPS Receiver
1511.695041] usb 6-1: Manufacturer: u-blox AG
1511.751788] cdc_acm 6-1:1.0: ttyACM0: USB ACM device
1511.754104] usbcore: registered new interface driver cdc_acm**

When launching xgps, I get :
** (process:8142): WARNING **: Trying to register gtype ‘GMountMountFlags’ as enum when in fact it is of type ‘GFlags’

** (process:8142): WARNING **: Trying to register gtype ‘GDriveStartFlags’ as enum when in fact it is of type ‘GFlags’

** (process:8142): WARNING **: Trying to register gtype ‘GSocketMsgFlags’ as enum when in fact it is of type ‘Gflags’

The window of xgps opens but there is no communication with gpsd.

As I am not a specialist, I do not know what to do.
Any help would be greatly appriciated.

Hi
Have you seen this one?
http://forums.opensuse.org/opensuseforums/english/get-technical-help-here/hardware/414389-usb-gps-mini-howto.html

A forum search on gpsd turns up other posts as well.

Yes, thank you, but it did not help me!

On Fri 02 Nov 2012 02:46:01 PM CDT, Gian-Piero wrote:

Yes, thank you, but it did not help me!

Hi
Looks like it needs a udev rule…
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650774

Do gps type rules exist in /lib/udev/rules.d or /etc/udev/rules.d?

Not sure about the driver loaded either as CDC_ACM is for a modem
device…


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.11-2.16-desktop
up 4 days 15:46, 5 users, load average: 0.14, 0.11, 0.07
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

Thank you for your answer.

Do gps type rules exist in /lib/udev/rules.d or /etc/udev/rules.d?

Yes, the file 51-gpsd.rules was automatically created in /lib/udev/rules.d.
Its contents is:

SUBSYSTEM != “tty”, GOTO=“gpsd_end”

ACTION != “remove, GOTO=“gpsd_add”
KERNEL==“ttyUSB*”, RUN=”/lib/udev/gpsd.sh"

LABEL=“gpsd_add”
ACTION != “add”, GOTO=“gpsd_end”

“Prolific Technology 2303 (commonly in tandem with SiRF chips)”

KERNEL==“ttyUSB*”, ATTR{idVendor}==“067b”, ATTR{idProduct}==“2303”, RUN="/lib/udev/gpsd.sh"

“FTDI 8U232AM”

KERNEL==“ttyUSB*”, ATTR{idVendor}==“0403”, ATTR{idProduct}==“6001”, RUN="/lib/udev/gpsd.sh"

“Cypress M8/CY7C64013 (DeLorme uses these)”

KERNEL==“ttyUSB*”, ATTR{idVendor}==“1163”, ATTR{idProduct}==“0100”, RUN="/lib/udev/gpsd.sh"
KERNEL==“ttyUSB*”, ATTR{idVendor}==“1163”, ATTR{idProduct}==“0200”, RUN="/lib/udev/gpsd.sh"

“PS-360 OEM (Microsoft GPS sold with Street and Trips 2005)”

KERNEL==“ttyUSB*”, ATTR{idVendor}==“067b”, ATTR{idProduct}==“aaa0”, RUN="/lib/udev/gpsd.sh"

SiRF Star III 20ch Gmouse GPS (a.k.a Cygnal Integrated Products, Inc.)

KERNEL==“ttyUSB*”, ATTR{idVendor}==“10c4”, ATTR{idProduct}==“ea60”, RUN="/lib/udev/gpsd.sh"

LABEL=“gpsd_end”

Not sure about the driver loaded either as CDC_ACM is for a modem device…

According to the manufacturer, the u-blox’ USB interface implements Communication Device Class.
The gpsd interface is loaded by:

/usr/sbin/gpsd -F /dev/ttyACM0

I have also added the following two line in the 51-gpsd.rules, corresponding to my gps receiver

# u-blox AG, u-blox 5 (tested with Navilock NL-402U) (linux module: cdc_acm)
KERNEL=="ttyUSB*", ATTR{idVendor}=="1546", ATTR{idProduct}=="01a5", RUN="/lib/udev/gpsd.sh"

Is it correct?

On Sat 03 Nov 2012 11:36:01 AM CDT, Gian-Piero wrote:

I have also added the following two line in the 51-gpsd.rules,
corresponding to my gps receiver

Code:

u-blox AG, u-blox 5 (tested with Navilock NL-402U) (linux module:

cdc_acm) KERNEL==“ttyUSB*”, ATTR{idVendor}==“1546”,
ATTR{idProduct}==“01a5”, RUN="/lib/udev/gpsd.sh" --------------------

Is it correct?

Hi
Give it a try, would also be interested in the dmesg output, also run
the command (as root user) before plugging the device in to see the
output.


udevadm monitor


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.11-2.16-desktop
up 5 days 13:56, 5 users, load average: 0.04, 0.05, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

When plugging the device, the output is:

udevadm monitor

KERNEL[251.288233] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1 (usb)
KERNEL[251.291081] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0 (usb)
KERNEL[251.291123] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.1 (usb)
UDEV [251.294519] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1 (usb)
UDEV [251.295453] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.1 (usb)
KERNEL[251.297026] add /module/cdc_acm (module)
UDEV [251.297667] add /module/cdc_acm (module)
KERNEL[251.300113] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/tty/ttyACM0 (tty)
KERNEL[251.300137] add /bus/usb/drivers/cdc_acm (drivers)
UDEV [251.300577] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0 (usb)
UDEV [251.300589] add /bus/usb/drivers/cdc_acm (drivers)
UDEV [251.302788] add /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.0/tty/ttyACM0 (tty)

Hi
In the udev rule does /lib/udev/gpsd.hotplug exist at the bottom of the file?

If so, then change your rule to;


# u-blox AG, u-blox 5 (tested with Navilock NL-402U) [linux module: cdc_acm]
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a5", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug"

In the udev rule does /lib/udev/gpsd.hotplug exist at the bottom of the file?

No, there is only a gpsd.sh file

I have also tried the following commands:

gpsd -N -D3 -F /dev/ttyACM0

gpsd:INFO: launching (Version 3.5)
gpsd:ERROR: can’t bind to IPv6 port gpsd, Cannot assign requested address
gpsd:INFO: listening on port gpsd
gpsd:INFO: running with effective group ID 16
gpsd:INFO: running with effective user ID 65534
gpsd:INFO: startup at 2012-11-04T11:07:51.000Z (1352027271)

then exiting with ^C:

^Cgpsd:WARN: received terminating signal 2.
gpsd:WARN: exiting.

And, when gpsd is running, in another terminal:

lsof | grep ttyACM0

lsof: WARNING: can’t stat() fuse.gvfs-fuse-daemon file system /run/user/piantino/gvfs
Output information may be incomplete.
gpsd 4408 nobody 3u unix 0xffff8800b4687500 0t0 22714 /dev/ttyACM0

Do these information help?

Another try:
In the first terminal:

gpsd -N -n -F /var/run/gpsd.sock -D 5

Output of terminal 1:

gpsd: PROG: control socket opened at /var/run/gpsd.sock
gpsd: INFO: launching (Version 3.5)
gpsd: IO: opening IPv4 socket
gpsd: IO: opening IPv6 socket
gpsd: ERROR: can’t bind to IPv6 port gpsd, Cannot assign requested address
gpsd: INFO: listening on port gpsd
gpsd: PROG: NTPD shmat(2195502,0,0) succeeded, segment 0
gpsd: PROG: NTPD shmat(2228271,0,0) succeeded, segment 1
gpsd: PROG: NTPD shmat(2261040,0,0) succeeded, segment 2
gpsd: PROG: NTPD shmat(2293809,0,0) succeeded, segment 3
gpsd: PROG: shmat() succeeded, segment 2326578
gpsd: PROG: shared-segment creation succeeded,
gpsd: PROG: changing to group 16
gpsd: INFO: running with effective group ID 16
gpsd: INFO: running with effective user ID 65534
gpsd: INFO: startup at 2012-11-04T11:51:06.000Z (1352029866)
gpsd: IO: => client(0): {“class”:“VERSION”,“release”:“3.5”,“rev”:“3.5”,“proto_major”:3,“proto_minor”:7}\x0d\x0a

then in terminal 2:

xgps

Output of terminal 2:

** (process:5286): WARNING **: Trying to register gtype ‘GMountMountFlags’ as enum when in fact it is of type ‘GFlags’

** (process:5286): WARNING **: Trying to register gtype ‘GDriveStartFlags’ as enum when in fact it is of type ‘GFlags’

** (process:5286): WARNING **: Trying to register gtype ‘GSocketMsgFlags’ as enum when in fact it is of type ‘GFlags’
^Cpiantino@Piantino-10:~> xgps

** (process:5383): WARNING **: Trying to register gtype ‘GMountMountFlags’ as enum when in fact it is of type ‘GFlags’

** (process:5383): WARNING **: Trying to register gtype ‘GDriveStartFlags’ as enum when in fact it is of type ‘GFlags’

** (process:5383): WARNING **: Trying to register gtype ‘GSocketMsgFlags’ as enum when in fact it is of type 'GFlags

Output of terminal 1:

gpsd: PROG: checking client(0)
gpsd: IO: <= client(0): ?WATCH={“enable”:true,“json”:true,“scaled”:true}\x0a
gpsd: IO: => client(0): {“class”:“DEVICES”,“devices”:]}\x0d\x0a{“class”:“WATCH”,“enable”:true,“json”:true,“nmea”:false,“raw”:0,“scaled”:true,“timing”:false}\x0d\x0a
gpsd: PROG: checking client(0)
gpsd: INFO: detaching 127.0.0.1 (sub 0, fd 6) in detach_client