Микрофон не работает на archlinux


9

контекст

Я работал archlinuxна своем ноутбуке в течение многих лет и никогда не нуждался в микрофоне. Сейчас мне это нужно, но я не могу найти способ правильно его настроить.

Я использую alsaи pulseadio.

Работая alsamixerкак пользователь у меня есть два датчика:

  ||      ||
Master  Capture

У меня обоих они включены и включены в разумные (~ 50%) значения.

Запуск alsamixerот имени root У меня есть несколько датчиков:

  ||        ||        ||      ||      ||       ||
Master  Headphones  Speaker  PCM  Microphone MIC Boot 

 ||      ||       ||        ||       ||
Beep  Loopback Internal  Internal  Capture

Если я включаю Loopbackкак root, я слышу микрофон обратно через динамики .

Если я явно выберу свою звуковую карту alsamixerкак пользователя, я получу те же команды, что и от имени пользователя root (и если я включу ее Loopbackздесь, я тоже услышу микрофон из динамиков). Я получаю следующее:

введите описание изображения здесь

(Справа находятся еще два Internalдатчика, Loopback(включить / отключить) и изменяемый Off-hook)

Тем не менее, независимо от того, что я делаю и насколько я вмешиваюсь в измерения с помощью alsa, мне так и не удается передать микрофон пользовательскому приложению. По сути, каждый раз, когда я запускаю, arecordя получаю следующий вывод:

$ arecord -vv -f dat /dev/null 
Recording WAVE '/dev/null' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 6755399441055744000
#+                                                 | 00%

aplayС другой стороны, работает отлично.


Моя звуковая карта ( lspci):

# lspci| grep -i audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)

Я посмотрел на arch wiki и попытался установить следующее /etc/modprobe.d/modprobe.conf(и перезагрузил машину):

options snd-hda-intel model=dell-m6-dmic

(Я не могу заставить микрофон отправлять данные в пользовательское приложение с этой конфигурацией или без нее.)

Мои текущие hdaмодули:

# lsmod |grep hda
snd_hda_codec_si3054    16384  1
snd_hda_codec_realtek    69632  1
snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
snd_hda_intel          32768  5
snd_hda_codec         106496  4 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_codec_generic,snd_hda_intel
snd_hda_core           61440  5 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep              16384  1 snd_hda_codec
snd_pcm                86016  4 snd_hda_codec_si3054,snd_hda_codec,snd_hda_intel,snd_hda_core
snd                    65536  18 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hwdep,snd_timer,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel

Для полноты, это мой pulseaudioконфиг (я не пробовал вмешиваться в него):

$ pulseaudio --dump-conf
### Read from configuration file: /etc/pulse/daemon.conf ###
daemonize = no
fail = yes
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 5
allow-module-loading = yes
allow-exit = yes
use-pid-file = yes
system-instance = no
local-server-type = user
cpu-limit = no
enable-shm = yes
flat-volumes = no
lock-memory = no
exit-idle-time = 20
scache-idle-time = 20
dl-search-path = /usr/lib/pulse-9.0/modules
default-script-file = /etc/pulse/default.pa
load-default-script-file = yes
log-target = 
log-level = notice
resample-method = auto
enable-remixing = yes
enable-lfe-remixing = no
lfe-crossover-freq = 0
default-sample-format = s16le
default-sample-rate = 44100
alternate-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 4
default-fragment-size-msec = 25
enable-deferred-volume = yes
deferred-volume-safety-margin-usec = 8000
deferred-volume-extra-delay-usec = 0
shm-size-bytes = 0
log-meta = no
log-time = no
log-backtrace = 0
rlimit-fsize = -1
rlimit-data = -1
rlimit-stack = -1
rlimit-core = -1
rlimit-rss = -1
rlimit-as = -1
rlimit-nproc = -1
rlimit-nofile = 256
rlimit-memlock = -1
rlimit-locks = -1
rlimit-sigpending = -1
rlimit-msgqueue = -1
rlimit-nice = 31
rlimit-rtprio = 9
rlimit-rttime = 200000

Согласно комментарию Фахима Митхи, я уверен, что у pulseaudio tmpfsнего есть правильные разрешения:

# ls -la /run/user/861213/pulse/
total 4
drwx------ 2 grochmal users  80 Jul  4 21:44 .
drwx------ 5 grochmal users 120 Jul  4 21:46 ..
srw-rw-rw- 1 grochmal users   0 Jul  4 21:44 native
-rw------- 1 grochmal users   4 Jul  4 21:44 pid

И pavucontrolбыл отключен. Я не знал, pavucontrolчто привело к проблеме в первую очередь:

