Bug 233603 - marble does not report position information from gpsd
Summary: marble does not report position information from gpsd
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: 0.8 (KDE 4.3)
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-07 14:40 UTC by Mark Purcell
Modified: 2013-10-20 08:02 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
xgps showing position, marble not reporting position (165.89 KB, image/jpeg)
2010-04-07 14:41 UTC, Mark Purcell
Details
Marble plugins dialog - no Position Provider Plugin (65.22 KB, image/png)
2010-04-12 23:14 UTC, Mark Purcell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Purcell 2010-04-07 14:40:24 UTC
Version:           0.9.2 (using 4.4.2 (KDE 4.4.2), Debian packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.32-trunk-686

Hi,

I have gpsd installed and running correctly, other apps report the gpsd position.

marble plugin is linked against libgps correctly:

$ ldd /usr/lib/kde4/plugins/marble/GpsdPositionProviderPlugin.so | grep gps
        libgps.so.19 => /usr/lib/libgps.so.19 (0xb6981000)

Why isn't marble reporting my gpsd position?

Screen shot to follow.

Mark
Comment 1 Mark Purcell 2010-04-07 14:41:44 UTC
Created attachment 42567 [details]
xgps showing position, marble not reporting position
Comment 2 Dennis Nienhüser 2010-04-12 22:49:22 UTC
gpsd must be fully running before starting Marble, otherwise Marble won't connect to it correctly. Is that the case for you?
Comment 3 Mark Purcell 2010-04-12 23:11:47 UTC
----------  Forwarded Message  ----------

Subject: Re: [Bug 233603] marble does not report position information from 
gpsd
Date: Tuesday 13 April 2010, 07:02:41
From: Mark Purcell <msp@debian.org>
To: bug-control@bugs.kde.org
CC: Dennis Nienhüser <earthwings@gentoo.org>

On Tuesday 13 April 2010 06:49:23 Dennis Nienhüser wrote:
> gpsd must be fully running before starting Marble, otherwise Marble won't
> connect to it correctly. Is that the case for you?

Dennis,

Thanks for the reply.

Yes gpsd is running before marble is started..

One other point is there does not appear to be a Position Provider Plugin in 
the configuration menu :-(  (See attached screenshot)  Is this normal?

Mark

-----------------------------------------
Comment 4 Mark Purcell 2010-04-12 23:14:46 UTC
Created attachment 42733 [details]
Marble plugins dialog - no Position Provider Plugin

  ----------  Forwarded Message  ----------

Subject: Re: [Bug 233603] marble does not report position information from 
gpsd
Date: Tuesday 13 April 2010, 07:02:41
From: Mark Purcell <msp@debian.org>
To: bug-control@bugs.kde.org
CC: Dennis Nienhüser <earthwings@gentoo.org>

On Tuesday 13 April 2010 06:49:23 Dennis Nienhüser wrote:
> gpsd must be fully running before starting Marble, otherwise Marble won't
> connect to it correctly. Is that the case for you?

Dennis,

Thanks for the reply.

Yes gpsd is running before marble is started..

One other point is there does not appear to be a Position Provider Plugin in 
the configuration menu :-(  (See attached screenshot)  Is this normal?

Mark
Comment 5 Dennis Nienhüser 2010-04-19 08:08:44 UTC
It's normal that the position provider plugins do not show up in the plugin settings dialog. Currently only render plugins (info boxes and similar) can be configured there.

Bug 234311 is an indicator that the gpsd position provider plugin installed on your system is faulty: The crash in digikam is caused by the destruction of the gpsd position provider plugin.

I'm working on a patch [1] showing more information about the state of the GPS device to users. It should be available in subversion trunk in the next days. Would it be possible for you to compile marble yourself once I commit the patch? This way we'd see whether it's a packaging problem or a problem in the code.

[1] http://reviewboard.kde.org/r/3549/diff/2/
Comment 6 Dennis Nienhüser 2010-04-22 18:56:20 UTC
SVN commit 1117638 by nienhueser:

When no current location is available but a position provider was activated by the user, show the position provider status to the user: "Initializing current location service...", "Waiting for current location information...", "Error when determining current location: $error". The patch also fixes PositionProviderStatus (must not be flags, must match GeoCute::Status which static_casts the conversion, apparently unused yet). Interruptions of gpsd (e.g. plugging out the device) are detected now. Some improvements in the N900 GPS handling (state handling and data querying).
CCBUG: 233603

 M  +32 -1     lib/MarbleControlBox.cpp  
 M  +2 -0      lib/MarbleControlBox.h  
 M  +3 -0      lib/MarbleControlBox.ui  
 M  +18 -1     lib/PositionProviderPluginInterface.cpp  
 M  +12 -6     lib/PositionProviderPluginInterface.h  
 M  +8 -5      lib/gps/PositionTracking.cpp  
 M  +6 -3      lib/gps/PositionTracking.h  
 M  +55 -5     plugins/positionprovider/gpsd/GpsdConnection.cpp  
 M  +14 -6     plugins/positionprovider/gpsd/GpsdConnection.h  
 M  +10 -1     plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp  
 M  +1 -0      plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.h  
 M  +21 -3     plugins/positionprovider/gpsd/GpsdThread.cpp  
 M  +16 -2     plugins/positionprovider/gpsd/GpsdThread.h  
 M  +14 -6     plugins/positionprovider/maemo/MaemoPositionProviderPlugin.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1117638
Comment 7 Dennis Nienhüser 2010-04-22 19:47:43 UTC
Here's a quick way to run a throw-away installation of marble:

cd "$(mktemp -d)"
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu/marble .
sed -i 's/FindMarble.cmake//' CMakeLists.txt
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)" -DQTONLY=ON .
make install
LD_LIBRARY_PATH=lib bin/marble

Would be interesting to see if the current version from trunk works on your system.
Comment 8 Mark Purcell 2010-04-22 22:55:52 UTC
On Friday 23 April 2010 03:47:45 Dennis Nienhüser wrote:
> Would be interesting to see if the current version from trunk works on your
> system.

Thanks Dennis,

Will build and report back.

Mark
Comment 9 Mark Purcell 2010-04-23 00:18:04 UTC
On Friday 23 April 2010 03:47:45 Dennis Nienhüser wrote:
> Would be interesting to see if the current version from trunk works on your
> system.

Dennis,

Thanks, that was a very easy way to get your marble snapshot up and running.

My system couldn't find liblocation?  What exactly is that?

It did build with libgps and when run it did offer gpsd as an option under 
Current Location:Position Tracking.

It correctly went through Initialision, but then just sits 'Waiting for 
current location information'.

xgps is reporting the position correctly from gpsd.

Is there any further debug I can produce?

Mark
Comment 10 Mark Purcell 2010-04-23 00:19:48 UTC
On Friday 23 April 2010 08:17:27 Mark Purcell wrote:
> My system couldn't find liblocation?  What exactly is that?

cmake -DCMAKE_INSTALL_PREFIX="$(pwd)" -DQTONLY=ON .
-- Building with gpsd position provider
-- checking for module 'liblocation>=0.102'
--   package 'liblocation>=0.102' not found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/tmp.1xWvGwvG5u
Comment 11 Dennis Nienhüser 2010-04-23 08:08:37 UTC
Hi Mark,

thanks for the quick reply. The liblocation package is the Maemo specific GPS support, it is not needed on desktop systems.

Your libgps version is 2.9x -- which one exactly? See apt-cache policy libgps-dev

So far I only tested 2.3x versions of libgps and I know that due to interface changes in libgps we have different code paths for both. By happy coincidence I upgraded to 2.92-4 yesterday and I'll test with that version later today.
Comment 12 Mark Purcell 2010-04-23 10:26:43 UTC
On Friday 23 April 2010 16:08:39 Dennis Nienhüser wrote:
> thanks for the quick reply. The liblocation package is the Maemo specific
> GPS support, it is not needed on desktop systems.

Thanks

> Your libgps version is 2.9x -- which one exactly? See apt-cache policy
> libgps-dev

2.92-4

Here are my other depends:

Versions of packages marble-plugins depends on:
ii  libc6                         2.11-0exp6 Embedded GNU C Library: Shared 
lib
ii  libgps19                      2.92-4     Global Positioning System - 
librar
ii  libkdecore5                   4:4.4.2-1  the KDE Platform Core Library
ii  libmarblewidget4              4:4.4.2-1  Marble globe widget library
ii  libqt4-network                4:4.6.2-4  Qt 4 network module
ii  libqt4-svg                    4:4.6.2-4  Qt 4 SVG module
ii  libqt4-webkit                 4:4.6.2-4  Qt 4 WebKit module
ii  libqtcore4                    4:4.6.2-4  Qt 4 core module
ii  libqtgui4                     4:4.6.2-4  Qt 4 GUI module
ii  libstdc++6                    4.4.3-8    The GNU Standard C++ Library v3

> So far I only tested 2.3x versions of libgps and I know that due to
> interface changes in libgps we have different code paths for both. By
> happy coincidence I upgraded to 2.92-4 yesterday and I'll test with that
> version later today.

Great, that should sync with what I have..  Although I see that 2.94 is coming 
into Debian very soon (already here for amd64):
http://packages.debian.org/search?keywords=libgps-dev

Mark
Comment 13 Dennis Nienhüser 2010-04-23 19:22:00 UTC
SVN commit 1117994 by nienhueser:

Fix gpsd data interpretation for libgps >= 2.90 (wrong flag used to determine if data is available)
CCBUG: 233603

 M  +2 -2      GpsdConnection.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1117994
Comment 14 Dennis Nienhüser 2010-04-23 19:28:00 UTC
Hi Mark,

can you test the current trunk again? It works for me now with the fix from above. I'll backport it to KDE 4.4 as well.
Comment 15 Dennis Nienhüser 2010-04-23 21:48:47 UTC
SVN commit 1118063 by nienhueser:

Fix gpsd data interpretation for libgps >= 2.90 (wrong flag used to determine if data is available). Backport of commit 1117994.
CCBUG: 233603


 M  +2 -2      GpsdConnection.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1118063
Comment 16 Dennis Nienhüser 2010-04-24 00:37:26 UTC
SVN commit 1118101 by nienhueser:

Add the WATCH_NMEA flag needed for version 2.93 and later to work.
CCBUG: 233603

 M  +1 -1      GpsdConnection.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1118101
Comment 17 Dennis Nienhüser 2010-04-24 00:40:41 UTC
SVN commit 1118103 by nienhueser:

Add the WATCH_NMEA flag needed for version 2.93 and later to work. Backport of commit 1118101.
CCBUG: 233603


 M  +1 -1      GpsdConnection.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1118103
Comment 18 Mark Purcell 2010-04-24 01:55:03 UTC
On Saturday 24 April 2010 03:28:01 Dennis Nienhüser wrote:
> can you test the current trunk again? It works for me now with the fix from
> above. I'll backport it to KDE 4.4 as well.

Success!!

Checked out revision 1118123 and working as expected now..

Thanks for your quick debug and patches.

Mark
Comment 19 Dennis Nienhüser 2010-04-24 10:31:42 UTC
Great, thanks for testing. The fix will be included in Marble coming with KDE SC 4.5 and 4.4.3.
Comment 20 root 2010-06-03 06:39:00 UTC
@Dennis Nienhüser

I built the svn version using the steps you gave in post #7 (thank you). As of 2 Jun 2010, the "current location" tab works perfectly with GPSD 2.94. The "current location" tab shows the correct long/lat/alt/speed. The only "little" bug is I can't get any maps to load. (Okay, so maybe that's a big bug)

My console shows a lot of errors about:
Invalid Bitmap cursor
Invalid parent size

I'm running a hacked backtrack4 distro, upgraded to ubuntu 10.04, with the kubuntu ppa backports to support kde 4.4.4 and a custom kernel. . . (oh, and I got a few other "custom" svn things...) 

I'll svn update marble in a few days to see if it's all good. Thanks for the hard work. It will be nice to have a GPS system in Colombia. (The ****ards at Garmin don't have a working map for most of South America. Marble will be a great substitute) If you want me to "test" anything let me know. I'm a sucker for bleeding edge. (emerge --sync to the rescue)
Comment 21 root 2010-06-03 07:07:03 UTC
Update: I ran marble with the correct LD_LIBRARY_PATH and now it display perfectly with my gpsd.
Comment 22 Dennis Nienhüser 2010-06-03 10:41:00 UTC
(In reply to comment #21)
> Update: I ran marble with the correct LD_LIBRARY_PATH and now it display
> perfectly with my gpsd.

Ok, good to hear. Thibaut Gridel is currently refactoring the GPS related painting code, we're happy for regression tests once it hits trunk. See http://reviewboard.kde.org/r/4210/
Comment 23 Mark Purcell 2010-06-05 06:36:56 UTC
Dennis,

As far as I can tell this patch hasn't made it into:

Marble Desktop Globe
Version 0.9.3
Using KDE Development Platform 4.4.4 (KDE 4.4.4)

Is that correct?

Mark