[Pkg-bluetooth-maintainers] Bug#690749: bluez: RFCOMM serving broken: Unable to spawn pnatd: /usr/bin/phonet-at not found

Dwayne Litzenberger dlitz at dlitz.net
Wed Oct 17 07:20:27 UTC 2012


Package: bluez
Version: 4.99-2
Severity: normal
Tags: patch

Please disable the pnat plugin.  It breaks any application that tries to 
run an RFCOMM server.  According to upstream:

     There should be absolutely no reason for Ubuntu have this plugin 
     enabled or even compiled.  You might wanna file a bug to them to 
     disable it.  The only place where it makes sense to be compiled is 
     in Nokia's Maemo Harmattan platform.  For everything else it should 
     be disabled (as it is by default).
     -- Johan Hedberg on the linux-bluetooth mailing list
     <http://www.spinics.net/lists/linux-bluetooth/msg14290.html>

The symptom is that when an RFCOMM client attempts to connect to a 
listening RFCOMM server:

- the client application sees "Connection reset by peer" when sending 
   data;
- the server never sees the connection; and
- the following appears in the (Debian) server's syslog:

     bluetoothd[6190]: Unable to spawn pnatd: Failed to execute child 
     process "/usr/bin/phonet-at" (No such file or directory)

STEPS TO REPRODUCE:

1. Get two machines running Debian.  One will be the server and the 
    other will be the client.

2. On both machines, install python-bluez.

3. Find out the server's Bluetooth address (e.g. using "hcitool dev")

4. Pair the client and server.

5. On the server, run the following:

     cd /usr/share/doc/python-bluez/examples/simple/
     python rfcomm-server.py

6. On the client, run the following, using the server's address:

     cd /usr/share/doc/python-bluez/examples/simple/
     python rfcomm-client.py xx:xx:xx:xx:xx:xx

7. You should see this:

     Searching for SampleServer on xx:xx:xx:xx:xx:xx
     connecting to "SampleServer" on xx:xx:xx:xx:xx:xx
     connected.  type stuff

8. Type a few lines of text

What _should_ happen is that we should see something like this on the 
server:

     Waiting for connection on RFCOMM channel 1
     Accepted connection from  ('yy:yy:yy:yy:yy:yy', 1)
     received [asdf]
     received [asdf]
     received [azxvc]

What _actually_ happens is that we see nothing on the server, and we see 
the following on the client:

     Searching for SampleServer on xx:xx:xx:xx:xx:xx
     connecting to "SampleServer" on xx:xx:xx:xx:xx:xx
     connected.  type stuff
     asdf
     Traceback (most recent call last):
       File "rfcomm-client.py", line 43, in <module>
         sock.send(data)
       File "<string>", line 5, in send
     bluetooth.btcommon.BluetoothError: (104, 'Connection reset by peer')


The following patch fixes this bug:

---[ Begin patch ]---
diff --git a/debian/rules b/debian/rules
index c1bcccb..980f18a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,7 +18,6 @@ DEB_CONFIGURE_EXTRA_FLAGS := \
                              --enable-time \
                              --enable-alert \
                              --enable-health \
-                             --enable-pnat \
                              --enable-gatt-example \
                              --enable-gstreamer \
                              --enable-alsa \
---[ End patch ]---


A workaround is to add the following to /etc/bluetooth/main.conf:

    DisablePlugins = pnat

Cheers,
- Dwayne

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: armel
i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_CA.utf8, LC_CTYPE=en_CA.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages bluez depends on:
ii  dbus          1.6.0-1
ii  kmod          9-2
ii  libc6         2.13-35
ii  libcap-ng0    0.6.6-2
ii  libdbus-1-3   1.6.8-1
ii  libglib2.0-0  2.32.3-1
ii  libreadline6  6.2-8
ii  libudev0      175-7
ii  libusb-0.1-4  2:0.1.12-20
ii  lsb-base      4.1+Debian7
ii  python-dbus   1.1.1-1
ii  python-gi     3.2.2-1
ii  udev          175-7

bluez recommends no packages.

bluez suggests no packages.

-- no debconf information


-- 
Dwayne C. Litzenberger <dlitz at dlitz.net>
  OpenPGP: 19E1 1FE8 B3CF F273 ED17  4A24 928C EC13 39C2 5CF7



More information about the Pkg-bluetooth-maintainers mailing list