LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-07-2019, 08:43 AM   #1
danielldaniell
Member
 
Registered: Apr 2009
Location: Hungary
Distribution: Slackware, OpenBSD
Posts: 50

Rep: Reputation: 16
Can't use blueman-applet or blueman-manager on Slackware64 -current


Hi there!

I'm using Slackware64 -current and nowadays it seems I can't use blueman to manage/connect to my bluetooth devices (can't pinpoint exactly when did it broke).

After starting blueman-manager, I get this error message in a pop-up window:

Failed to apply network settings
You might not be able to connect to the Bluetooth network via this machine
> Exception
org.freedesktop.DBus.Python.dbus.exceptions.DBusException: Blueman was built with PolicyKit-1 support, but it's not available on the system

After this I get a device list in blueman-manager (already added devices, back when it worked), but searching for new devices is in vain.

So I searched around a bit and seems like I have my prerequisites configured properly:
  • I'm in the 'netdev' group (as per /etc/polkit-1/rules.d/30-blueman-netdev-allow-access.rules)
  • I'm in the 'lp' group as well (as per /etc/dbus-1/system.d/bluetooth.conf)
  • I have bluetoothd running (/etc/rc.d/rc.bluetooth) and I have dbus running as well (/etc/rc.d/rc.messagebus).

I'm not using any fancy desktop environment, I use spectrwm and I start it with startx with an .xinitrc like this:
Code:
exec /usr/bin/dbus-launch /usr/bin/ck-launch-session /usr/bin/spectrwm
So I have my consolekit and dbus sessions setup properly -- at least it did just that for the past years.

As snake oil I also reinstalled blueman*, polkit and dbus, you know, for fun

Alas, I can't seem to figure out what the culprit is. I've been on current64 for a long time so maybe something has broken along the bumpy upgrade paths.

Any clue would be appreciated!


Daniel

Last edited by danielldaniell; 01-07-2019 at 08:55 AM. Reason: More precise subject
 
Old 01-07-2019, 10:43 PM   #2
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
What's the output of
Code:
ls -lart /etc/polkit-1/rules.d
?
 
Old 01-08-2019, 04:21 AM   #3
danielldaniell
Member
 
Registered: Apr 2009
Location: Hungary
Distribution: Slackware, OpenBSD
Posts: 50

Original Poster
Rep: Reputation: 16
Hey Richard,

Code:
$ ls -lart /etc/polkit-1/rules.d
total 24
drwxr-xr-x 3 root root 4096 2018-12-30 02:58:09 ../
drwxr-xr-x 2 root root 4096 2019-01-01 18:23:18 ./
-rw-r--r-- 1 root root  461 2016-03-25 18:53:44 20-plugdev-group-mount-override.rules
-rw-r--r-- 1 root root  189 2016-03-25 18:53:44 10-org.freedesktop.NetworkManager.rules
-rw-r--r-- 1 root root  436 2018-08-04 09:34:20 30-blueman-netdev-allow-access.rules
-rw-r--r-- 1 root root  324 2018-11-19 03:19:28 50-default.rules
 
Old 01-08-2019, 09:40 PM   #4
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
I'm not running -current, so I'm afraid that can't provide much help. I had found something about permissions in /etc/polkit-1/rules.d, but your files have the correct permissions.
 
Old 01-09-2019, 01:06 PM   #5
slac-in-the-box
Member
 
Registered: Mar 2010
Location: oregon
Distribution: slackware64-14.2
Posts: 287

Rep: Reputation: 111Reputation: 111
I'm received same message when starting xfce4... still haven't resolved it.. kde was able to pair em and play em... but blueman has that dbus error in xfce4... I had just upgraded to current to see if it fixed the dbus error I was getting with blueman in 14.2-stable, along with others: https://www.linuxquestions.org/quest...me-4175645332/ and so far, haven't figured out the culprit.

Last edited by slac-in-the-box; 01-09-2019 at 01:08 PM.
 
Old 01-10-2019, 12:12 AM   #6
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
Well, you can try something like the following...

(I wrote a NetBeans app to display what my Bluetooth Heart Rate Monitor reports while I'm exercising; this came from my research on how to do that on a linux system.)

1. Introspect /org/bluez for information about nodes.

Code:
dbus-send --system --print-reply --dest=org.bluez /org/bluez org.freedesktop.DBus.Introspectable.Introspect
You'll get something back that looks like...
Code:
method return time=1547095289.639055 sender=:1.0 -> destination=:1.288 serial=3403 reply_serial=2
   string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node><interface name="org.freedesktop.DBus.Introspectable"><method name="Introspect"><arg name="xml" type="s" direction="out"/>
</method></interface><interface name="org.bluez.AgentManager1"><method name="RegisterAgent"><arg name="agent" type="o" direction="in"/>
<arg name="capability" type="s" direction="in"/>
</method><method name="UnregisterAgent"><arg name="agent" type="o" direction="in"/>
</method><method name="RequestDefaultAgent"><arg name="agent" type="o" direction="in"/>
</method></interface><interface name="org.bluez.ProfileManager1"><method name="RegisterProfile"><arg name="profile" type="o" direction="in"/>
<arg name="UUID" type="s" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
</method><method name="UnregisterProfile"><arg name="profile" type="o" direction="in"/>
</method></interface><node name="hci0"/></node>"
...you're interested in the <node> blocks. Anything that doesn't have the name of "test" is the name of one of your bluetooth adapters. (You've probably got only one of them.)

2. Start discovery on any non-test nodes. Something like (using the above response as an example)...
Code:
dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter1.StartDiscovery
That might make your adapter flash a lot (or give an error message in your scenario).

3. Introspect the same node that you started discovery. Stuff should show up.

Code:
dbus-send --system --dest=org.bluez --type=method_call --print-reply /org/bluez/hci0 org.freedesktop.DBus.Introspectable.Introspect
You'll get a list somewhat like...
Code:
method return time=1547096585.071040 sender=:1.0 -> destination=:1.290 serial=3408 reply_serial=2
   string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node><interface name="org.freedesktop.DBus.Introspectable"><method name="Introspect"><arg name="xml" type="s" direction="out"/>
</method></interface><interface name="org.bluez.Adapter1"><method name="StartDiscovery"></method><method name="SetDiscoveryFilter"><arg name="properties" type="a{sv}" direction="in"/>
</method><method name="StopDiscovery"></method><method name="RemoveDevice"><arg name="device" type="o" direction="in"/>
</method><method name="GetDiscoveryFilters"><arg name="filters" type="as" direction="out"/>
</method><property name="Address" type="s" access="read"></property><property name="Name" type="s" access="read"></property><property name="Alias" type="s" access="readwrite"></property><property name="Class" type="u" access="read"></property><property name="Powered" type="b" access="readwrite"></property><property name="Discoverable" type="b" access="readwrite"></property><property name="DiscoverableTimeout" type="u" access="readwrite"></property><property name="Pairable" type="b" access="readwrite"></property><property name="PairableTimeout" type="u" access="readwrite"></property><property name="Discovering" type="b" access="read"></property><property name="UUIDs" type="as" access="read"></property><property name="Modalias" type="s" access="read"></property></interface><interface name="org.freedesktop.DBus.Properties"><method name="Get"><arg name="interface" type="s" direction="in"/>
<arg name="name" type="s" direction="in"/>
<arg name="value" type="v" direction="out"/>
</method><method name="Set"><arg name="interface" type="s" direction="in"/>
<arg name="name" type="s" direction="in"/>
<arg name="value" type="v" direction="in"/>
</method><method name="GetAll"><arg name="interface" type="s" direction="in"/>
<arg name="properties" type="a{sv}" direction="out"/>
</method><signal name="PropertiesChanged"><arg name="interface" type="s"/>
<arg name="changed_properties" type="a{sv}"/>
<arg name="invalidated_properties" type="as"/>
</signal>
</interface><interface name="org.bluez.GattManager1"><method name="RegisterApplication"><arg name="application" type="o" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
</method><method name="UnregisterApplication"><arg name="application" type="o" direction="in"/>
</method></interface><interface name="org.bluez.Media1"><method name="RegisterEndpoint"><arg name="endpoint" type="o" direction="in"/>
<arg name="properties" type="a{sv}" direction="in"/>
</method><method name="UnregisterEndpoint"><arg name="endpoint" type="o" direction="in"/>
</method><method name="RegisterPlayer"><arg name="player" type="o" direction="in"/>
<arg name="properties" type="a{sv}" direction="in"/>
</method><method name="UnregisterPlayer"><arg name="player" type="o" direction="in"/>
</method></interface><interface name="org.bluez.NetworkServer1"><method name="Register"><arg name="uuid" type="s" direction="in"/>
<arg name="bridge" type="s" direction="in"/>
</method><method name="Unregister"><arg name="uuid" type="s" direction="in"/>
</method></interface><node name="dev_00_0D_44_D1_7D_CE"/><node name="dev_00_22_D0_2B_7B_38"/><node name="dev_24_C6_96_0C_11_D2"/><node name="dev_48_C1_AC_D5_CE_61"/><node name="dev_75_07_92_4F_63_00"/></node>"
4. Ask all of those nodes what they are. For example, given the above...

Code:
dbus-send --system --dest=org.bluez --type=method_call --print-reply /org/bluez/hci0/dev_75_07_92_4F_63_00 org.freedesktop.DBus.Properties.GetAll string:org.bluez.Device1
...I get back...

Code:
method return time=1547096715.631020 sender=:1.0 -> destination=:1.291 serial=3409 reply_serial=2
   array [
      dict entry(
         string "Address"
         variant             string "75:07:92:4F:63:00"
      )
      dict entry(
         string "Name"
         variant             string "SPBT1"
      )
      dict entry(
         string "Alias"
         variant             string "SPBT1"
      )
      dict entry(
         string "Class"
         variant             uint32 2360328
      )
      dict entry(
         string "Icon"
         variant             string "audio-card"
      )
      dict entry(
         string "Paired"
         variant             boolean true
      )
      dict entry(
         string "Trusted"
         variant             boolean true
      )
      dict entry(
         string "Blocked"
         variant             boolean false
      )
      dict entry(
         string "LegacyPairing"
         variant             boolean false
      )
      dict entry(
         string "Connected"
         variant             boolean false
      )
      dict entry(
         string "UUIDs"
         variant             array [
               string "0000110b-0000-1000-8000-00805f9b34fb"
               string "0000110c-0000-1000-8000-00805f9b34fb"
               string "0000110d-0000-1000-8000-00805f9b34fb"
               string "0000110e-0000-1000-8000-00805f9b34fb"
               string "0000111e-0000-1000-8000-00805f9b34fb"
            ]
      )
      dict entry(
         string "Adapter"
         variant             object path "/org/bluez/hci0"
      )
      dict entry(
         string "ServicesResolved"
         variant             boolean false
      )
   ]
Notice that isn't connected.

5. Connect to the thing you want. Using the above....

Code:
dbus-send --system --dest=org.bluez --type=method_call --print-reply /org/bluez/hci0/dev_75_07_92_4F_63_00 org.bluez.Device1.Connect
6. Check if it actually connected....

Code:
dbus-send --system --dest=org.bluez --type=method_call --print-reply /org/bluez/hci0/dev_75_07_92_4F_63_00 org.freedesktop.DBus.Properties.Get string:org.bluez.Device1 string:Connected
...which returned in my case...

Code:
method return time=1547097038.637531 sender=:1.0 -> destination=:1.298 serial=3425 reply_serial=2
   variant       boolean true

All that stuff is what bluemanager is doing under the covers.
 
3 members found this post helpful.
Old 01-10-2019, 11:53 PM   #7
slac-in-the-box
Member
 
Registered: Mar 2010
Location: oregon
Distribution: slackware64-14.2
Posts: 287

Rep: Reputation: 111Reputation: 111
Wowzers: has your netbeans app revealed which gets the heart rate going more: a spin on the treadmill, or all these cranial dbus exercises?

All of that was going exactly as described until
Code:
dbus-send --system --dest=org.bluez --type=method_call --print-reply /org/bluez/hci0/dev_00_11_22_33_44_55 org.bluez.Device1.Connect
Error org.bluez.Error.Failed: Host is down
... (I don't know if those device identifiers are sensitive info, so I just changed them to that sequence)

I am able to connect with hcitools and rfcomm at console.
I can connect in KDE.
Then when switching back to xfce, it's autoconnecting, and sound is coming out of headphones; but it reports dbus error when trying to use blueman widget in notification panel... but if I open term, and manually try blueman, it reports python errors, and with strace, it has more info about what it can't find... It's a lot of output, but here's the abbreviated version:

Code:
slac-in-the-box% blueman-report
Terminating blueman-applet
Describe your next action (keep empty if done): 
Traceback (most recent call last):
  File "/usr/bin/blueman-report", line 69, in <module>
    response = urllib2.urlopen('https://api.github.com/gists', data.encode('UTF-8')).read()
  File "/usr/lib64/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib64/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib64/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized
And similar for blueman-browse, blueman-assistant, etc.

The weird thing is that, despite all these blueman and dbus errors, headphones still connect and play.
 
Old 01-11-2019, 01:32 AM   #8
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
shrugs I worked in telecom for almost 20 years. You have no idea on the amount of messaging that goes on to make a telephone call. (That messaging starts when you take the receiver off the cradle, BTW. That's how you got dial tone.) Bluetooth is a somewhat odd protocol. (I didn't even begin to go into the details in that post, but this...
Code:
dict entry(
         string "UUIDs"
         variant             array [
               string "0000110b-0000-1000-8000-00805f9b34fb"
               string "0000110c-0000-1000-8000-00805f9b34fb"
               string "0000110d-0000-1000-8000-00805f9b34fb"
               string "0000110e-0000-1000-8000-00805f9b34fb"
               string "0000111e-0000-1000-8000-00805f9b34fb"
            ]
      )
...tells you exactly what that device is able to do. Well, after you look up what those services provide.)


KDE uses bluedevil instead of blueman. After poking around in the bluedevil code, I see that it also uses DBus to talk to the bluetooth adapter (not overly surprising).

After some messing around, I've gotten Error org.bluez.Error.Failed: Host is down when the device I'm trying to connect to isn't on. (That's not your case, since you are able to use hcitool to connect.)
 
2 members found this post helpful.
Old 01-12-2019, 05:09 PM   #9
rworkman
Slackware Contributor
 
Registered: Oct 2004
Location: Tuscaloosa, Alabama (USA)
Distribution: Slackware
Posts: 2,337

Rep: Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863
You didn't by chance miss the mozjs52 replacement of js185, did you?
 
2 members found this post helpful.
Old 01-12-2019, 09:06 PM   #10
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
Quote:
Originally Posted by rworkman View Post
You didn't by chance miss the mozjs52 replacement of js185, did you?
Que?
 
Old 01-12-2019, 09:50 PM   #11
ehartman
Member
 
Registered: Jul 2007
Location: Delft, The Netherlands
Distribution: Slackware
Posts: 301

Rep: Reputation: 133Reputation: 133
Quote:
Originally Posted by Richard Cranium View Post
Que?
From the -current ChangeLog
Code:
Mon Nov 19 02:46:11 UTC 2018
l/js185-1.0.0-x86_64-2.txz:  Removed.
l/mozjs52-52.9.0esr-x86_64-1.txz:  Added.
  Required by the new version of polkit.
l/polkit-0.115-x86_64-1.txz:  Upgraded.
  Thanks to Robby Workman.
is what Robby is referring to.
 
2 members found this post helpful.
Old 01-12-2019, 11:08 PM   #12
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,145

Rep: Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514Reputation: 1514
Hmm. OK, but a reference to the polkit upgrade would have made more sense in this particular context; as far as I know, neither bluetooth nor dbus care about javascript.
 
Old 01-13-2019, 05:06 AM   #13
rworkman
Slackware Contributor
 
Registered: Oct 2004
Location: Tuscaloosa, Alabama (USA)
Distribution: Slackware
Posts: 2,337

Rep: Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863Reputation: 863
polkit uses js internally; prior to the present version, it used js185, but the present one uses mozjs52. Quite a few people had polkit issues after that replacement, as the old package (js185) and new package (mozjs52) have different names, and thus a "slackpkg install-new" was needed for the slackpkg folks.
 
3 members found this post helpful.
Old 01-13-2019, 12:09 PM   #14
danielldaniell
Member
 
Registered: Apr 2009
Location: Hungary
Distribution: Slackware, OpenBSD
Posts: 50

Original Poster
Rep: Reputation: 16
Thumbs up

Oops. Thanks Robby, that was it! More grep of Changelog required I guess, after -current updates
 
Old 01-13-2019, 12:53 PM   #15
abga
Member
 
Registered: Jul 2017
Location: EU
Distribution: Slackware
Posts: 836

Rep: Reputation: 447Reputation: 447Reputation: 447Reputation: 447Reputation: 447
Maybe changing the format of the ChangeLog would be beneficial, starting the lines with Upgraded/Rebuilt/Added/Removed. It's a little difficult to briefly parse a longer list of updates and spot the Added/Removed tags in the actual form, at the end of the lines, in a variable place.
Should be a valid post in the requests-for-current thread:
https://www.linuxquestions.org/quest...-a-4175620463/
 
  


Reply

Tags
blueman, bluetooth, current64


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
no blueman-applet(bluetooth-applet) in desktop tray when slack-current boots mainam Slackware 16 04-03-2016 08:26 PM
Authentication failure with Blueman applet and cell phone. camorri Slackware 1 05-29-2015 07:36 PM
Blueman-applet defaults Woodsman Slackware 1 01-28-2013 09:11 AM
Blueman-applet top cpu user whenever heavy processing is happening gmartin Slackware 1 12-25-2011 03:55 AM
Network Manager Applet (nm-applet) dwhitney67 Linux - Newbie 5 02-02-2010 12:20 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:44 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration