LINUX.ORG.RU

Нет звука с usb-микрофона ME6S. Arch Linux

 , ,


0

1

Сам микрофон подключается и определяется, но звука с него нет. Проверял alsamixer, каналы микрофона не замучены. Через pavucontrol смотрел, ползунок звука с микрофона на нуле. Вывод dmesg:

[  444.395174] usb 1-1.2: new full-speed USB device number 6 using ehci-pci
[  444.493611] usb 1-1.2: New USB device found, idVendor=0c76, idProduct=8688, bcdDevice= 1.00
[  444.493621] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  444.493624] usb 1-1.2: Product: ME6S
[  444.493627] usb 1-1.2: Manufacturer: ME6S MS_N-B R-UN +3db
[  444.501793] usb 1-1.2: Warning! Unlikely big volume range (=496), cval->res is probably wrong.
[  444.501799] usb 1-1.2: [51] FU [Mic Playback Volume] ch = 1, val = 0/7936/16
[  444.507795] usb 1-1.2: Warning! Unlikely big volume range (=1008), cval->res is probably wrong.
[  444.507801] usb 1-1.2: [49] FU [Speaker Playback Volume] ch = 2, val = -16129/-1/16
[  444.512911] usb 1-1.2: Warning! Unlikely big volume range (=496), cval->res is probably wrong.
[  444.512913] usb 1-1.2: [50] FU [Mic Capture Volume] ch = 1, val = 0/7936/16
[  444.513961] input: ME6S MS_N-B R-UN +3db ME6S as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.3/0003:0C76:8688.0009/input/input21
[  444.568971] hid-generic 0003:0C76:8688.0009: input,hidraw0: USB HID v1.00 Device [ME6S MS_N-B R-UN +3db ME6S] on usb-0000:00:1a.0-1.2/input3
[  487.620855] usb 1-1.2: cannot submit urb 0, error -28: not enough bandwidth

Последняя строчка появилась, когда зашел в pavucontrol. Вывод lsusb:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 004: ID 09da:1c4b A4Tech Co., Ltd. USB Device 
Bus 001 Device 005: ID 1a2c:1511 China Resource Semico Co., Ltd USB Keyboard
Bus 001 Device 006: ID 0c76:8688 JMTek, LLC. ME6S
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Как видим микрофон определяется. Еще выводы разных команд, которые могут пригодиться:

