How to start your BU-353 GPS device in Backtrack Linux

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:
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
    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

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.