Datenübertragung mit Bluetooth funktioniert nicht

Hallo,
nach dem Upgrade auf Leap 15.5 funktioniert bei mir die Datenübertragung via Bluetooth zum Handy bzw. vom Handy auf mein Laptop nicht mehr.
Fehlermeldung: Unit dbus-org.bluez.obex.service not found.

Installiert ist bezüglich “bluez”:


S  | Name                        | Type  | Version           | Arch   | Repository
---+-----------------------------+-------+-------------------+--------+--------------------------------
i  | bluez                       | Paket | 5.65-150500.3.3.1 | x86_64 | Update SUSE Linux Enterprise 15
i  | bluez-cups                  | Paket | 5.65-150500.3.3.1 | x86_64 | Update SUSE Linux Enterprise 15
i+ | bluez-obexd                 | Paket | 5.65-150500.3.3.1 | x86_64 | Update SUSE Linux Enterprise 15
i  | bluez-qt-imports            | Paket | 5.102.0-bp155.1.6 | x86_64 | openSUSE-Oss
i  | bluez-qt-udev               | Paket | 5.102.0-bp155.1.6 | x86_64 | openSUSE-Oss
i  | libbluetooth3               | Paket | 5.65-150500.3.3.1 | x86_64 | Update SUSE Linux Enterprise 15
i  | libKF5BluezQt6              | Paket | 5.102.0-bp155.1.6 | x86_64 | openSUSE-Oss
i  | openSUSE-SLE-15.5-2023-2546 | Patch | 1                 | noarch | Update SUSE Linux Enterprise 15

Eine Suche nach “dbus-org” ergab nichts.
Was fehlt mir zur Datenübertragung? Das Verbinden über Bluetooth funktioniert.

Danke vorab.

Was ist das Ergebnis von

systemctl status --user dbus-org.bluez.obex.service

Sollte der Service nicht aktiv sein, kannst Du ihn mit

systemctl start --user dbus-org.bluez.obex.service

(als “normaler” Benutzer ausgeführt) aktivieren?

laptop:~> systemctl status --user dbus-org.bluez.obex.service
Unit dbus-org.bluez.obex.service could not be found.
laptop:~> systemctl start --user dbus-org.bluez.obex.service
Failed to start dbus-org.bluez.obex.service: Unit dbus-org.bluez.obex.service not found.

Als normaler User ausgeführt :frowning_face:

Poste mal:
systemctl status --user obex.service

Schau mal:

laptop:~ # systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2023-10-31 15:35:38 CET; 1h 53min ago
       Docs: man:bluetoothd(8)
   Main PID: 7507 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 4915)
     CGroup: /system.slice/bluetooth.service
             └─ 7507 /usr/lib/bluetooth/bluetoothd

Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/sbc
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSink/sbc_xq
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/sbc_xq
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/faststream
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/faststream_duplex
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSink/opus_05
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/opus_05
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Oct 31 15:35:38 renilaptop bluetoothd[7507]: Endpoint registered: sender=:1.43 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Oct 31 15:36:05 renilaptop bluetoothd[7507]: Device is already marked as connected

Was heißt das jetzt für mich?

Hat noch jemand eine Idee für mich?

Da ich ausschließlich openSUSE Tumbleweed (z.Zt. Version 20231103) verwende, kann ich Dir nur bedingt weiterhelfen.

Hier die Situation auf meinem System:

# zypper se -si *bluez*
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name             | Type  | Version     | Arch   | Repository
---+------------------+-------+-------------+--------+------------------------
i+ | bluez            | Paket | 5.69-2.2    | x86_64 | openSUSE Tumbleweed Oss
i+ | bluez-firmware   | Paket | 1.2-150.2   | x86_64 | openSUSE Tumbleweed Oss
i+ | bluez-obexd      | Paket | 5.69-2.2    | x86_64 | openSUSE Tumbleweed Oss
i  | bluez-qt-imports | Paket | 5.111.0-1.1 | x86_64 | openSUSE Tumbleweed Oss
i  | bluez-qt-udev    | Paket | 5.111.0-1.1 | x86_64 | openSUSE Tumbleweed Oss
#
# rpm -qi --fileprovide bluez-obexd
Name        : bluez-obexd
Version     : 5.69
Release     : 2.2
Architecture: x86_64
Install Date: Mo 06 Nov 2023 13:11:42 CET
Group       : Hardware/Mobile
Size        : 648417
License     : GPL-2.0-or-later
Signature   : RSA/SHA512, Do 02 Nov 2023 21:09:21 CET, Key ID 35a2f86e29b700a4
Source RPM  : bluez-5.69-2.2.src.rpm
Build Date  : Do 02 Nov 2023 21:08:19 CET
Build Host  : i01-ch1c
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://www.bluez.org
Summary     : Object Exchange daemon for sharing content
Description :
Object Exchange daemon for sharing content.
Distribution: openSUSE Tumbleweed
/usr/lib/systemd/user/obex.service
/usr/libexec/bluetooth/obexd
/usr/share/dbus-1/services/org.bluez.obex.service
#
# cat /usr/lib/systemd/user/obex.service
[Unit]
Description=Bluetooth OBEX service

[Service]
Type=dbus
BusName=org.bluez.obex
ExecStart=/usr/libexec/bluetooth/obexd

[Install]
Alias=dbus-org.bluez.obex.service

Und nachdem ich (als Benutzer, nicht als root)

systemctl enable --user dbus-org.bluez.obex.service

durchgeführt habe, findet sich folgender Link in meinem HOME-Verzeichnis:

> ls -la ~/.config/systemd/user
insgesamt 12
drwx------ 3 b1 users 4096 21. Apr 2022  .
drwx------ 3 b1 users 4096 27. Jan 2022  ..
lrwxrwxrwx 1 b1 users   34 21. Apr 2022  dbus-org.bluez.obex.service -> /usr/lib/systemd/user/obex.service
...
>

Bei der nachfolgenden Abfrage kann man obex oder dbus-org.bluez.obex.service verwenden. Beide liefern das identische Ergebnisse.

> systemctl status --user obex
● obex.service - Bluetooth OBEX service
     Loaded: loaded (/usr/lib/systemd/user/obex.service; enabled; preset: disabled)
     Active: active (running) since Tue 2023-11-07 08:07:40 CET; 37min ago
   Main PID: 1612 (obexd)
      Tasks: 1 (limit: 4915)
     Memory: 2.1M
        CPU: 15ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/obex.service
             └─1612 /usr/libexec/bluetooth/obexd

Nov 07 08:07:40 S1 systemd[1456]: Starting Bluetooth OBEX service...
Nov 07 08:07:40 S1 obexd[1612]: OBEX daemon 5.69
Nov 07 08:07:40 S1 systemd[1456]: Started Bluetooth OBEX service.
>

Ich hoffe diese Informationen helfen Dir, Dein Problem weiter zu analysieren.

Eventuell kann eine erneute Installation des Pakets bluez-obexd mit

zypper in -f bluez-obexd

Abhilfe schaffen.

Entschuldigung :frowning: Das hatte ich völlig überlesen.
Hier die Ausgabe:

laptop:~ # systemctl status --user obex.service
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

Bei mir:

renilaptop:~> systemctl enable --user dbus-org.bluez.obex.service
Failed to enable unit: Unit file dbus-org.bluez.obex.service does not exist.

Und die anderen, von mir in Beitrag #7 genannten Befehle liefern identische Ergebnisse zu den von mir gezeigten ?

Prinzipiell ja. Die installierte Version unterscheidet sich natürlich.
Nur bluez-firmware hab ich nicht installiert - wird das benötigt?

Und natürlich entsteht der Link in meinem $HOME nicht und den Status kann ich somit auch nicht abfragen.

systemctl enable --user obex

Das hat funktioniert!

renilaptop:~> systemctl status --user dbus-org.bluez.obex.service
● obex.service - Bluetooth OBEX service
     Loaded: loaded (/usr/lib/systemd/user/obex.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2023-11-08 17:41:17 CET; 1min 48s ago
   Main PID: 7197 (obexd)
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/obex.service
             └─ 7197 /usr/lib/bluetooth/obexd

Und jetzt geht auch diese Abfrage … :roll_eyes:
Warum auch immer ich hier überhaupt etwas tun musste, bleibt mir aber unverständlich.
Bisher ging die Datenübertragung ohne mein zu tun … :confused:

Wenn ich es richtig verstanden habe, hatte “bluez” früher eine eigene Kopie der obex-Software und benutzte das vorhandene Paket “obex” nicht. Das ist jetzt repariert worden. Es wäre ja schlecht, wenn man z.B. ein Sicherheitsupdate für “obex” einspielt und “bluez” ohne das Update weiterwerkelt.

Willst Du das Problem für alle User lösen, dann mach als root:
systemctl --global enable obex

1 Like

Die Auslagerung von obex in ein eigenständiges Paket erfolgte bei openSUSE Tumbleweed im November 2021 (bei openSUSE Leap möglicherweise erst mit dem Wechsel von 15.4 zu 15.5; aber das kann ich nicht mit Sicherheit sagen):

aus dem ChangeLog des Pakets bluez (von Tumbleweed):

Di 23 Nov 2021 13:00:00 CET
Bjørn Lie bjorn.lie@gmail.com

  • Stop nuking the obex service, we support user systemd services
    just fine now. Following this, no longer hack the dbus service,
    leave it as a systemd service as upstream intended.
  • Split out obex in own package with it’s needed enabledment as a
    systemd user service.
  • Add 0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch:
    obex: Use GLib helper function to manipulate paths. Instead of
    trying to do it by hand. This also makes sure that relative paths
    aren’t used by the agent. Patch from fedora.

Damit geht mein Blauzahn auch eben wieder.
Eigentlich heist es, der Blauzahn funktioniert wieder.
Und wie funktioniert er?
Na ja, es geht gerade so.
Mein Dank an Euch alle!

Hallo,

ich habe die Datenübertragung heute mal wieder versucht - und geht jetzt. :woman_shrugging: