web-dev-qa-db-ja.com

BluetoothヘッドセットSony WH-1000XM3がオーディオ入力として機能しない

愛するUbuntu 18.04でSony WH-1000MX3 Bluetoothヘッドセットを使用すると問題が発生します。 Ubuntuはヘッドセットをハンズフリーとして使用できないようです(これはすべてのビデオ通話で便利です)。 bluemanを使用してBluetoothプロファイルをA2DPに変更することにより、ヘッドセットをオーディオ出力に使用できるため、問題は部分的に解決されます。ただし、オーディオ入力にヘッドセットを使用するための解決策はまだ見つかりません(HSP/HFPプロファイルが必要になると思いますか?)。

元々はラップトップのBluetoothは互換性がないかもしれないと思っていましたが、デュアルブートWindowsではヘッドセットは問題なく動作しました。だから私は問題がハードウェアにあるべきではないと思いますか?

さらに、Ubuntuの設定とPulseaudioはヘッドセットをオーディオ入力として認識しているように見えますが、ヘッドセットからオーディオが受信されません。

問題を調査したところ、cat /var/log/syslogから次の行がわかりました。

Apr 23 09:46:31 mande-Lenovo-Y50-70 /usr/lib/gdm3/gdm-x-session[2754]: (II) event19 - CC:98:8B:80:DC:C3: is tagged by udev as: Keyboard
Apr 23 09:46:31 mande-Lenovo-Y50-70 /usr/lib/gdm3/gdm-x-session[2754]: (II) event19 - CC:98:8B:80:DC:C3: device is a keyboard

CC:98:8B:80:DC:C3のMacアドレスは、ヘッドセットに対応しています。

私の友人はudev出力を調べることを提案しましたが、疑わしいものは何も見つかりませんでした。ヘッドセット接続のudevadm出力は次のとおりです。

mande@mande-Lenovo-Y50-70:~$ udevadm monitor -e
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1830.957404] add      /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/bluetooth/hci0/hci0:4 (bluetooth)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/bluetooth/hci0/hci0:4
DEVTYPE=link
SEQNUM=6495
SUBSYSTEM=bluetooth

UDEV  [1830.960384] add      /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/bluetooth/hci0/hci0:4 (bluetooth)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/bluetooth/hci0/hci0:4
DEVTYPE=link
SEQNUM=6495
SUBSYSTEM=bluetooth
SYSTEMD_ALIAS=/sys/subsystem/bluetooth/devices/hci0:4
SYSTEMD_WANTS=bluetooth.target
TAGS=:systemd:
USEC_INITIALIZED=1830960145

KERNEL[1831.825857] add      /devices/virtual/input/input23 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input23
EV=100007
KEY=2fc800 145200000000 0 10300 49e800000c00 e16800000000f f810000010000ffc
MODALIAS=input:b0005v0000p0000e0000-e0,1,2,14,k71,72,73,8A,8B,A3,A5,A6,A7,A8,AB,AE,C8,C9,D0,161,164,166,16A,16C,18B,18E,18F,190,191,192,193,195,ramlsfw
NAME="CC:98:8B:80:DC:C3"
PRODUCT=5/0/0/0
PROP=0
REL=0
SEQNUM=6496
SUBSYSTEM=input

KERNEL[1831.825980] add      /devices/virtual/input/input23/event19 (input)
ACTION=add
DEVNAME=/dev/input/event19
DEVPATH=/devices/virtual/input/input23/event19
MAJOR=13
MINOR=83
SEQNUM=6497
SUBSYSTEM=input

UDEV  [1831.828331] add      /devices/virtual/input/input23 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input23
EV=100007
ID_BUS=bluetooth
ID_INPUT=1
ID_INPUT_KEY=1
KEY=2fc800 145200000000 0 10300 49e800000c00 e16800000000f f810000010000ffc
MODALIAS=input:b0005v0000p0000e0000-e0,1,2,14,k71,72,73,8A,8B,A3,A5,A6,A7,A8,AB,AE,C8,C9,D0,161,164,166,16A,16C,18B,18E,18F,190,191,192,193,195,ramlsfw
NAME="CC:98:8B:80:DC:C3"
PRODUCT=5/0/0/0
PROP=0
REL=0
SEQNUM=6496
SUBSYSTEM=input
TAGS=????
USEC_INITIALIZED=1831827982

UDEV  [1831.852895] add      /devices/virtual/input/input23/event19 (input)
ACTION=add
BACKSPACE=guess
DEVNAME=/dev/input/event19
DEVPATH=/devices/virtual/input/input23/event19
ID_BUS=bluetooth
ID_INPUT=1
ID_INPUT_KEY=1
MAJOR=13
MINOR=83
SEQNUM=6497
SUBSYSTEM=input
TAGS=:power-switch:
USEC_INITIALIZED=1831852732
XKBLAYOUT=fi
XKBMODEL=pc105
XKBOPTIONS=
XKBVARIANT=

