私はインターネットを精査することができたすべてを試みました、そして途方に暮れています。 HyperX Cloud Flight Sヘッドフォンではマイクを使用できませんが、以前の非Sリビジョンは完全に機能します。関連する出力は次のとおりです。
uname -a
Linux laptop 5.3.0-42-generic #34-Ubuntu SMP Fri Feb 28 05:49:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
amixer -c1 contents
numid=4,iface=CARD,name='Keep Interface'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=MIXER,name='PCM Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=7,iface=MIXER,name='PCM Playback Switch',index=1
; type=BOOLEAN,access=rw------,values=1
amixer: Control hw:1 element read error: Invalid argument
numid=3,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=8,min=0,max=74,step=0
: values=54,54,54,54,54,54,54,54
| dBminmax-min=-74.00dB,max=0.00dB
numid=8,iface=MIXER,name='PCM Playback Volume',index=1
; type=INTEGER,access=rw---R--,values=2,min=0,max=1,step=0
amixer: Control hw:1 element read error: Invalid argument
numid=9,iface=MIXER,name='Mic Capture Switch'
; type=BOOLEAN,access=rw------,values=1
amixer: Control hw:1 element read error: Invalid argument
numid=10,iface=MIXER,name='Mic Capture Volume'
; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
amixer: Control hw:1 element read error: Invalid argument
numid=5,iface=PCM,name='Capture Channel Map'
; type=INTEGER,access=r----R--,values=1,min=0,max=36,step=0
: values=0
| container
| chmap-fixed=MONO
numid=1,iface=PCM,name='Playback Channel Map'
; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
: values=3,4
| container
| chmap-fixed=FL,FR
| chmap-fixed=FL,FR,FC,LFE,SL,SR,SL,SR
numid=6,iface=PCM,name='Playback Channel Map',device=1
; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
: values=0,0
| container
| chmap-fixed=FL,FR
lsusb
Bus 001 Device 003: ID 0951:16ea Kingston Technology HyperX Cloud Flight S
cat /proc/asound/cards
1 [S ]: USB-Audio - HyperX Cloud Flight S
Kingston HyperX Cloud Flight S at usb-0000:00:14.0-2, full speed
arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: S [HyperX Cloud Flight S], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
5.7rc3の kernel update は、この問題(このヘッドセット専用)のパッチを導入しました。パッチが適用されると、dmesg出力は次のような行になるはずです。
[ 6.804026] kernel: usb 1-1: Found post-registration device assignment: 095116ea:02
Alsa構成ドキュメントには次のように記載されています。
Module snd-usb-audio
--------------------
...
delayed_register
The option is needed for devices that have multiple streams
defined in multiple USB interfaces. The driver may invoke
registrations multiple times (once per interface) and this may
lead to the insufficient device enumeration.
This option receives an array of strings, and you can pass
ID:INTERFACE like ``0123abcd:4`` for performing the delayed
registration to the given device. In this example, when a USB
device 0123:abcd is probed, the driver waits the registration
until the USB interface 4 gets probed.
The driver prints a message like "Found post-registration device
assignment: 1234abcd:04" for such a device, so that user can
notice the need.
したがって、dmesgから取得した上記の情報と、構成ドキュメントから必要なフィールドを取得して、これをalsa-base.confの最後に追加します
# Add delayed register for HyperX Cloud Flight S Headset
options snd-usb-audio delayed_register=095116ea:02
その後、再起動すると、期待どおりにヘッドセットとプロファイルが表示されます。
補足として、snd-usb-audioモジュールには別のオプションがあります。
quirk_alias
Quirk alias list, pass strings like ``0123abcd:5678beef``, which
applies the existing quirk for the device 5678:beef to a new
device 0123:abcd.
これにより、カーネル5.4によって「Kingston HyperX AMP」用にすでに作成されている癖をコピーしてこのヘッドセットに適用できること、そして遅延レジスターを追加することで5.7より前に機能すると信じていました。私はすでに弾丸を噛んでカーネルをアップグレードしたので、戻ってチェックするつもりはありません。誰かがその仕事をしているなら、私に知らせて、ここの投稿を病気にしてください。次のように簡単です。
options snd-usb-audio quirk_alias=095116ea:095116d8 delayed_register=095116ea:02
お知らせ下さい!