Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Il Garmin GPSMap 76CSx è un dispositivo GPS portatile dotato di ricevitore GPS ad alta sensibilità, altimetro barometrico, bussola elettronica, slot per microSD, schermo TFT e routing turn-by-turn.

Questa guida aiuta nell'installazione, la configurazione e l'installazione è stata verificata sul seguente hardware/software:

  • Toshiba Satellite A300.
  • Ubuntu 10.10 Maverick Meerkat i386.
  • Linux 2.6.35-22-generic-pae.
  • GNOME 2.32.0.
  • Memory 4GB.
  • Garmin GPSMap 76CSx.
  • Interface set to NMEA In and NMEA Out.
  • Baud Rate 4800.
  • tangoGPS 0.99.3.

La procedura funziona in maniera equivalente anche sui modelli Garmin GPSMap 76 e 60, ed eventualmente sul più recente modello 78 insieme con gli altri dispositivi portatili Garmin.

Il dispositivo ha due cavi di interfacciamento:

  • USB: fornito insieme al dispositivo.

  • RS232 Serial: può essere acquistato a parte. Ne esistono di due tipi: l'uno è un cavo seriale vero e proprio, l'altro è un cavo Y. Entrambi i tipi di cavo RS232 possono essere usati per l'alimentazione. Due fili vengono impiegati per l'alimentazione, mentre gli altri due per la trasmissione/ricezione dei dati. Conseguentemente non c'è handshaking di tipo hardware, ma solo software.

Se si desidera usare l'unità GPS per la trasmissione di dati in real-time ad un'applicazione come tangoGPS, xgps o Merkaator, si deve impostare NMEA come protocollo di trasmissione, indipendentemente da quale dei tre cavi si stia usando.

Per fare ciò, proseguire come segue:

  1. Premere il bottone menu due volte e spostarsi in Main Menu → Setup, poi in Interface e quindi in Serial Data Format.

  2. Premere Enter e quindi selezionare NMEA IN/NMEA OUT.

Il GARMIN serial data format è disabilitato quando il cavo USB è connesso.

Preparativi

  1. Accendere il computer.
  2. Inserire il cavo USB nel computer.
  3. Collegare l'unità GPS al cavo.
  4. Accendere l'unità GPS.
  5. Accedere alla pagina Satellite ed aspettare l'acquisizione e la visualizzazione di latitudine e longitudine sul display.
  6. Impostare il formato dati NMEA come precedentemente spiegato.

Installare i componenti aggiuntivi

  • Installare i pacchetti: gpsd, gpsd-clients e gpsbabel.

  • Installare il pacchetto garminplugin digitando il seguente comando in una finestra di terminale:

    sudo add-apt-repository ppa:andreas-diesner/garminplugin && sudo apt-get update && sudo apt-get install garminplugin 

Configurazione

  • Aprire con un editor di testo e con i privilegi di amministratore il file /etc/default/gpsd ed inserire le seguenti righe:

    START_DAEMON="true"
    GPSD_OPTIONS="-G"
    DEVICES="/dev/ttyUSB0"
    USBAUTO="true"
    GPSD_SOCKET="/var/run/gpsd.sock"

    in alternativa, si può ricorrere a dpkg-reconfigure per configurare il file, digitando il seguente comando in una finestra di terminale:

    sudo dpkg-reconfigure gpsd
  • Verranno mostrate una serie di domande:

    If you accept this option, gpsd will be started automatically
    Start gpsd automatically? YES
    
    As gpsd only handles GPS devices, it is safe to choose this option.
    However, you can disable it if gpsd is causing interference with other
    attached devices or programs. Should gpsd handle attached USB GPS
    receivers automatically?  YES
    
    Please enter the device the GPS receiver is attached to. It will
    probably be something like /dev/ttyS0 or /dev/ttyUSB0.
    Multiple devices may be specified as a space-separated list. Leave
    empty if you don't want to connect gpsd to a device on boot or if you
    want to use device autodetection only.
    Device the GPS receiver is attached to:  /dev/ttyUSB0
    
    You can give additional arguments when starting gpsd; see gpsd(8) for
    a list of options.
    Do not use '-F' here. The control socket path is set independently.
    Options to gpsd: -G
    
    Please enter the gpsd control socket location. Usually you want to
    keep the default setting.
    gpsd control socket path: /var/run/gpsd.sock

    Finita la configurazione il file dovrebbe essere simile a:

    # Default settings for gpsd.
    # Please do not edit this file directly - use `dpkg-reconfigure gpsd' to
    # change the options.
    START_DAEMON="true"
    GPSD_OPTIONS="-G"
    DEVICES="/dev/ttyUSB0"
    USBAUTO="true"
    GPSD_SOCKET="/var/run/gpsd.sock"

Dal sito GPSBabel:

Ci sono due comuni imprevisti con Garmin USB su Linux. Intorno alla metà del 2005, la maggior parte delle distribuzioni ha adottato un driver chiamato garmin_gps che richiede un dispositivo Garmin USB e lo rende accessibile tramite una porta seriale. Se si desidera usare tale driver e se in effetti esso funziona (una situazione sfortunatamente poco frequente), si può accedere al dispositivo come ttyUSB0, o con qualsiasi altro nome che il driver assegna al punto di mount.

