diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2009-01-21 21:39:01 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2009-01-21 21:39:01 +0000 |
commit | f64be0b287d2a173bb5557d76b3fea4c632b5f81 (patch) | |
tree | 562803ca6d6ede874d95c6a3b8d74a503e720270 | |
parent | fa813f85e090251419ef762d682d232f4646f614 (diff) | |
download | gpsd-f64be0b287d2a173bb5557d76b3fea4c632b5f81.tar.gz |
Include the -b glitch in the hardware table.
-rw-r--r-- | gpscap.ini | 36 | ||||
-rw-r--r-- | gpscap.py | 2 | ||||
-rw-r--r-- | www/gps_report.cgi | 10 | ||||
-rw-r--r-- | www/hardware-head.html | 25 | ||||
-rw-r--r-- | www/noconfigure.png | bin | 0 -> 533 bytes | |||
-rw-r--r-- | www/upstream-bugs.html | 21 |
6 files changed, 60 insertions, 34 deletions
@@ -5,7 +5,7 @@ # # Each section map have the following capabilities # -# type = "engine", "vendor", or "device" +# type = "engine", "vendor", or "device" # description = Human-readable description of this item # packaging = A device's form factor # reference = URL to technical documentation, or at least a spec sheet @@ -16,11 +16,11 @@ # subtype = engine subtype or firmware revision level # interfaces = interface types: USB, RS232, Bluetooth, CF, TTL. May be a list. # usbchip = USB I/O chipset -# pps = supports pulse-per-second precision time reporting -# btglitch = has bluetooth glitch (requires -b option) +# pps = supports pulse-per-second precision time reporting +# noconfigure = can be bricked by baud-rate changes (requires -b option) # tested = last gpsd tested, or "regression" if we have a test load -# nmea = NMEA version this emits, if known -# notes = Miscellaneous notes on this item. To be interpreted as HTML. +# nmea = NMEA version this emits, if known +# notes = Miscellaneous notes on this item. To be interpreted as HTML. # status = excellent, good, fair, poor, broken, other # discontinued = If present, product has been discontinued # @@ -313,7 +313,7 @@ vendor = Altina packaging = handset reference = http://www.altina.com/produkty.php?destCatId=&mainCatId=13&subCatId=&prId=19 interfaces = Bluetooth -btglitch = yes +noconfigure = True tested = 2.35 uses = SiRF-3 notes = Requires the "-b" flag to prevent mode switching. If the receiver locks @@ -372,7 +372,7 @@ reference = http://www.cpit.com/en/GP-27.html uses = Nemerix interfaces = Bluetooth tested = 2.28 -btglitch = yes +noconfigure = True notes = Reported by Tobias Minich <belgabor@gmx.de> <ul> <li>There are proprietary PNMRX{30[0124],603} sentences that are only sent on change or by request</li> @@ -442,7 +442,7 @@ packaging = GPS mouse reference = http://www.eurotronic.net/products/produktdetails/gps_receiver.html uses = SiRF-3 interfaces = Bluetooth -btglitch = yes +noconfigure = True tested = regression notes = Requires "-b" ... I had to totally drain the battery of the device and let it rest for a few days before i was able to use it again @@ -815,7 +815,7 @@ packaging = GPS mouse reference = http://www.holux.com.tw/Temp%20web/GR-230.html uses = SiRF-2 interfaces = Bluetooth -btglitch = yes +noconfigure = True tested = 2.19 nmea = 2.2 discontinued = True @@ -853,7 +853,7 @@ packaging = GPS mouse reference = http://www.holux.com/JCore/en/support/DLF.jsp?DLU=http://www1.holux.com.tw:8080/JCore/UploadFile/79754.pdf uses = SiRF-3 interfaces = Bluetooth, USB -btglitch = yes +noconfigure = True tested = 2.36 status = poor nmea = 2.2 @@ -868,7 +868,7 @@ reference = http://www.holux.com/JCore/en/products/products_content.jsp?pno=341 uses = MKT interfaces = Bluetooth, USB usbchip = CP2101 -btglitch = yes +noconfigure = True tested = 2.37 notes = gpsd crashes the device when autoprobing @ baud rate 9600 (unless '-b'/broken-device-safety is enabled - need to unplug/reset the device). @@ -1052,7 +1052,7 @@ packaging = GPS mouse reference = http://www.navilock.de/produkte/gruppen/3/Kabel_Empfaenger/61371_NL-209PU.html?show=spec uses = Sony CXD2951 interfaces = USB, RS232, Bluetooth -btglitch = yes +noconfigure = True usbchip = pl2303 tested = 2.35 nmea = 2.2 @@ -1154,7 +1154,7 @@ packaging = GPS mouse reference = http://www.phonix.it/html/catalogo_dettaglio.cfm?idProducts=E09B5AB7-BCDF-DF66-24853E2B4680AB2C uses = SiRF-2 interfaces = Bluetooth -btglitch = yes +noconfigure = True tested = 2.34 nmea = 2.2 notes = Reported by Sebastiano Zabert<br/> @@ -1413,15 +1413,17 @@ vendor = UniTraq packaging = GPS mouse reference = http://www.wintec.com.tw/en/support_detail.php?cate_id=11&support_id=14 uses = Sony CXD2951 -btglitch = yes +noconfigure = True interfaces = USB usbchip = Silicon Laboratories CP2101 tested = 2.35 nmea = 3.0 notes = This receiver operates as a generic NMEA device, the Sony binary protocol is unsupported. The receiver seems to lock up if - too much data is thrown at it (ie. gpsd probes) thus it seems to - require a read-only (-b) instance of gpsd. Reported by Ian - Darwin <ian@darwinsys.com> + too much data is thrown at it (ie. gpsd probes) thus it may + require a read-only (-b) instance of gpsd. (We say 'may' because + more recent instances of gpsd break the probe writes into pieces + interleaved with read, and may no longer trigger this problem) + Reported by Ian Darwin <ian@darwinsys.com> @@ -109,6 +109,8 @@ class GPSDictionary(ConfigParser.RawConfigParser): testfield += "<img title='Have regression test' src='regression.png'>" else: testfield += tested + if self.has_option(dev, "noconfigure"): + testfield += "<img title='Requires -b option' src='noconfigure.png'>" if self.get(dev, "status") == "excellent": testfield += "<img src='star.png'><img src='star.png'><img src='star.png'><img src='star.png'>" elif self.get(dev, "status") == "good": diff --git a/www/gps_report.cgi b/www/gps_report.cgi index 0664d199..9b1af694 100644 --- a/www/gps_report.cgi +++ b/www/gps_report.cgi @@ -33,7 +33,7 @@ if (hasNeededElements($query) && $query->param("action") eq "Send Report"){ print M "Remote: ${ENV{'REMOTE_ADDR'}}:${ENV{'REMOTE_PORT'}}\n\n"; printf M ("[%s]\n", $query->param('model')); foreach $var ( sort qw(submitter vendor packaging techdoc chipset - firmware nmea interface tested rating btglitch notes + firmware nmea interface tested rating noconfigure notes location date interval leader sample_notes)){ $val = $query->param($var); printf M ("\t%s = %s\n", $var, $val) if (defined($val) && $val); @@ -233,7 +233,7 @@ print $query->radio_group(-name=>'rating', -linebreak=>'true'); print "Does the device break if probed or speed switched? " . - $query->checkbox_group(-name=>'btglitch', + $query->checkbox_group(-name=>'noconfigure', -values=>['yes'], -defaults=>[]); @@ -429,10 +429,10 @@ if ($query->param("rating")) { } else { print "No GPSD compatiblity specified.<br/>\n"; } -if ($query->param("btglitch")) { - print "Device needs the 'bluetooth hack'<br>\n"; +if ($query->param("noconfigure")) { + print "Device can be sent catatonic by baud-rate changes<br>\n"; } else { - print "Device doesn't need the 'bluetooth hack'<br>\n"; + print "Device handles baud-rate changes correctly<br>\n"; } print "</td><td align='center'>"; diff --git a/www/hardware-head.html b/www/hardware-head.html index 228e4658..4f1c775d 100644 --- a/www/hardware-head.html +++ b/www/hardware-head.html @@ -143,19 +143,32 @@ reports frequently have values that are wrong or nonsense.</li> <li><img src="bomb.png"> marks devices which are <b>Broken</b>; gpsd frequently fails to recognize the device at all.</li> -<li><img src="discontinued.png"/> marks devices that have been -discontinued by their manufacturers.</li> +<li><img src="noconfigure.png"/> marks devices that needed the +<tt>gpsd -b</tt> option when tested. Usually these are Bluetooth +devices with defective firmware that does not handle baud-rate changes +properly. Some poorly-designed USB devices choke if they are fed too +many probe strings; these may wortk better with recent versions of +<tt>gpsd</tt>, which interleaves probe writes with the first few +packet reads.</li> <li><img src="regression.png"/> marks devices for which we have a regression-test load. These are checked on every release.</li> + +<li><img src="discontinued.png"/> marks devices that have been +discontinued by their manufacturers.</li> </ul></p> -<p>Note that in most cases, poor ratings reflect problems not in -<tt>gpsd</tt> but rather in the device design and firmware.</p> +<p>Note that in most cases (including the <img src="noconfigure.png"/> +bug), poor ratings reflect problems not in <tt>gpsd</tt> but rather in +device design and firmware so badly botched that <tt>gpsd</tt> cannot +compensate.</p> <!-- Note: The CGI lives offsite because Berlios blocks outbound mail --> -<p>Please help us extend this table with new devices by filling out -<a href="https://www.mainframe.cx/cgi-bin/gps_report.cgi">this form</a>.</p> +<p>This table is generated from a capability database in the +<code>gpsd</code> source tree. Please help us enrich the database with +new devices by filling out <a +href="https://www.mainframe.cx/cgi-bin/gps_report.cgi">this +form</a>.</p> <div> </div> diff --git a/www/noconfigure.png b/www/noconfigure.png Binary files differnew file mode 100644 index 00000000..217e33ba --- /dev/null +++ b/www/noconfigure.png diff --git a/www/upstream-bugs.html b/www/upstream-bugs.html index ea68a7dd..b9e71894 100644 --- a/www/upstream-bugs.html +++ b/www/upstream-bugs.html @@ -56,7 +56,7 @@ maintainer, we've tried to kick these upstream.</p> <h1>Links to Open User-Visible Problems</h1> <ul> -<li><a href="#bluetooth">Firmware problems in some Bluetooth devices can hang them</a></li> +<li><a href="#bluetooth">Firmware problems in some Bluetooth and USB devices can hang them</a></li> <li><a href="#pl2303">Linux pl2303 driver on openwrt 2.4 kernel can hang when device is read at unexpected speed</a></li> <li><a href="#pthread_create">pthread_create() fails to return when called in background</a></li> </ul> @@ -86,7 +86,7 @@ with Fedora Core 5 was buggy.</a></li> <h1>Open User-Visible Problems</h1> -<h2 id="bluetooth">Firmware problems in some Bluetooth devices can hang them</h2> +<h2 id="bluetooth">Firmware problems in some Bluetooth and USB devices can hang them</h2> <p>The baudrate-hunting code in <code>gpsd</code> tickles a serious firmware bug on some some Bluetooth devices, notably those shipped by @@ -98,12 +98,21 @@ unique to <code>gpsd</code> - windows users are warned against using SiRFdemo's "Synchronize Protocol/Baud Rate" option on bluetooth devices.</p> <p>If this happens, you can sometimes recover by repeatedly sending -reset messages using <code>gpsctl</p>. The only guaranteed fix is -to open the case and unsolder the backup battery so the chip forgets -its configuration settings.</p> +reset messages using <code>gpsctl</p>. The only guaranteed fix is to +drain the battery backing up the GPS's settings; in extreme cases, you +may have to open the case and unsolder the backup battery so the chip +forgets its configuration settings.</p> + +<p>A separate bug with less severe symptoms afflicts some USB devices. +The probe strings <tt>gpsd</tt> sends in orderv to determuine device +type and subtype may be more than a device can handle, causing it to +hang; power-cycling should fix this. Newer versions of <tt>gpsd</tt> +break up the probe writes into smaller pieces, interleaving them with +the first few packet reads, so they are far less likely to ttrigger +this bug.</p> <p>Use the -b option of gpsd to prevent it from trying to reconfigure -your GPS; this will avoid the bug.</p> +your GPS; this will avoid both problems.</p> <h2 id="pl2303">Linux pl2303 driver on openwrt 2.4 kernel can hang when device is read at unexpected speed</h2> |