❯ cat /proc/asound/card*/codec* | grep Codec
Codec: Realtek ALC897
Codec: Nvidia GPU 51 HDMI/DP
❯ arecord --list-devices
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC897 Analog [ALC897 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC897 Alt Analog [ALC897 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: ME6S [ME6S], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Пробовал подключать микрофон к ноутбуку, телефону - микрофон работал. На ноутбуке стоит так же арч, как и на компе

Что стоит на компе: pulseaudio или pipewire-pulse? А на ноутбуке? Попробуйте загрузится с Live USB на компьютере с какого-нибудь арчеподобного дистра, например EndeavourOS и посмотреть, работает ли там микрофон. Можно и другие дистрибутивы попробовать, чтобы определить, является ли это проблемой дистрибутива или всё-таки железа.

spal
()
Ответ на: комментарий от titlo10

Ну тогда проблема скорее всего в звуковом чипсете. Остаётся только гуглить «ALC897 microphone linux fix» или подключить внешнюю звуковуху чтобы проверить наверняка. По самому микрофону инфы тоже не густо, поэтому навряд ли тут кто-нибудь сможет что-то подсказать.

spal
()
Ответ на: комментарий от spal

Остаётся только гуглить «ALC897

Встроенная звуковая карта тут ни при чём. Это же USB-микрофон, он определяется как отдельная звуковая карта.

@titlo10, в alsamixer карту правильно выбирал? Нажми F6. А чтобы управлять устройствами захвата, надо нажать F4.

Если в alsamixer всё ок, то попробуй записать через arecord:

$ arecord -D plughw:ME6S -f cd record.wav

Но для этого сперва надо будет убить pipwire. Попробуй через systemctl stop pipewire.service.

stabilitron
()
Ответ на: комментарий от stabilitron

Вот так выглядит alsamixer: https://imgur.com/jNz0u7I Пока пытаюсь разобраться, как выключить pipewire, потому что он пишет что, такого сервиса нет

❯ sudo systemctl stop pipewire.service
Failed to stop pipewire.service: Unit pipewire.service not loaded.
❯ sudo systemctl status pipewire
Unit pipewire.service could not be found.
titlo10
() автор топика
Ответ на: комментарий от stabilitron

Получилось отключить pipewire, с помощью этих трёх команд:

systemctl --user stop pipewire.socket
systemctl --user stop pipewire-pulse.service
systemctl --user stop pipewire-pulse.socket

Но при вводе этой команды

$ arecord -D plughw:ME6S -f cd record.wav

все равно не получается записать, пишет:

overrun!!! (at least 2796606.014 ms long)
overrun!!! (at least 2796606.024 ms long)
overrun!!! (at least 2796606.033 ms long)
overrun!!! (at least 2796606.052 ms long)
overrun!!! (at least 2796606.061 ms long)
overrun!!! (at least 2796606.071 ms long)
overrun!!! (at least 2796606.081 ms long)
overrun!!! (at least 2796606.091 ms long)
titlo10
() автор топика
Ответ на: комментарий от titlo10

systemctl --user

Да, что-то я сразу не сообразил, что оно от юзера запускается.

overrun!!! (at least 2796606.014 ms long)

Не может, видимо, получить данные с карточки. А совсем нисколечки не записывает? В файле record.wav пусто? В dmesg никаких сообщений не появляется?

Не знаю даже, что посоветовать :( CPU не сильно загружен? Попробуй ещё взять USB-шнур покороче.

stabilitron
()

cannot submit urb 0, error -28: not enough bandwidth

Вот ещё что пишут, про ошибку ENOSPC:

This request would overcommit the usb bandwidth reserved for periodic transfers (interrupt, isochronous).

Это может означать загруженность USB-хаба. Пробовал отключить какие-то из USB-устройств? Камера, вероятно, может захватывать большую полосу.

stabilitron
()
Ответ на: комментарий от stabilitron

пробовал даже отключать клавиатуру с мышкой и оставлять чисто микрофон, что касается файла record.wav - он пустой да. При записи в dmesg спамится эта строчка

[ 4368.093853] usb 1-1.1: cannot submit urb 0, error -28: not enough bandwidth
titlo10
() автор топика
Ответ на: комментарий от titlo10

Возможно, что какой-то баг, либо аппаратный, либо в ядре.

Попробуй в биосе что-нибудь попереключать, касаемо USB. У модуля usbcore есть ещё какой-то интересный параметр, попробуй его установить в 1: usbcore.old_scheme_first=1. Это надо дописать к параметрам загрузки ядра, в загрузчике. Понятия не имею, если честно, что означает данный параметр. В доке написано: «Start with the old device initialization scheme».

А на других операционках микрофон работает? Я имею в виду не другой дистр Линукса, а Виндовс, например, или FreeBSD или Darwin, может быть. Можно попробовать версию ядра Линукса постарше.

На другом компьютере проверь, с другой материнкой. Если на телике есть Андроид, то можно и на нём попробовать, думаю.

stabilitron
()

пробуй тыкать на динамик и прочее через pavucontrol, у меня такое было только на динамиках звук отвалился после того как в плеере mpv звук отключал..

anonymous
()
Ответ на: комментарий от stabilitron

Поставил только что параметр ядра, но ничего не поменялось. Микрофон так же не работает. Что касаемо винды, на винде он работает. Как писал в посте на ноуте он работает (ноут на арче). А на компе работает только на винде. В биосе тыкал уже все что связано с usb, так же результата не дало.

titlo10
() автор топика
Ответ на: комментарий от titlo10

А на компе работает только на винде.

Если так, то это баг ядра, скорее всего. Можешь попытаться зарепортить здесь: https://bugzilla.kernel.org/buglist.cgi?component=Sound%28ALSA%29 Там спецы может чего подскажут.

Старые ядра попробуй, какие-нибудь совсем древние дистры поищи, может там заработает. Устанавливать не обязательно, можно грузиться прям с ISO, либо ещё народ как-то прокидывает в Qemu USB-девайсы — в этом случае даже перезагружаться не надо будет.

stabilitron
()