More HSP/HFP bluetooth headset woes (WH-XB700) [SOLVED]

Updated! In late 2022, GNOME, Ubuntu and Debian have switched to Pipewire as their default audio server. PipeWire solves many of the issues with Bluetooth hardware and codecs.
It has a compatibility layer for PulseAudio (pipewire-pulse), allowing existing applications to seamlessly benefit from PipeWire improvements.

I’ve been using pipewire along with the wireplumber session manager since version 0.3.x, so if you still have problems and haven’t switched to it, I highly recommend you to do so. There are many guides online, but this one from Baeldung is the best one IMHO.

This means that most of the information in this article is now obsolete, but I will keep it just for reference.

Well, I think you have seen the previous posts (below) where I rambled about connection problems with bluetooth headphones/headsets on Debian.

If you’ve already read it, be aware that they don’t reflect the current situation. I’ll elaborate…

After moving back to Debian Bullseye a few months ago, I was given (a delightful gift from a lovely person, I must say) a pair of Sony WH-XB700 headphones which are now working great on that platform, BUT be aware that you may run into some problems while setting them up.

This is my current configuration:

$ inxi -F
System: Host: hp-laptop Kernel: 5.10.0-11-amd64 x86_64 bits: 64 Desktop: Cinnamon 4.8.6
Distro: Debian GNU/Linux 11 (bullseye)
...
Audio: Device-1: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel
Sound Server: ALSA v: k5.10.0-11-amd64
...
Bluetooth: Device-1: Intel Bluetooth wireless interface type: USB driver: btusb
Report: ID: hci0 state: up running bt-v: 2.1 address: [REDACTED]
...

$ apt list --installed bluez blueman pulseaudio pulseaudio-module-bluetooth
blueman/stable,now 2.1.4-1+b1 amd64 [installed]
bluez/stable,now 5.55-3.1 amd64 [installed,automatic]
pulseaudio-module-bluetooth/stable,now 14.2-2 amd64 [installed,automatic]
pulseaudio/stable,now 14.2-2 amd64 [installed]

After connecting the headphones, sound is great with the a2dp_sink [High Fidelity Playback (A2DP Sink)] profile. HOWEVER, while trying to switch to headset_head_unit [Headset Head Unit (HSP/HFP)] profile to use the built-in microphone for calls and meets, pulseaudio kept hanging, crashing and restarting with the following errors (hidden on pulseaudio’s journal):

$ journalctl --user -u pulseaudio   # run this as normal user
...
Mar 05 12:28:14 hp-laptop pulseaudio[1290]: q overrun, queuing locally
Mar 05 12:28:15 hp-laptop pulseaudio[1290]: q overrun, queuing locally
Mar 05 12:28:15 hp-laptop pulseaudio[1290]: q overrun, queuing locally
...

Also, bluetooth logs showed problems while trying to set up the audio AVCTP / AVRCP protocols:

# journalctl -u bluetooth   # run this as root user
...
Mar 05 12:28:42 hp-laptop bluetoothd[840]: Starting SDP server
Mar 05 12:28:42 hp-laptop bluetoothd[840]: Bluetooth management interface 1.18 initialized
Mar 05 12:28:42 hp-laptop bluetoothd[840]: profiles/audio/avctp.c:avctp_server_socket() setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mar 05 12:28:42 hp-laptop bluetoothd[840]: avrcp-controller: Protocol not supported (93)
Mar 05 12:28:42 hp-laptop bluetoothd[840]: profiles/audio/avctp.c:avctp_server_socket() setsockopt(L2CAP_OPTIONS): Invalid argument (22)
Mar 05 12:28:42 hp-laptop bluetoothd[840]: audio-avrcp-target: Protocol not supported (93)
Mar 05 12:28:42 hp-laptop bluetoothd[840]: profiles/sap/server.c:sap_server_register() Sap driver initialization failed.
Mar 05 12:28:42 hp-laptop bluetoothd[840]: sap-server: Operation not permitted (1)
Mar 05 12:28:45 hp-laptop bluetoothd[840]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc
Mar 05 12:28:45 hp-laptop bluetoothd[840]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc
Mar 05 12:29:03 hp-laptop bluetoothd[840]: Endpoint unregistered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc
Mar 05 12:29:03 hp-laptop bluetoothd[840]: Endpoint unregistered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc
Mar 05 12:29:03 hp-laptop bluetoothd[840]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSink/sbc
Mar 05 12:29:03 hp-laptop bluetoothd[840]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSource/sbc
...

Well, after a lot of headaches and dead ends, it turned out that some process (I haven’t figured out which one, yet) was stealthily switching off the ERTM (Enhanced ReTransmission Mode) and ESCO (Enhanced SCO) protocols of my Bluetooth stack.

So if you have a similar problem, verify that your stack does not have them disabled by looking at /sys/module/bluetooth/parameters/

