I recently aquired a new GPS device for use with programs like Kismet and Airodump-ng. Its been a while since I have used GPS devices in Linux and back then they were serial devices. The BU-353 dvice is a USB device so I had to figure out how to get it going.
I assumed it was similar to a wifi interface in that it would be added to the /dev/ directory and I would have to start it. The default gps program in backtrack is called gpsd so I had a look at the help menu.
- root@bt:~# gpsd -h
- usage: gpsd [-b] [-n] [-N] [-D n] [-F sockfile] [-P pidfile] [-S port] [-h] device...
- Options include:
- -b = bluetooth-safe: open data sources read-only
- -n = don't wait for client connects to poll GPS
- -N = don't go into background
- -F sockfile = specify control socket location
- -P pidfile = set file to record process ID
- -D integer (default 0) = set debug level
- -S integer (default 2947) = set port for daemon
- -h = help message
- -V = emit version and exit.
- A device may be a local serial device for GPS input, or a URL of the form:
- [{dgpsip|ntrip}://][user:passwd@]host[:port][/stream]
- in which case it specifies an input source for DGPS or ntrip data.
- The following driver types are compiled into this gpsd instance:
- Generic NMEA
- Ashtech
- San Jose Navigation FV18
- Furuno Electric GH-79L4
- Garmin Serial
- Delorme TripMate
- Delorme EarthMate (pre-2003, Zodiac chipset)
- Zodiac binary
- Navcom binary
- uBlox UBX
- Garmin USB binary
- Garmin Serial binary
- SiRF binary
- Trimble TSIP
- EverMore binary
- iTalk binary
- RTCM104
So going by the help it was pretty obvious I needed to specify the device.
For me in linux, the best way to determine the name of a device is just to plug it in and then check dmesg output and see what type of useful info is in there. Most of the time the name will be shown.
- root@bt:~# dmesg | tail -n 20
- (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
- (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
- (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
- (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
- phy0: Selected rate control algorithm 'minstrel'
- Registered led device: rt2800usb-phy0::radio
- Registered led device: rt2800usb-phy0::assoc
- Registered led device: rt2800usb-phy0::quality
- usbcore: registered new interface driver rt2800usb
- device wlan0 entered promiscuous mode
- ADDRCONF(NETDEV_UP): wlan0: link is not ready
- device wlan0mon entered promiscuous mode
- usb 2-1: USB disconnect, address 3
- pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
- pl2303 2-1:1.0: device disconnected
- ADDRCONF(NETDEV_UP): wlan0: link is not ready
- usb 2-1: new full speed USB device using uhci_hcd and address 4
- pl2303 2-1:1.0: pl2303 converter detected
- usb 2-1: pl2303 converter now attached to ttyUSB0
- ADDRCONF(NETDEV_UP): wlan0: link is not ready
Looking at the output of dmesg shows us that our device was mounted at /dev/ttyUSB0. Armed with this info I started gpsd.
- root@bt:~# gpsd -n /dev/ttyUSB0
That was it! Once I restarted Kismet it was now polling gps data.