Soluciones de problemas de Bluetooth

Dzickus, Hhlp, Devurandom Version 37,38 Last review: 2023-09-04

Bluetooth es un protocolo inalámbrico de corto alcance que se utiliza para conectar diversos dispositivos de E/S de bajo ancho de banda (como teclados, ratones y auriculares). Las versiones más recientes tienen un modo de bajo consumo con un ancho de banda y un alcance ligeramente superiores.

La solución Bluetooth está compuesta de un demonio de espacio de usuario, bluetoothd, que comunica a través de un puerto de gestión dentro del núcleo para los controladores de hardware. Aplicaciones que desean comunicar con el demonio bluetoothd sobre un API d-bus. Esto incluye los varios applet bluetooth de GNOME.

Identificar Problemas con Bluetooth

¿Fue encontrado el hardware bluetooth?

  • asegúrese que bluetooth fue encontrado y habilitado (nota hci0: y 'UP RUNNING'):

    $ hciconfig
    hci0:	Tipo: Bus primario: USB
    	Dirección BD: xx:xx:xx:xx:xx:xx  ACL MTU: 1021:4  SCO MTU: 96:6
    	HASTA EJECUCIÓN DE PSCAN
    	RX bytes:15047 acl:0 sco:0 eventos:2433 errors:0
    	TX bytes:599323 acl:0 sco:0 instrucciones:2431 errores:0
  • Si el comando no devuelve nada (no hcl: info), entonces hay un asunto de hardware

    $ lsusb -v | grep Bluetooth | grep DeviceProtocol
    bDeviceProtocol         1 Bluetooth
  • Si el comando lsusb no devuelve nada, no hay hardware, una salida de dmesg sería necesaria

  • Si los comandos lsusb devuelven Bluetooth, entonces marque para unidad adjuntada

    $ lsusb -t | grep Wireless
        |__ Port 4: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 4: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
  • Si la Unidad está vacía, la salida de lsusb -v sería necesaria para añadir los ids

  • Si hciconfig muestra la salida pero no UP

    $ hciconfig up
  • Listado de dispositivos emparejados:

    $ bluetoothctl
    [bluetooth]# show
    [bluetooth]# devices
    [bluetooth]# info <la dirección de mac de cualquier dispositivo tiene problemas>

¿Está ejecutando el demonio bluetooth?

  • Verifique que en bluetooth systemd esté 'Activo' y 'habilitado'

    $ systemctl status bluetooth
    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2017-10-04 16:07:40 EDT; 1 day 22h ago
         Docs: man:bluetoothd(8)
     Main PID: 27427 (bluetoothd)
       Status: "Running"
        Tasks: 1 (limit: 4915)
       CGroup: /system.slice/bluetooth.service
               └─27427 /usr/libexec/bluetooth/bluetoothd
  • Verifique que obex esté configurado para ejecutarse (para transferir archivos desde el teléfono)

$ systemctl --global --user is-enabled obex
  enabled

Depuración simple

Muchos problemas de bluetooth en el paquete bluez (bluetoothd). p.ej el demonio de espacio de usuario.

Habilita depuración de bluetoothd
  • edita /usr/lib/systemd/system/bluetooth.service

  • añade -d a la línea ExecStart como una opción para Bluetoothd

  • guardar y salir

$ systemctl daemon-reload
$ systemctl restart bluetooth

La depuración está habilitada y puede ayudar a identificar dónde están algunos de los problemas de Bluetooth

Captura las bitácoras para poner en el informe de bugzilla
$ journalctl -r -u bluetooth > /tmp/bluetoothd.out

Resolver problemas con el firmware

Sucede que el firmware de adaptadores de bluetooth introducen un estado donde no es capaz de emparejar cierto dispositivo (o todos) de bluetooth. Tal vez sean capaces de resolver tales problemas restableciendo su adaptador.

En el caso de portátil con un adaptador bluetooth integrado esto podría ser logrado por:

  1. Introduzca los ajustes del firmware del portátil (BIOS) e inutiliza el adaptador embebido

  2. Guarda ajustes y reinicia el portátil

  3. Introduzca los ajustes de firmware por segunda vez y habilita el adaptador bluetooth de nuevo

  4. Guardar y reiniciar

  5. Ahora pruebe emparejar el dispositivo de nuevo