Se si desidera usare il ben supportato software proprietario della GPSBabel, si deve rimuovere il driver precedente tramite rmmod ed evitare che venga caricato ancora. Il dispositivo, in questo caso, è accessibile come USB. Questo secondo approccio è fortemente consigliato. Di default, solo root può accedere ai dispositivi usb.

È possibile far sì che il sistema imposti automaticamente i permessi su un dispositivo USB, quando questo viene riconosciuto. Ciò elimina la necessità che GPSBabel venga lanciato come root, quando si usa un dispositivo controllato da libusb, come i dispositivi Garmin 60CSx, VistaC o LegendC.

Per permettere che i dispositivi USB vengano montati con permessi in lettura e scrittura per un utente senza privilegi, si crei un file di nome /etc/udev/rules.d/51-garmin.rules:

  • Digitare il seguente comando in unafinestra di terminale:

    sudo gedit /etc/udev/rules.d/51-garmin.rules

    ed inserire al suo interno la seguente riga:

    SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", MODE="666"
  • Salvare e chiudere il file appena modificato.

Modi D'Uso

Queste due operazioni sono mutuamente incompatibili:

  • Trasferire file tra il laptop e il Garmin GPSMap 76CSx.

  • Mostrare dati GPS in tempo reale usando strumenti come tangoGPS, XGPS o Merkaartor.

Trasferimento File

Nel caso si voglia usare GPSBabel per trasferire file, si deve rimuovere il modulo garmin_gps, digitando il seguente comando :

sudo rmmod garmin_gps

Mostrare dati GPS in tempo reale

Per raccogliere e mostrare dati in tempo reale usando strumenti come tangoGPS, XGPS o Merkaartor, si deve caricare il modulo garmin_gps, digitando il seguente comando in una finestra di terminale:

sudo modprobe garmin_gps

Test delle capacità di trasferimento dati

  • Per verificare che il modulo sia caricato correttamente, digitare il seguente comando :

    lsmod | grep 'usb'

    il risultato sarà simile al seguente:

    usbhid                 36978  0
    hid                    67742  1 usbhid

    il modulo garmin_gps non dovrebbe essere presente nella lista.

  • Per assicurarsi che il modulo garmin_gps non sia caricato, si può anche utilizzare il comando:

    gpspipe -w -n 100

    con un risultato simile al seguente:

    close(3) in netlib_connectsock()
    netlib_connectsock() returns socket on fd 3
    {"class":"VERSION","release":"2.94","rev":"2010-05-13T11:53:05","proto_major":3,"proto_minor":2}
    {"class":"DEVICES","devices":[]}
    {"class":"WATCH","enable":true,"json":true,"nmea":false,"raw":0,"scaled":false,"timing":false}
  • Questo comando, inoltre, mostra che il dispositivo ttyUSB0 non è stato creato:

    ls -la /dev/ttyU*

    il risultato dovrebbe essere simile al seguente:

    ls: cannot access /dev/ttyU*: No such file or directory

Trasferire itinerari, percorsi e waypoint

È possibile cambiare il livello di debug -Dx in cui x = 0 ... 9, per vedere una quantità maggiore o minore di dettagli sul trasferimento in corso.

Ecco alcuni esempi di comandi per il trasferimento dati:

echo Remove the garmin_gps module first
sudo rmmod garmin_gps

echo Download tracks from the Garmin GPSMap 76CSx to the PC
gpsbabel -D1 -t -i garmin -f usb: -o gpx -F tracks.gpx

echo Upload tracks from the PC to the Garmin GPSMap 76CSx
gpsbabel -D1 -t -i gpx -f tracks.gpx -o garmin -F usb:

echo Download routes from the Garmin GPSMap 76CSx to the PC
gpsbabel -D1 -r -i garmin -f usb: -o gpx -F routes.gpx

echo Upload routes from the PC to the Garmin GPSMap 76CSx
gpsbabel -D1 -r -i gpx -f routes.gpx -o garmin -F usb:

echo Download waypoints from the Garmin GPSMap 76CSx to the PC
gpsbabel -D1 -w -i garmin -f usb: -o gpx -F waypoints.gpx

echo Upload waypoints from the PC to the Garmin GPSMap 76CSx
gpsbabel -D1 -w -i gpx -f waypoints.gpx -o garmin -F usb:

Al momento non si sa come trasferire altri tipi di mappa usando gpslabel.