# grep --color . /sys/module/bluetooth/parameters/disable_e*
/sys/module/bluetooth/parameters/disable_ertm:N
/sys/module/bluetooth/parameters/disable_esco:N

If you see a Y there, you might want to try re-enabling ERTM and ESCO by issuing the following commands:

echo N > /sys/module/bluetooth/parameters/disable_ertm
echo N > /sys/module/bluetooth/parameters/disable_esco
systemctl restart bluetooth

After doing that, switching to headset_head_unit profile should work fine and the headset can be used without any problem.

I’ll try to test the same setup with the new pipewire stack in the following days, but in the meantime, kudos to Juan Pablo Lassala for describing the proper solution to this tricky problem on pulseaudio issue tracker.

Una noche de genios (salvo por el jurado)

El viernes 9 de agosto pasado, la agrupación de Hockey Masculino del Luján Rugby Club organizó en el Salón del Rotary Club Juan Barnech una “Noche de Mente” con el fin de recaudar fondos para costear el traslado del equipo de hockey juvenil Vikinguitos a una competencia en Mar del Plata.

Para quienes no han oído hablar de este tipo de encuentros, una “Noche de Mente”, más conocida como “Noche de Genios”, es un evento a beneficio de una agrupación o institución en el cual distintos grupos de amigos / familiares conforman equipos o “mesas” que compiten entre sí respondiendo preguntas en distintas rondas, donde cada ronda trata sobre una temática particular tal como deportes, cine y televisión, literatura, música, biología, historia, cultura general, etc. Aquellos que responden correctamente suman puntos y la mesa que más puntos acumula se corona ganadora de la noche.

La tarjeta de participación tiene un costo simbólico que, en conjunto con las donaciones de distintos comercios y lo obtenido de la venta en cantina, aporta a un fondo común del que salen los premios y, fundamentalmente, la recaudación para la cual fue organizado el evento. En general, los organizadores y quienes trabajan en pos de ello son los miembros de la misma institución, sus padres, familiares y amigos. En Luján suelen realizarse con frecuencia, llevadas adelante por promociones de escuelas, grupos deportivos y agrupaciones sociales.

El fin último es colaborar con una institución reconocida y en pos de un buen motivo. También, desde luego, pasar una noche divertida con amigos y conocidos.

Así transcurrió la noche del viernes, con una concurrencia completa, con buena atención por parte de los jóvenes de la agrupación, con una sana y animada competencia entre mesas amigas. Así transcurrió hasta el momento del anuncio de los resultados.

Es que, sorprendentemente, el jurado anunció como ganadora a la mesa equivocada, cuyo puntaje acumulado es matemáticamente imposible de obtener según los anuncios de conteos parciales que el mismo anfitrión realizó durante distintos momentos de la noche. Se lo digo de otra forma: ni siquiera teniendo calificación perfecta en todas las rondas restantes, dicha mesa podía haber obtenido el puntaje que fue asignado por el jurado. Para peor, el anfitrión anunció que la mesa había ganado “por más de 40 puntos” sobre el resto, según sus palabras. Un error del que quien operaba la locución podría haberse percatado inmediatamente si hubiera prestado la mínima atención a las rondas anteriores.

Durante el cierre del evento, nos acercamos con un participante amigo a consultar respecto de la validez de los resultados. No quedaba ninguno de los jurados –que se ausentaron rápidamente, por lo visto–, pero sí uno de los organizadores del juego. Sin saber cómo se realizaron los cálculos, hizo lo posible para comprender la cadena de errores que habían cometido:

  1. El jurado cometió un error al calcular el puntaje de la mesa “ganadora”, sumando dos veces la calificación de las primeras rondas, con lo cual arribaba a un resultado muy superior –y errado– al del resto de los competidores. Sumando correctamente los valores de la planilla de resultados del jurado, el puntaje real de la mesa ganadora no alcanzaba el mínimo necesario para estar entre los primeros tres puestos del encuentro.
  2. Quien realizó el control de las respuestas de la anteúltima ronda, intercambió el puntaje de dos mesas. Nuestras respuestas correctas, cotejadas contra lo mencionado al final de la ronda 9, eran 17, mientras que en la planilla de resultado figuraban sólo 6 puntos. Esos 17 puntos figuraban asignados a la mesa de la columna inmediatamente anterior.
  3. La forma en que la organización podría haber validado o refutado lo mencionado en el punto anterior es con la revisión de la hoja de respuestas de cada mesa. Curiosamente, la única hoja de respuestas que faltaba era la correspondiente a nuestra mesa. “Parece como si lo hubiéramos hecho a propósito” dijo quien atendió nuestro reclamo. En efecto, parece como si lo hubieran hecho a propósito.
  4. Finalmente, no se anunciaron los puntajes de las últimas rondas. De haberlo hecho, los tres errores previamente mencionados podrían haberse advertido y resuelto en el momento.

