Jump to content

Archived

This topic is now archived and is closed to further replies.

V3sth4cks153

GPSD Problem

Recommended Posts

Hi everyone !

So I recently bought myself a GlobalSat BU-353-S4 GPS reciever, to try wardriving/warwalking with the Mark V. I managed to make everything run fine by reseting the Pineapple, installing kismet-server and GPSD with OPKG, and customizing kismet.conf. To start GPSD up, I use this command:

gpsd -N -D5 /dev/ttyUSB0 -F /var/run/gpsd.soc

Then a LED started blinking on the GPS reciever, to show that everything is up and running. When I was done with my wardrive/warwalk, I simply powered off the Pineapple. The next day, when I powered the Pineapple back on, and ran the GPSD command, the LED on the reciever didn't blink (even after several minutes). The only way I found to make it all work again was to reset the Pineapple and then reinstalling everything, which is just too much pain to do everytime.

Am I missing something, like stopping GPSD before powering off ? Or is it just an error with GPSD ?

Thanks,

V3sth4cks153

Share this post


Link to post
Share on other sites

It's possible GPSD corrupts itself (configs, etc) somehow. I suggest killing gpsd first and then powering down the WiFi Pineapple.

Best Regards,
Sebkinne

Share this post


Link to post
Share on other sites

Hey Seb, which version is kismet on the pineapple? Too lazy to fire mine up.... If it's newcore based we shouldn't need gpsd, unless someone is using it for the time sync feature.

Share this post


Link to post
Share on other sites

Okay, got unlazy. We're running a newcore based kismet, so we really don't need gpsd. It can read serial devices without it. Here is the default gps part of the kismet.conf file.

# Do we have a GPS?
gps=true
# Do we use a locally serial attached GPS, or use a gpsd server?
# (Pick only one)
gpstype=gpsd
# gpstype=serial
# What serial device do we look for the GPS on?
gpsdevice=/dev/rfcomm0
# Host:port that GPSD is running on.  This can be localhost OR remote!
gpshost=localhost:2947
# Do we lock the mode?  This overrides coordinates of lock "0", which will
# generate some bad information until you get a GPS lock, but it will
# fix problems with GPS units with broken NMEA that report lock 0
gpsmodelock=false
# Do we try to reconnect if we lose our link to the GPS, or do we just
# let it die and be disabled?
gpsreconnect=true

This is what you need to change. Basically the gpstype= and the gpsdevice= lines. Forgot you can't change text color with the code tags... Damn, now I can't add a comment under this last code block... You're still going to need to ssh into the pineapple to shutdown kismet_server properly. Just pulling the plug will corrupt the current database.

# Do we have a GPS?
gps=true
# Do we use a locally serial attached GPS, or use a gpsd server?
# (Pick only one)
# gpstype=gpsd
gpstype=serial
# What serial device do we look for the GPS on?
gpsdevice=/dev/ttyUSB0
# Host:port that GPSD is running on.  This can be localhost OR remote!
gpshost=localhost:2947
# Do we lock the mode?  This overrides coordinates of lock "0", which will
# generate some bad information until you get a GPS lock, but it will
# fix problems with GPS units with broken NMEA that report lock 0
gpsmodelock=false
# Do we try to reconnect if we lose our link to the GPS, or do we just
# let it die and be disabled?
gpsreconnect=true

Share this post


Link to post
Share on other sites

Okay, got unlazy. We're running a newcore based kismet, so we really don't need gpsd. It can read serial devices without it. Here is the default gps part of the kismet.conf file.

# Do we have a GPS?
gps=true
# Do we use a locally serial attached GPS, or use a gpsd server?
# (Pick only one)
gpstype=gpsd
# gpstype=serial
# What serial device do we look for the GPS on?
gpsdevice=/dev/rfcomm0
# Host:port that GPSD is running on.  This can be localhost OR remote!
gpshost=localhost:2947
# Do we lock the mode?  This overrides coordinates of lock "0", which will
# generate some bad information until you get a GPS lock, but it will
# fix problems with GPS units with broken NMEA that report lock 0
gpsmodelock=false
# Do we try to reconnect if we lose our link to the GPS, or do we just
# let it die and be disabled?
gpsreconnect=true

This is what you need to change. Basically the gpstype= and the gpsdevice= lines. Forgot you can't change text color with the code tags... Damn, now I can't add a comment under this last code block... You're still going to need to ssh into the pineapple to shutdown kismet_server properly. Just pulling the plug will corrupt the current database.

# Do we have a GPS?
gps=true
# Do we use a locally serial attached GPS, or use a gpsd server?
# (Pick only one)
# gpstype=gpsd
gpstype=serial
# What serial device do we look for the GPS on?
gpsdevice=/dev/ttyUSB0
# Host:port that GPSD is running on.  This can be localhost OR remote!
gpshost=localhost:2947
# Do we lock the mode?  This overrides coordinates of lock "0", which will
# generate some bad information until you get a GPS lock, but it will
# fix problems with GPS units with broken NMEA that report lock 0
gpsmodelock=false
# Do we try to reconnect if we lose our link to the GPS, or do we just
# let it die and be disabled?
gpsreconnect=true

Thanks ! I'll try that too. Didn't really look that much into serial once I got GPSD working. You're right about not using GPSD: It just adds another thing that can fail... But do I just need to kill the process to shutdown kismet_server properly ? Or do I need to stay connected and do a ctrl+c to stop it ? (Sorry if I sound dumb, I'm pretty new at this )

Share this post


Link to post
Share on other sites

Kismet most likely cleanly fails once the power is cut, as it directly talks to the device.

In that case, I would definitely use kismet directly.

Best Regards,

Sebkinne

Share this post


Link to post
Share on other sites

Kismet most likely cleanly fails once the power is cut, as it directly talks to the device.

In that case, I would definitely use kismet directly.

Best Regards,

Sebkinne

Without GPSD and without ssh'ing in to kill it ?

Share this post


Link to post
Share on other sites

Ok so I've tested this a few times, and it seems like kismet_server doesn't fail cleanly if the power is cut. However, I found that if I ssh in and kill the service with this command:

kill -15 <pid>

kismet_server quits cleanly, and I can then cut the power.
Also, using the GPS in serial is perfect, and far easier that GPSD.
Thanks barry99705 and Sebkinne for your help !
Problem solved !

EDIT: Just came back from a test run, and it seems like I can't kill the process after sometime, even though I run the command... Any ideas why that might happen ?

Share this post


Link to post
Share on other sites

From your ssh session issue the following command,

echo -e '\n!0 shutdown' | nc localhost 2501

If you want to get really fancy, do a "nano stop_kismet.sh" past the above, then save it. Chmod the stop_kismet.sh 755. Make this script on your sd card so it doesn't go away on pineapple updates. This way you can just run the stop_kismet.sh script so you don't have to remember the command.

Share this post


Link to post
Share on other sites

Damn, now I've done it....

nano start_kismet.sh

#!/bin/bash
kismet_server --daemonize

chmod 755 start_kismet.sh

ln -s /sd/kismet_logs/start_kismet.sh /sbin/start_kismet.sh <-- edit to point to where you made the script on your sd card!

nano stop_kismet.sh

#!/bin/bash
echo -e '\n!0 shutdown' | nc localhost 2501

chmod 755 stop_kismet.sh

ln -s /sd/kismet_logs/stop_kismet.sh /sbin/stop_kismet.sh <-- edit to point to where you made the script on your sd card!!

Now you can just ssh in, type start_kismet.sh and it will start kismet_server! Later you can ssh back in and type stop_kismet.sh and it will gracefully shut it down. Someone could probably make a couple buttons in the pineapple gui to fire off those scripts, but I don't know enough to do it, and ssh is fine for me.

Also don't forget to edit your kismet.conf to dump the log files to the correct location!!! Mine looks like this,

logtemplate=/sd/kismet_logs/%p%n-%D-%t-%i.%l

Share this post


Link to post
Share on other sites

Damn, now I've done it....

nano start_kismet.sh

#!/bin/bash
kismet_server --daemonize

chmod 755 start_kismet.sh

ln -s /sd/kismet_logs/start_kismet.sh /sbin/start_kismet.sh <-- edit to point to where you made the script on your sd card!

nano stop_kismet.sh

#!/bin/bash
echo -e '\n!0 shutdown' | nc localhost 2501

chmod 755 stop_kismet.sh

ln -s /sd/kismet_logs/stop_kismet.sh /sbin/stop_kismet.sh <-- edit to point to where you made the script on your sd card!!

Now you can just ssh in, type start_kismet.sh and it will start kismet_server! Later you can ssh back in and type stop_kismet.sh and it will gracefully shut it down. Someone could probably make a couple buttons in the pineapple gui to fire off those scripts, but I don't know enough to do it, and ssh is fine for me.

Also don't forget to edit your kismet.conf to dump the log files to the correct location!!! Mine looks like this,

logtemplate=/sd/kismet_logs/%p%n-%D-%t-%i.%l

Works perfectly ! Thanks a lot ! :grin:

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...