Подключите наушники к компьютеру и выполните эту команду:
lsusb -d 18d1:5033 -v | grep Class
Если вывод содержит слова Audio
и Streaming
в любом месте, есть надежда, что :наушники имеют встроенный -ЦАП и могут быть распознаны как стандартное аудиоустройство USB.
Но если это слово не видно, возможно, единственная цифровая электроника в наушниках — это крошечный чип, который в основном говорит: «Я набор пассивных наушников USB -C; -С подключается напрямую к аналоговому аудиовыходу. И поскольку к моменту выхода на рынок наушников USB -C стандарт еще не был готов, похоже, существует несколько конкурирующих решений.
По сути, наушники могут быть напрямую подключены к определенным контактам в разъеме USB -C, и управляющее устройство должно иметь возможность переключать эти контакты в режим аналогового вывода звука. Контроллер USB -C вашего смартфона явно может это сделать; но я очень сомневаюсь, что многие ноутбуки имеют необходимую проводку между аудиочипом и контроллером USB -C для маршрутизации аналогового аудиосигнала из USB -C.
См. также:https://www.reviewgeek.com/11101/dont-bother-with-usb-c-headphones-for-now/
Если информация об устройстве USB включает класс Audio
и подкласс Streaming
, значит, должен загружаться модуль snd-usb-audio
. Если все работает правильно, аудиоустройство должно появиться в списке /proc/asound/cards
; после этого единственной оставшейся проблемой может быть получение правильного профиля PulseAudio, назначенного устройству (, если вы используете PulseAudio ).
Но если модуль snd-usb-audio
не может использовать устройство, возможно, у него есть некоторые аппаратные особенности, которые необходимо учитывать; в модуле уже есть несколько необычных опций, которые вы можете попробовать. В этом случае, и особенно если вы обнаружите, что добавление определенного параметра причуды заставляет устройство работать, вы также должны отправить по электронной почте выходные данные lsusb -v
устройства и описание ваших выводов разработчикам аудиодрайвера Linux, чтобы правильная причуда (s )будут автоматически применены к вашей модели устройства в будущих версиях ядра.
Если ваш дистрибутив использует PulseAudio и не видит ваше устройство после всех этих проверок, есть еще одна проблема, которая может привести к ошибке :при назначении устройству правильного профиля PulseAudio. Профили расположены в каталоге /usr/share/pulseaudio/alsa-mixer/profile-sets/
(, по крайней мере, в Debian/Ubuntu ), а профиль default.conf
содержит очень описательные комментарии. Возможно, вы обнаружите, что один из профилей по умолчанию, отличных от -, применим к вашему устройству, или вам, возможно, придется написать новый профиль.
Чтобы назначить определенный профиль PulseAudio аудиоустройству, вы можете использовать правило udev. Должно быть что-то вроде:
SUBSYSTEM=="sound", <conditions to match only your device>, ENV{PULSE_PROFILE_SET}="profilename.conf"
Спасибо telcoM за подсказку о snd-usb-audio
. Оказывается, мое ядро отключило SND_USB_AUDIO
. Я использовал:
make menuconfig
для установки SND_USB_AUDIO
наm
(модуль ядра ). Затем я проверил свою версию ядра, основанную на /proc/version
. Затем я перекомпилировал только модули ядра через:
make modules
Затем я вставил модули по порядку:
sudo insmod sound/core/snd-rawmidi.ko
sudo insmod sound/usb/snd-usbmidi-lib.ko
sudo insmod sound/usb/snd-usb-audio.ko
Конечно, лучше просто собрать ядро и модули вместе, так как модули не будут загружаться автоматически при перезагрузке, но описанное выше сработало для меня.