Una Noche de Genios es un encuentro donde se premia a quienes responden correctamente.
¿Qué validez puede tener, entonces, la corrección de un jurado que se equivoca al otorgar el primer premio?

Podría decirse “errar es humano” o “es un juego, no deberías tomártelo tan a pecho”. Si una situación similar se diera en un partido de hockey, ¿no habría la agrupación competidora presentado una queja formal?

Es cierto, errar es humano, como también es humano reconocer los propios errores. Lo primero sucedió. Ahora estoy esperando una disculpa pública por parte de la organización.

Por lo pronto, van dos recomendaciones para las próximas noches de genios, que son de especial interés si la tarjeta dice “Agrupación de Hockey Masculino del Luján Rugby Club”:

  • Si está del lado de la organización: revise las hojas de resultados entre dos o más personas; anuncie las respuestas correctas al finalizar cada juego y los puntos asignados a cada mesa; realice revisión por pares de las sumas de puntajes; y si se le complican las sumas, ¡use Excel, por el amor de Dios!
  • Si participa en una noche de genios: controle las sumas de su propia mesa y controle además los puntajes de las demás. Nunca se sabe si el jurado que le tocó en la noche se llevó matemáticas a marzo.

Para finalizar, sólo deseo que los Vikinguitos tengan mejor suerte. Que lleven adelante un excelente encuentro en Mar del Plata, compitiendo con ansias y con garra.

Y espero, más que nada, que puedan traerse un merecido trofeo, en vez de volver a Luján desilusionados con una victoria-que-no-fue porque la organización se equivocó al sumar los puntos del partido.

Mauro A. Meloni

Skype for linux y los tonos DTMF

Increíble. Una aplicación de telefonía donde en la última versión (5.3.01, al menos) no anda el keypad para enviar tonos DTMF.

Obviamente, sin eso no podés hablar con el 90% de las empresas que tienen un preatendedor (“para ventas, marque 1; para soporte, marque 2, …”), que es para lo que fundamentalmente lo utilizo.

Si eso anduvo siempre… ¿qué necesidad había de cambiar el código?

Sabemos que Skype viene cayendo desde hace rato, pero caer… tan bajo?

No cree una cuenta de usuario “user”

Leyendo Hacker News encuentro que en Windows 8.1, si creás una cuenta de usuario que contenga la cadena de texto user, el proceso taskhost.exe puede llegar a desbocarse y consumir CPU en forma desproporcionada.

¿El motivo? “This is a problem in the component DFPCommon.dl in Windows 8.1.”
¿La solución? El título de este post.

Tan claro como eso. Ya lo habíamos hablado tiempo atrás. Debí haberlo imaginado.

AFIP, sobrecargada

La RAE y su incorrecta acepción de hacker

A partir del dato que pasó Raúl Batista en el blog Segu-Info, leo con mucho desagrado que la Real Academia Española (RAE) ha incorporado a la 23a. edición del Diccionario de la Lengua Española el término “hacker”, con la siguiente acepción:

hacker (Voz ingl.): m. y f. Inform. pirata informático.

aclarando que la explicación de pirata informático tambien en rae.es:

Pirata informático: Traducción recomendada para la voz inglesa hacker, ‘persona con grandes habilidades en el manejo de ordenadores, que utiliza sus conocimientos para acceder ilegalmente a sistemas o redes ajenos’: “Un pirata informático logró jaquear los sistemas de seguridad” (Clarín@ [Arg.] 19.6.05).

Por mi parte, continuaré utilizando la definición existente en el Jargon File, de Eric S. Raymond, que surge desde el propio movimiento hacker y es aceptada ampliamente por la comunidad de software libre, según la cual un hacker es, entre otras cosas:

hacker: n. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users’ Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. (Jargon File)

hacker: s. Una persona que disfruta explorando los detalles de los sistemas programables y cómo extender sus capacidades, a diferencia de la mayoría de los usuarios que prefieren aprender sólo el mínimo necesario. La RFC1392, el Glosario de los Usuarios de Internet, amplía eficazmente la definición como: Una persona que se deleita en tener un entendimiento profundo del funcionamiento interno de un sistema, de las computadoras y de las redes informáticas, en particular.

Desconozco qué es lo que ha llevado a los editores de la RAE a tomar tan equivocada definición del término. Probablemente lo que apunta Raúl acerca de el uso habitual en los medios de comunicación tenga algo que ver, pero sin dudas me ha desilusionado sobremanera que la gente de la Real Academia haya incorporado esta acepción sin haber consultado previamente a los propios referidos por el término. Para decirlo sencillo: “un cirujano no es un asesino, por más que abra la gente al medio”.

Actualización: Chema Alonso se suma a la protesta y ha iniciado una petición en Change.org para que se cambie la definición de hacker. Firmas aquí!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress