LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (http://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Paired bluetooth devices can't transfer files (http://www.linuxquestions.org/questions/linux-hardware-18/paired-bluetooth-devices-cant-transfer-files-4175446245/)

BoraxMan 01-18-2013 07:12 PM

Paired bluetooth devices can't transfer files
 
I have a thinkpad T43 with Fedora 17 installed. The problem I am having, is transferring files between the Thinkpad and my Nokia phone.

The bluetooth applet works, and I can pair the phone. I can run sdptool to successfully query the bluetooth services the phone has, and a hcitool scan shows my phone. l2ping pings the phone, but each ping returns 0 bytes and ends with Recv failed (though it DOES ping). I can't use obexftp to browse the phone, or send files. I've tried the KDE blutooth manager, GNOME, blueman and all the same issue. Pairing is fine, it can see the phone, but file transfers time out.

I've tried Puppy Linux, and bluetooth file transfers DO work there, using the same tools (bluez), so it's not an issue with the bluetooth adapter or the phone. The hardware works fine.

dmesg and the system log show nothing untoward. How can I troubleshoot this? It seems that there is communication, but file transfer does not proceed. One difference I noted between my Fedora installation and Puppy Linux is the l2cap module, which isn't present in Fedora. Is this the culprit? Is l2cap part of Kernel 3.x?

Unfortunately, I can't get anymore information other than a 'timeout' error, and the phone doesn't print anything useful either.

Any help would be appreciated. The only thing I can think of, is either obexftp is not connecting properly due to not being passed the PIN code, or that the data transfer protocol which is used is not working properly.

unSpawn 01-18-2013 09:27 PM

Using Fedora, is the Thinkpad visible when you scan from the phone and do transfers work from phone to laptop? I don't know if this still works but what does this return?:
Code:

dbus-send --system --type=method_call --print-reply --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.GetMode

BoraxMan 01-19-2013 06:17 AM

Quote:

Originally Posted by unSpawn (Post 4873249)
Using Fedora, is the Thinkpad visible when you scan from the phone and do transfers work from phone to laptop? I don't know if this still works but what does this return?:
Code:

dbus-send --system --type=method_call --print-reply --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.GetMode



I get this.

Error org.freedesktop.DBus.Error.UnknownMethod: Method "GetMode" with signature "" on interface "org.bluez.Adapter" doesn't exist


The Thinkpad is visible from the phone, but I can't transfer from the phone to the laptop. I also tried with an iMac, and couldn't transfer to or from the iMac either, but again, they can see each other, and pair successfully. Pairing the devices work, and data is transferred, but Obex FTP doesn't go. What is frustrating, is the lack of documentation, or helpful error messages or the fact that linux subsystems keep changing, which mean config files change, etc.

{EDIT}

I get this error in my system log.

Jan 20 10:18:52 Oberon dbus-daemon[4789]: dbus[4789]: [system] Rejected send message, 2 matched rules; type="method_return", sender=":1.27" (uid=0 pid=5398 comm="/usr/sbin/bluetoothd -n ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.13" (uid=500 pid=4860 comm="/usr/libexec/obex-client ")

So I assume dbus, or whatever it is, is rejecting the transfer. How do I allow it?

BoraxMan 01-31-2013 04:14 AM

Upgraded to Fedora 18, and its made no difference!

Any hints on how to troubleshoot? How to figure out which application layer I need to look at?

unSpawn 01-31-2013 07:51 AM

Code:

# Try this. This should give you the devices path:
dbus-send --system --dest=org.bluez --print-reply / org.bluez.Manager.ListAdapters
# and substitute it (w/o quotes) where it says "THISPATH":
dbus-send --system --dest=org.bluez --print-reply THISPATH org.bluez.Adapter.GetProperties
# the elements will show discoverable and pairable mode


BoraxMan 02-02-2013 01:17 AM

Quote:

Originally Posted by unSpawn (Post 4881303)
Code:

# Try this. This should give you the devices path:
dbus-send --system --dest=org.bluez --print-reply / org.bluez.Manager.ListAdapters
# and substitute it (w/o quotes) where it says "THISPATH":
dbus-send --system --dest=org.bluez --print-reply THISPATH org.bluez.Adapter.GetProperties
# the elements will show discoverable and pairable mode


The relevant section is this

Code:

      )
      dict entry(
        string "Powered"
        variant            boolean true
      )
      dict entry(
        string "Discoverable"
        variant            boolean true
      )
      dict entry(
        string "Pairable"
        variant            boolean true
      )
      dict entry(
        string "DiscoverableTimeout"
        variant            uint32 0
      )
      dict entry(
        string "PairableTimeout"
        variant            uint32 0
      )
      dict entry(
        string "Discovering"
        variant            boolean false
      )
      dict entry(
        string "Devices"
        variant            array [
              object path "/org/bluez/3118/hci0/dev_18_86_AC_7E_A7_A9"
            ]
      )

Seems to suggest it is discoverable and pairable. When I try to transfer, it DOES pair succesfully. I can see on my phone an indicator showing that it is paired, but the file transfer does not proceed. My phone does not acknowledge that a file is to be recieved.

However, I have discovered this command,

obexftp --nopath --noconn -uuid none -b BLUETOOTH DEVICE -c FTP_CHANNEL --put FILE_TO_SEND

Which gets closer. With this command, the phone asks whether to accept an incoming file, but alas, the file does not transfer.

Closer....


All times are GMT -5. The time now is 02:37 AM.