[PATCH] FAQ: update section on Bluetooth on Linux

Dirk Hohndel dirk at hohndel.org
Tue Apr 18 08:11:44 PDT 2017


I know this is stupid - but I actually should remove this file from the 
Subsurface sources since we now maintain the website in a different
repository. I'll apply this and merge the change into the
subsurface-website repository, but in the future, pull requests for THAT
are the much better (and more reliable) way to get the FAQ updated.

Thanks

/D

On Tue, Apr 18, 2017 at 12:41:18PM +1000, Rick Walsh wrote:
> Can this be applied? Or something similar?
> 
> On 6 Apr. 2017 8:28 am, "Rick Walsh" <rickmwalsh at gmail.com> wrote:
> 
> > Setting up an RFCOMM connection has not been required for a long time.
> >
> > Reported-by: Stephen Hemminger <stephen at networkplumber.org>
> > Signed-off-by: Rick Walsh <rickmwalsh at gmail.com>
> > ---
> >  Documentation/FAQ.wordpress | 115 ++----------------------------
> > --------------
> >  1 file changed, 5 insertions(+), 110 deletions(-)
> >
> > diff --git a/Documentation/FAQ.wordpress b/Documentation/FAQ.wordpress
> > index cd26f0d..1bc9c74 100644
> > --- a/Documentation/FAQ.wordpress
> > +++ b/Documentation/FAQ.wordpress
> > @@ -124,116 +124,11 @@ Dive history is different than the dive profiles on
> > the log. The history only ke
> >  If you have downloaded your dives to different dive logging software
> > before they were overwritten, there is a high change that Subsurface can
> > import these. However, if the logs are only on your dive computer, they
> > cannot be salvaged after being over written by new dives.
> >
> >  [/expand]
> > -[expand title="How do I download dives from my Shearwater Petrel 2 (or
> > other Bluetooth dive computer) on Linux?"]
> > -
> > -Setting up a connection to download dives from your Bluetooth-enabled
> > device, such as the Shearwater Petrel, is not yet an automated process and
> > will generally require the command prompt.  It is essentially a three step
> > process.
> > -
> > -<ol>
> > -<li>Enable Bluetooth controller and pair your dive computer</li>
> > -<li>Establish an RFCOMM connection</li>
> > -<li>Download the dives with Subsurface</li>
> > -</ol>
> > -
> > -Users have reported difficulties with some Bluetooth controllers.  If you
> > have an onboard controller, try that first.  It is simplest if you remove
> > any USB Bluetooth dongles.  If you have a USB dongle that came with your
> > dive computer, try that before any others.
> > -
> > -Make sure you know how to put your dive computer into upload mode.  On
> > the Shearwater Petrel, Petrel 2 and Nerd, cycle through the menu, select
> > 'Dive Log', then 'Upload Log'.  The display will read 'Initializing', then
> > 'Wait PC 3:00' and will countdown.  Once the connection is established, the
> > display reads 'Wait CMD ...' and the countdown continues.  When downloading
> > the dive from Subsurface, the display reads 'Sending' then 'Sent Dive'.
> > -
> > -To establish the connection you need to have root access through sudo or
> > su, and you will need to have the correct permissions on your system to
> > download the dives.  On Fedora 22 and probably most other systems, this
> > means becoming a member of the dialout group if you are not already.  This
> > can be done graphically, or on the command terminal, enter:
> > -<pre><code style="font-size: 8pt;">sudo usermod -a -G dialout
> > username</code></pre>
> > -Log out and log in for the change to take effect.
> > -
> > -<em>Enabling the Bluetooth controller and pairing your dive computer</em>
> > -You may be able to set up the Bluetooth controller and pair your dive
> > computer using your distros graphical environment.  Once you've set your
> > dive computer to upload mode, click the Bluetooth icon in the system tray
> > and selecting 'Add new device'.  Your dive computer should appear.  If
> > asked for a password, enter 0000.  Write down or copy the MAC address of
> > your dive computer - you'll need this later.  It should be in the form
> > 00:11:22:33:44:55.
> > -
> > -If the graphical method didn't work, you need to pair the device from the
> > command line.  Open a terminal and use hciconfig to check the Bluetooth
> > controller status
> > -<pre><code style="font-size: 8pt;">hciconfig
> > -hci0:   Type: BR/EDR  Bus: USB
> > -        BD Address: 01:23:45:67:89:AB  ACL MTU: 310:10  SCO MTU: 64:8
> > -        DOWN
> > -        RX bytes:504 acl:0 sco:0 events:22 errors:0
> > -        TX bytes:92 acl:0 sco:0 commands:21 errors:0</code></pre>
> > -This tells you you have one controller, with MAC address
> > 01:23:45:67:89:AB, connected as hci0.  Its status is 'DOWN', i.e. not
> > powered.  Additional controllers will appear as hci1, etc.  If you didn't
> > have a Bluetooth dongle plugged in when you booted your computer, hci0 is
> > probably the onboard.  We need to power on the controller and enable
> > authentication:
> > -<pre><code style="font-size: 8pt;">sudo hciconfig hci0 up auth
> > -(enter password when prompted)
> > -hciconfig
> > -hci0:   Type: BR/EDR  Bus: USB
> > -        BD Address: 01:23:45:67:89:AB  ACL MTU: 310:10  SCO MTU: 64:8
> > -        UP RUNNING PSCAN AUTH
> > -        RX bytes:1026 acl:0 sco:0 events:47 errors:0
> > -        TX bytes:449 acl:0 sco:0 commands:46 errors:0</code></pre>
> > -Check that the status now includes 'UP', 'RUNNING' AND 'AUTH'
> > -
> > -If there are multiple controllers running, it's easiest if you turn off
> > the controller(s) you don't plan to use. E.g.
> > -<pre><code style="font-size: 8pt;">sudo hciconfig hci1 down</code></pre>
> > -Next step is to 'trust' and 'pair' the dive computer.  On distros with
> > Bluez 5, such as Fedora 22, you can use a tool called blutootctl, which
> > will bring up its own command prompt.
> > -<pre><code style="font-size: 8pt;">bluetoothctl
> > -[NEW] Controller 01:23:45:67:89:AB localhost.localdomain [default]
> > -[bluetooth]# agent on
> > -Agent registered
> > -[bluetooth]# default-agent
> > -Default agent request successful
> > -[bluetooth]# scan on                        <----now set your dive
> > computer to upload mode
> > -Discovery started
> > -[CHG] Controller 01:23:45:67:89:AB Discovering: yes
> > -[NEW] Device 00:11:22:33:44:55 Petrel
> > -[bluetooth]# trust 00:11:22:33:44:55        <----you can use the tab key
> > to autocomplete the MAC address
> > -[CHG] Device 00:11:22:33:44:55 Trusted: yes
> > -Changing 00:11:22:33:44:55 trust succeeded
> > -[bluetooth]# pair 00:11:22:33:44:55
> > -Attempting to pair with 00:11:22:33:44:55
> > -[CHG] Device 00:11:22:33:44:55 Connected: yes
> > -[CHG] Device 00:11:22:33:44:55 UUIDs: 00001101-0000-1000-8000-
> > 0089abc12345
> > -[CHG] Device 00:11:22:33:44:55 Paired: yes
> > -Pairing successful
> > -[CHG] Device 00:11:22:33:44:55 Connected: no</code></pre>
> > -If asked for a password, enter 0000.  It's ok if the last line says
> > 'Connected: no'.  The important part is the line above, 'Pairing
> > successful'.
> > -
> > -If your system has Bluez version 4 (e.g. Ubuntu 12.04 through to 15.04),
> > you probably don't have bluetoothctl, but do have a script called
> > bluez-simple-agent or just simple-agent.
> > -<pre><code style="font-size: 8pt;">hcitool -i hci0 scanning
> > -Scanning ...
> > -        00:11:22:33:44:55       Petrel
> > -bluez-simple-agent hci0 00:11:22:33:44:55</code></pre>
> > -Once you have paired your dive computer, you are ready to set up the
> > RFCOMM connection
> > -
> > -<em>Establishing the RFCOMM connection</em>
> > -The command to establish an RFCOMM connection is:
> > -<pre><code style="font-size: 8pt;">sudo rfcomm -i <controller>
> > connect <dev> <bdaddr> [channel]</code></pre>
> > -<controller> is the Bluetooth controller, hci0
> > -<dev> is the RFCOMM device file, rfcomm0
> > -<bdaddr> is the dive computer's MAC address, 00:11:22:33:44:55
> > -[channel] is the dive computer's Bluetooth channel we need to connect
> > to.  If you omit it, channel 1 will be assumed.  Based on a limited number
> > of user reports, the channel for different dive computers is probably:
> > -<ul>
> > -<li>Shearwater Petrel 2: channel 5
> > -<li>Shearwater Nerd: channel 5
> > -<li>Shearwater Petrel 1: channel 1
> > -<li>OSTC Sport: Channel 1
> > -</ul>
> > -E.g. to connect a Shearwater Petrel 2, set the dive computer to upload
> > mode and enter:
> > -<pre><code style="font-size: 8pt;">sudo rfcomm -i hci0 connect rfcomm0
> > 00:11:22:33:44:55 5
> > -(enter password when prompted)
> > -Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 5
> > -Press CTRL-C for hangup</code></pre>
> > -To connect a Shearwater Petrel 1 or OSTC Sport, set the dive computer to
> > upload mode and enter:
> > -<pre><code style="font-size: 8pt;">sudo rfcomm -i hci0 connect rfcomm0
> > 00:11:22:33:44:55
> > -(enter password when prompted)
> > -Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
> > -Press CTRL-C for hangup</code></pre>
> > -If you don't know what channel your dive computer uses, or the channel in
> > the list above doesn't work, the command 'sdptool records' should help
> > determine the appropriate channel.  The output below is from a Shearwater
> > Petrel 2.
> > -<pre><code style="font-size: 8pt;">sdptool -i hci0 records
> > 00:11:22:33:44:55
> > -Service Name: Serial Port
> > -Service RecHandle: 0x10000
> > -Service Class ID List:
> > -  "Serial Port" (0x1101)
> > -Protocol Descriptor List:
> > -  "L2CAP" (0x0100)
> > -  "RFCOMM" (0x0003)
> > -    Channel: 5</code></pre>
> > -If you have a Bluetooth dive computer not in the list above, or if the
> > channel listed is not correct, please let the Subsurface developers know on
> > the user forum or the developer mailing list
> > subsurface at subsurface-divelog.org.
> > -
> > -<em>Download the dives with Subsurface</em>
> > -After establishing the RFCOMM connection and while the dive computer's
> > upload mode countdown is still running, go to Subsurface, select
> > 'Import'->'Import from dive computer' and enter appropriate Vendor (e.g.
> > Shearwater), Dive Computer (Petrel), Device or Mount Point (/dev/rfcomm0)
> > and click 'Download'.
> > -
> > -If you get a permissions error, you probably need to add yourself to the
> > dialout group, logout and login again.
> > +[expand title="How do I download dives from my Bluetooth dive computer
> > (e.g. Shearwater, OSTC) on Linux?"]
> > +
> > +Downloading dives over Bluetooth on all platforms is done using the
> > "Choose Bluetooth download mode" option when downloading dives, and pairing
> > with the detected dive computer. This is further explained in the <a href="
> > https://subsurface-divelog.org/documentation/subsurface-4-user-manual/">Subsurface
> > User Manual</a>.
> > +
> > +Previous versions of Subsurface required setting up an RFCOMM connection
> > from the command line before downloading dives from a Bluetooth enabled
> > dive computer. This is no longer the case.
> >
> >  [/expand]
> >  [expand title="How do I fix permission errors when trying to download
> > from my Atomics Aquatics Cobalt under Linux?"]
> > --
> > 2.9.3
> >
> >

> _______________________________________________
> subsurface mailing list
> subsurface at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface



More information about the subsurface mailing list