ヘッドセットをHSP/HFPとして接続している間、/usr/bin/pacmd list-sourcesでさらに運を試しました。

mande@mande-Lenovo-Y50-70:~$ /usr/bin/pacmd list-sources
4 source(s) available.
    index: 1
 name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
 driver: <module-alsa-card.c>
 flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
 state: SUSPENDED
 suspend cause: IDLE 
 priority: 9039
 volume: front-left: 12236 /  19% / -43,73 dB,   front-right: 12236 /  19% / -43,73 dB
         balance 0,00
 base volume: 5206 /   8% / -66,00 dB
 volume steps: 65537
 muted: no
 current latency: 0,00 ms
 max rewind: 0 KiB
 sample spec: s16le 2ch 44100Hz
 channel map: front-left,front-right
              Stereo
 used by: 0
 linked by: 0
 configured latency: 0,00 ms; range is 0,50 .. 371,52 ms
 card: 1 <alsa_card.pci-0000_00_1b.0>
 module: 8
 properties:
  alsa.resolution_bits = "16"
  device.api = "alsa"
  device.class = "sound"
  alsa.class = "generic"
  alsa.subclass = "generic-mix"
  alsa.name = "ALC3239 Analog"
  alsa.id = "ALC3239 Analog"
  alsa.subdevice = "0"
  alsa.subdevice_name = "subdevice #0"
  alsa.device = "0"
  alsa.card = "1"
  alsa.card_name = "HDA Intel PCH"
  alsa.long_card_name = "HDA Intel PCH at 0xd1714000 irq 32"
  alsa.driver_name = "snd_hda_intel"
  device.bus_path = "pci-0000:00:1b.0"
  sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
  device.bus = "pci"
  device.vendor.id = "8086"
  device.vendor.name = "Intel Corporation"
  device.product.id = "8c20"
  device.product.name = "8 Series/C220 Series Chipset High Definition Audio Controller"
  device.form_factor = "internal"
  device.string = "front:1"
  device.buffering.buffer_size = "65536"
  device.buffering.fragment_size = "32768"
  device.access_mode = "mmap+timer"
  device.profile.name = "analog-stereo"
  device.profile.description = "Analog Stereo"
  device.description = "Built-in Audio Analog Stereo"
  alsa.mixer_name = "Realtek ALC3239"
  alsa.components = "HDA:10ec0283,17aa3807,00100003"
  module-udev-detect.discovered = "1"
  device.icon_name = "audio-card-pci"
 ports:
  analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: unknown)
   properties:
    device.icon_name = "audio-input-microphone"
  analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: no)
   properties:
    device.icon_name = "audio-input-microphone"
 active port: <analog-input-internal-mic>
    index: 4
 name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
 driver: <module-alsa-card.c>
 flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
 state: SUSPENDED
 suspend cause: IDLE 
 priority: 1030
 volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
         balance 0,00
 base volume: 65536 / 100% / 0,00 dB
 volume steps: 65537
 muted: yes
 current latency: 0,00 ms
 max rewind: 0 KiB
 sample spec: s16le 2ch 44100Hz
 channel map: front-left,front-right
              Stereo
 used by: 0
 linked by: 0
 configured latency: 0,00 ms; range is 0,50 .. 371,52 ms
 monitor_of: 3
 card: 1 <alsa_card.pci-0000_00_1b.0>
 module: 8
 properties:
  device.description = "Monitor of Built-in Audio Analog Stereo"
  device.class = "monitor"
  alsa.card = "1"
  alsa.card_name = "HDA Intel PCH"
  alsa.long_card_name = "HDA Intel PCH at 0xd1714000 irq 32"
  alsa.driver_name = "snd_hda_intel"
  device.bus_path = "pci-0000:00:1b.0"
  sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
  device.bus = "pci"
  device.vendor.id = "8086"
  device.vendor.name = "Intel Corporation"
  device.product.id = "8c20"
  device.product.name = "8 Series/C220 Series Chipset High Definition Audio Controller"
  device.form_factor = "internal"
  device.string = "1"
  module-udev-detect.discovered = "1"
  device.icon_name = "audio-card-pci"
index: 8
 name: <bluez_sink.CC_98_8B_80_DC_C3.headset_head_unit.monitor>
 driver: <module-bluez5-device.c>
 flags: DECIBEL_VOLUME LATENCY 
 state: IDLE
 suspend cause: 
 priority: 1050
 volume: mono: 66020 / 101% / 0,19 dB
         balance 0,00
 base volume: 65536 / 100% / 0,00 dB
 volume steps: 65537
 muted: yes
 current latency: 0,00 ms
 max rewind: 0 KiB
 sample spec: s16le 1ch 8000Hz
 channel map: mono
              Mono
 used by: 0
 linked by: 0
 fixed latency: 28,00 ms
 monitor_of: 7
 card: 5 <bluez_card.CC_98_8B_80_DC_C3>
 module: 32
 properties:
  device.description = "Monitor of WH-1000XM3"
  device.class = "monitor"
  device.string = "CC:98:8B:80:DC:C3"
  device.api = "bluez"
  device.bus = "bluetooth"
  device.form_factor = "headset"
  bluez.path = "/org/bluez/hci0/dev_CC_98_8B_80_DC_C3"
  bluez.class = "0x240404"
  bluez.alias = "WH-1000XM3"
  device.icon_name = "audio-headset-bluetooth"
  device.intended_roles = "phone"
  * index: 9
 name: <bluez_source.CC_98_8B_80_DC_C3.headset_head_unit>
 driver: <module-bluez5-device.c>
 flags: HARDWARE HW_VOLUME_CTRL LATENCY 
 state: RUNNING
 suspend cause: 
 priority: 9050
 volume: mono: 13265 / 20%
         balance 0,00
 base volume: 65536 / 100%
 volume steps: 16
 muted: no
 current latency: 28,00 ms
 max rewind: 0 KiB
 sample spec: s16le 1ch 8000Hz
 channel map: mono
              Mono
 used by: 1
 linked by: 1
 fixed latency: 28,00 ms
 card: 5 <bluez_card.CC_98_8B_80_DC_C3>
 module: 32
 properties:
  bluetooth.protocol = "headset_head_unit"
  device.intended_roles = "phone"
  device.description = "WH-1000XM3"
  device.string = "CC:98:8B:80:DC:C3"
  device.api = "bluez"
  device.class = "sound"
  device.bus = "bluetooth"
  device.form_factor = "headset"
  bluez.path = "/org/bluez/hci0/dev_CC_98_8B_80_DC_C3"
  bluez.class = "0x240404"
  bluez.alias = "WH-1000XM3"
  device.icon_name = "audio-headset-bluetooth"
 ports:
  headset-input: Headset (priority 0, latency offset 0 usec, available: unknown)
   properties:

 active port: <headset-input>

これは、私たちが進める方法についてのアイデアを使い果たした場所です。何を調べるべきかについてのポインタは非常に高く評価されます。前もって感謝します :)


アップデート18.5:

別のヘッドセットBose QC35 IIを接続してみましたが、ヘッドセットをオーディオシンク(A2DPシンク)としてしか使用できません。ヘッドセットを入力デバイスとして接続しようとすると、ヘッドセットは次のように言います。

再びcat /var/log/syslogから、ヘッドセットがキーボードとして認識されているようです:

May 18 11:38:44 mande-Lenovo-Y50-70 /usr/lib/gdm3/gdm-x-session[3021]: (II) config/udev: Adding input device 2C:41:A1:04:B8:94 (/dev/input/event19)
May 18 11:38:44 mande-Lenovo-Y50-70 /usr/lib/gdm3/gdm-x-session[3021]: (**) 2C:41:A1:04:B8:94: Applying InputClass "libinput keyboard catchall"
3
Manezki

オーディオ入力にHSP/HFPが必要であることは正しいです。 Bluetoothは非常に扱いにくい場合があります。必ずヘッドセットを忘れて修理してください。

トラブルシューティングを支援するために、HSP/HSFモードのblueheadsetに対する_/usr/bin/pacmd list-sources_の出力を次に示します。

_* index: 23
    name: <bluez_source.00_16_94_1E_CC_05.headset_head_unit>
    driver: <module-bluez5-device.c>
    flags: HARDWARE HW_VOLUME_CTRL LATENCY 
    state: RUNNING
    suspend cause: (none)
    priority: 9050
    volume: mono: 61166 /  93%
            balance 0.00
    base volume: 65536 / 100%
    volume steps: 16
    muted: no
    current latency: 34.37 ms
    max rewind: 0 KiB
    sample spec: s16le 1ch 8000Hz
    channel map: mono
                 Mono
    used by: 1
    linked by: 1
    fixed latency: 28.00 ms
    card: 9 <bluez_card.00_16_94_1E_CC_05>
    module: 34
    properties:
        bluetooth.protocol = "headset_head_unit"
        device.intended_roles = "phone"
        device.description = "HD 4.40BT"
        device.string = "00:16:94:1E:CC:05"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_00_16_94_1E_CC_05"
        bluez.class = "0x240404"
        bluez.alias = "HD 4.40BT"
        device.icon_name = "audio-headset-bluetooth"
    ports:
        headset-input: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:

    active port: <headset-input>
_

私にはsuspend cause: (none)があり、_suspend cause:_はありますが、これが唯一の違いです。

ちなみに、Bluetoothで作業しているときに、Bluetoothサービスだけを再起動するだけでは不十分です。私はこれがよりうまく機能することを発見しました:_Sudo rfkill block bluetooth && sleep 0.1 && Sudo rfkill unblock bluetooth;_

1
Chart96