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.


  1. root@bt:~# gpsd -h
  2. usage: gpsd [-b] [-n] [-N] [-D n] [-F sockfile] [-P pidfile] [-S port] [-h] device...
  3.   Options include:
  4.   -b                        = bluetooth-safe: open data sources read-only
  5.   -n                        = don't wait for client connects to poll GPS
  6.  -N                        = don't go into background
  7.   -F sockfile               = specify control socket location
  8.   -P pidfile                = set file to record process ID
  9.   -D integer (default 0)    = set debug level
  10.   -S integer (default 2947) = set port for daemon
  11.   -h                        = help message
  12.   -V                        = emit version and exit.
  13. A device may be a local serial device for GPS input, or a URL of the form:
  14.      [{dgpsip|ntrip}://][user:passwd@]host[:port][/stream]
  15. in which case it specifies an input source for DGPS or ntrip data.
  17. The following driver types are compiled into this gpsd instance:
  18.     Generic NMEA
  19.     Ashtech
  20.     San Jose Navigation FV18
  21.     Furuno Electric GH-79L4
  22.     Garmin Serial
  23.     Delorme TripMate
  24.     Delorme EarthMate (pre-2003, Zodiac chipset)
  25.     Zodiac binary
  26.     Navcom binary
  27.     uBlox UBX
  28.     Garmin USB binary
  29.     Garmin Serial binary
  30.     SiRF binary
  31.     Trimble TSIP
  32.     EverMore binary
  33.     iTalk binary
  34.     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.


  1. root@bt:~# dmesg | tail -n 20
  2.     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
  3.     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
  4.     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
  5.     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
  6. phy0: Selected rate control algorithm 'minstrel'
  7. Registered led device: rt2800usb-phy0::radio
  8. Registered led device: rt2800usb-phy0::assoc
  9. Registered led device: rt2800usb-phy0::quality
  10. usbcore: registered new interface driver rt2800usb
  11. device wlan0 entered promiscuous mode
  12. ADDRCONF(NETDEV_UP): wlan0: link is not ready
  13. device wlan0mon entered promiscuous mode
  14. usb 2-1: USB disconnect, address 3
  15. pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
  16. pl2303 2-1:1.0: device disconnected
  17. ADDRCONF(NETDEV_UP): wlan0: link is not ready
  18. usb 2-1: new full speed USB device using uhci_hcd and address 4
  19. pl2303 2-1:1.0: pl2303 converter detected
  20. usb 2-1: pl2303 converter now attached to ttyUSB0
  21. 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.


  1. root@bt:~# gpsd -n /dev/ttyUSB0

That was it! Once I restarted Kismet it was now polling gps data.