Test del Live Display di dati GPS

  • Per verificare il corretto caricamento del modulo, digitare il seguente comando da terminale:

    lsmod | grep 'usb'

    il risultato dovrebbe simile a questo:

    usbserial              33100  1 garmin_gps
    usbhid                 36978  0
    hid                    67742  1 usbhid

    in cui, nella lista, compare garmin_gps.

    Un ulteriore test per il controllo sui dati provenienti dal GPS è:

    gpspipe -w -n 100

    il cui output è qualcosa di simile a:

    close(3) in netlib_connectsock()
    netlib_connectsock() returns socket on fd 3
    {"class":"VERSION","release":"2.94","rev":"2010-05-13T11:53:05","proto_major":3,"proto_minor":2}
    {"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyUSB0","activated":1287467665.87,"flags":1,"driver":"Garmin USB binary","subtype":"292: 4.00","native":0,"bps":9600,"parity":"N","stopbits":1,"cycle":1.00}]}
    {"class":"WATCH","enable":true,"json":true,"nmea":false,"raw":0,"scaled":false,"timing":false}
    {"class":"DEVICE","path":"/dev/ttyUSB0","activated":1287467665.88,"flags":1,"driver":"Garmin USB binary","subtype":"292: 4.00","native":0,"bps":9600,"parity":"N","stopbits":1,"cycle":1.00}
    {"class":"SKY","tag":"75","device":"/dev/ttyUSB0","xdop":0.00,"ydop":0.00,"vdop":4.47,"tdop":2.67,"hdop":2.20,"gdop":5.65,"pdop":4.98,"satellites":[{"PRN":11,"el":24,"az":305,"ss":38,"used":true},{"PRN":22,"el":49,"az":83,"ss":15,"used":true},{"PRN":9,"el":14,"az":34,"ss":28,"used":false},{"PRN":18,"el":15,"az":88,"ss":23,"used":false},{"PRN":24,"el":68,"az":277,"ss":20,"used":true},{"PRN":3,"el":11,"az":217,"ss":0,"used":false},{"PRN":6,"el":7,"az":205,"ss":0,"used":false},{"PRN":14,"el":80,"az":119,"ss":0,"used":false},{"PRN":19,"el":33,"az":245,"ss":0,"used":false},{"PRN":20,"el":1,"az":277,"ss":0,"used":false},{"PRN":27,"el":4,"az":24,"ss":0,"used":false},{"PRN":31,"el":10,"az":164,"ss":0,"used":false}]}
    {"class":"TPV","tag":"75","device":"/dev/ttyUSB0","time":1287467666.000,"ept":0.005,"lat":48.748199097,"lon":-123.549873178,"alt":-3.945,"epx":34.099,"epy":34.099,"epv":28.569,"track":92.3200,"speed":0.710,"climb":-0.130,"eps":22.73,"mode":3}
    {"class":"SKY","tag":"75","device":"/dev/ttyUSB0","xdop":0.00,"ydop":0.00,"vdop":4.47,"tdop":2.67,"hdop":2.20,"gdop":5.65,"pdop":4.98,"satellites":[{"PRN":11,"el":24,"az":305,"ss":38,"used":true},{"PRN":22,"el":49,"az":83,"ss":14,"used":true},{"PRN":9,"el":14,"az":34,"ss":28,"used":false},{"PRN":18,"el":15,"az":88,"ss":23,"used":false},{"PRN":24,"el":68,"az":277,"ss":21,"used":true},{"PRN":3,"el":11,"az":217,"ss":0,"used":false},{"PRN":6,"el":7,"az":205,"ss":0,"used":false},{"PRN":14,"el":80,"az":119,"ss":0,"used":false},{"PRN":19,"el":33,"az":245,"ss":0,"used":false},{"PRN":20,"el":1,"az":277,"ss":0,"used":false},{"PRN":27,"el":4,"az":24,"ss":0,"used":false},{"PRN":31,"el":10,"az":164,"ss":0,"used":false}]}
    {"class":"TPV","tag":"75","device":"/dev/ttyUSB0","time":1287467667.000,"ept":0.005,"lat":48.748198839,"lon":-123.549863531,"alt":-4.075,"epx":34.099,"epy":34.099,"epv":28.569,"track":92.3200,"speed":0.710,"climb":-0.130,"eps":68.20,"mode":3}
  • Un test che fornisce informazioni circa i vari componenti è:

    ps -C gpsd -fww

    il cui risultato è analogo a:

    UID        PID  PPID  C STIME TTY          TIME CMD
    nobody    1309     1  0 18:36 ?        00:00:06 /usr/sbin/gpsd -G -F /var/run/gpsd.sock -P /var/run/gpsd.pid /dev/ttyUSB0
  • Per una lista dei dispositivi caricati, digitare da terminale:

    ls -ls /dev/ttyU*

    il cui output è analogo a:

    crw-rw-rw- 1 root dialout 188, 0 2010-10-18 23:00 /dev/ttyUSB0
  • Per vedere se c'è la connessione con il GPS, digitare da terminale:

    xgps

Considerazioni Pratiche

Per poter scorrere avanti e indietro, si può porre il modulo in blacklist. Per prima cosa, ci si deve assicurare che tale modulo venga elencato all'interno del file /etc/modprobe.d/blacklist.conf digitando da terminale:

gksudo gedit /etc/modprobe.d/blacklist.conf

e assicurarsi che siano presenti, sempre in questo file, le seguenti righe:

# most apps now use garmin usb driver directly (Ubuntu: #114565)
blacklist garmin_gps

Ulteriori risorse


CategoryHardware CategoryDaRevisionare