введите описание изображения здесь


Вопрос

У меня нет идей. Я считаю, что Loopbackаудиоинтерфейс существует в пространстве ядра , поэтому моя проблема в том, что я не могу перенести данные микрофона в пространство пользователя . Тем не менее, я не уверен на 100% в этом.

Какие другие опции я могу предоставить snd-hda-intel(или другим модулям), которые могут иметь отношение к микрофону, который работает в интерфейсе обратной связи, но не распространяется на прикладной уровень?

Могу ли я сделать что-то не так pulseaudio? Но опять же, pulseaudioработали правильно (вместе с alsa) все это время, и я пользуюсь audacityдовольно часто.


Привет. Вы не хотите запускать alsamixer от имени пользователя root; вы испортите ваши разрешения. См. Unix.stackexchange.com/questions/265043 . Можете ли вы предоставить скриншот alsamixer, работающего от имени пользователя? Убедитесь, что вы выбрали свою звуковую карту.
Фахим Митха

Включите все и включите все до максимума alsamixer.
Фахим Митха

@FaheemMitha - Спасибо, я получаю все датчики, если явно выбрал звуковую карту alsamixer. На данный момент я добавил скриншот и подтвердил свои pulseaudioразрешения (я даже перезагрузил компьютер, чтобы убедиться, что мое вмешательство в качестве root не повлияло на что-либо). Теперь я пытаюсь играть больше с pulseaudio.
Grochmal

@FaheemMitha - все включается, даже Beep. Нет радости
Grochmal

1
@FaheemMitha - Хех, он был приглушен внутри pavucontrol. Это решает это. Мне действительно интересно, как это произошло, у меня есть другая машина, использующая точно такой же модуль Intel HDA, ту же ОС (с теми же обновлениями), ту же alsa и ту же pulseaudio; и там не было приглушено. До того, как ваш комментарий pavucontrolне был установлен ни на одной из двух машин (archlinux имеет pavucontrolотдельный пакет).
Grochmal

Ответы:


9

Исходя из переписки с постером (см. Комментарии), оказалось, что звуковая карта была заглушена внутри pavucontrol.


1
+1 Возникла такая же проблема, откройте pavucontrolи нажимайте стрелку вправо, пока не будет выделена вкладка «Устройства ввода», затем щелкните значок громкости (Mute Audio), который для меня был активирован по умолчанию.
Джастин Булл

Я, вероятно, должен добавить, что я использую GNOME 3, и только сейчас заметил, что в настройках звука есть отключение звука, которое также можно использовать (нет необходимости pavucontrol).
Джастин Булл

2

Я также столкнулся с проблемой, что мой микрофон не работает на Arch Linux. В моем случае в разделе «Устройства ввода» не отображается ни одно устройство pavucontrol(«Нет доступных устройств ввода»). Следуя совету от Arch Wiki, я исправил это:

  1. Запустите, arecord -lчтобы узнать идентификатор микрофона в hw:CARD,DEVICEнотации, например, если выход

**** List of CAPTURE Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog[ALC269VC Analog] Subdevices: 1/1 Subdevice #0: subdevice #0

Тогда идентификатор hw:0,0

  1. Добавьте строку load-module module-alsa-source device=hw:0,0в/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D перезапустить pulseaudio и активировать изменения.

Я оставлю это здесь на случай, если у кого-то возникнет та же проблема, что и у меня.


1

1.rm -rf ~ / .config / pulse

2.rm -rf / etc / pulse /

3. Вставьте USB-наушники в ноутбук

4.pacman -S pulseaudio pavucontrol

  1. Добавьте «load-module module-loopback latency_msec = 1» в /etc/pulse/default.pa

6.reboot

6.pavucontrol

ХОРОШО.


Это сработало. Я только следовал до 4-го шага и перезагружался. это чертовски сработало. большое спасибо
никто не

0

Эта ссылка разобрала меня: микрофон не обнаружен PulseAudio

Определите карту и номер устройства вашего микрофона:

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
In hw:CARD,DEVICE notation, you would specify the above device as hw:0,0.

Затем отредактируйте /etc/pulse/default.pa и вставьте строку загрузочного модуля, указав ваше устройство следующим образом:

load-module module-alsa-source device=hw:0,0
# the line above should be somewhere before the line below
.ifexists module-udev-detect.so

Наконец, перезапустите pulseaudio, чтобы применить новые настройки:

$ pulseaudio -k ; pulseaudio -D

Если все работает правильно, вы должны увидеть, как ваш микрофон показывается при запуске pavucontrol (на вкладке «Устройства ввода»).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.