• Резюме
  • Блог
  • Контакты
    • Facebook
    • LinkedIn
    • GitHub
    • Twitter
    • Google+
    • LiveJournal
    • VK
  • EnglishEnglish

Анамнез

чокнутого разработчика с комплексом божественной неполноценности

Уровень записи с микрофона stac9228 в Ubuntu на Dell XPS M1530

26.10.2008 by Sergey Vasilyev Leave a Comment
  • Ubuntu 8.10-almost-release (Intrepid Ibex).
  • Dell XPS M1530.
  • HDA-intel, STAC9228.

Проблема: встроенный микрофон записывает очень слабо, даже когда все контролы и миксеры вкручены по максимуму. При этом MicBoost отсутствует как класс.

Решение: использовать софтварный аналог boost’а.

Вводная ссылка: http://www.terdmonk.com/Using+ALSA’s+softvol+plugin+and+max_dB

Делаем микрофон рабочим

Для начала, надо чтобы микрофон вообще хотя бы работал. Для этого дописываем в /etc/modprobe.d/alsa-base:

options snd-hda-intel model=genric

Ещё есть модели auto,ref,dell-3stack, но genric достаточно общая и включает всё что работает. Вроде как это работало и с dell-3stack.

Перезагружаемся.

Заходим в гном. Запускаем:

gnome-volume-control

Жмём «Параметры», включаем всё что видно. Жмём ОК.

Теперь на закладке запись выкручиваем в максимум уровни Capture, Digital, Mux. На закладке «Параметры» ставим первый «Input Source» в «Front Mic». Теперь, для работы с внешним подключемым микрофоном ставим Digital Input Source в Analog Inputs, а для работы со встроенным – Digital Mic 1. Нас интересует встроенный (то есть Digital Mic 1).

Запускаем

gnome-sound-properties

И в поле «Запись звука» выставляем HDA Intel STAC92xx (ALSA). Да, именно прямую ссылку на карту в аналоговом режиме, а не на алса как таковую. Для теста. Потом, когда всё заработает, можно и надстраивать что пожелается. Жмём ОК.

Запускаем:

gnome-sound-recorder

Поле с выбором источника должно пропасть, если оно было; теперь источник один и выбирать незачем. Пробуем записать пару-другую секунд, причём надо обязательно посмотреть на уровень: он должен прыгать. Желательно постучать по микрофону (находится возле вебкамеры, две мелкие дырочки по обе стороны). Проигрываем что записалось; если не слышно – выкручиваем все громкости на максимум. Хоть что-то записаться да должно. Иначе ещё долго мучимся чтобы оно вообще работало.

Создаём мик-бустер

Теперь у нас есть встроенный микрофон, он работает, но очень слабо. Теперь самое главное. Создаём псевдо-микрофон.

В файле /etc/asound.conf (вероятно, можно и ~/.asoundrc) пишем:

pcm.pseudobooster {
    type asym
    playback.pcm {
        type softvol
        slave.pcm "hw:0,0"
        control.name "Master"
        control.card 0
    }
    capture.pcm {
        type softvol
        slave.pcm "hw:0,0"
        control.name "MicPseudo"
        control.card 0
        max_dB 50.0
    }
}
#pcm.pseudobooster {
#    type softvol
#    slave.pcm "hw:0,0"
#    control.name "Mic2 PseudoBoost"
#    control.card 0
#    max_dB 50.0
#}
ctl.pseudobooster {
    type hw
    card 0
}

Закомментированный кусок — это попытка сделать только микрофон. Обернулась тем, что буст применился и к проигрыванию звука. Просто чтобы помнить, что так делать не надо. Ключевой момент здесь — max_dB. Он расширяет границы миксера. Сохраняем. Теперь надо сделать так, чтобы ALSA учла эти новые миксеры. Тут я не уловил как их ввести в строй. amixer их не видит даже после ребута. Но если запустить skype, то он там что-то обновляет, а эти миксеры становятся видны по

amixer | grep -i pseudo

либо

amixer -c Intel | grep -i pseudo

Желательно найти нормальный способ, которым можно обновить ALSA (это не alsactl names, не amixer list, не amixer info, не arecord -l; вообще фиг знает как).

Когда этот псевдо-миксер появился к выводе, вызываем

gnome-volume-control

В «параметрах» (кнопка) включаем все миксеры, и на закладке «Воспроизведение» (да, увы, не «Запись») выкручиваем этот миксер на 75-100%.

Настраиваем скайп на устройство pseudobooster (появится в списке аудио-устройств). Пробуем тестовый звук (должен быть). Звоним в echo123. Должно работать.

Включаем по умолчанию

Теперь надо сделать чтобы и все прочие приложения тоже обращались к нашему псевдо-устройству.

asound.conf OR ~/.asoundrc:

pcm.!default {
    type plug
    slave.pcm "pseudobooster"
}
ctl.!default {
    type hw
    card 0
}

Далее,

gnome-sound-properties

Включаем «Запись звука» на «ALSA bla-bla-bla»; воспроизведение тоже можно на него поставить.

То есть теперь у нас будет цепочка

  • Приложение (например, gnome-sound-recorder)
  • ALSA library
  • берёт pcm.default
  • попадает на pcm.pseudobooster
  • который берёт из железячного ALSA driver с прогоном по softvol, который теперь в amixer’ах

С тем же успехом можно зарулить через pulseaudio, а не через ALSA library. Тут главное не путать что есть железячный слой ALSA, а есть универсализирующая библиотека ALSA, и это две разные вещи.

В gnome-sound-recorder, соответственно, в поле источника выбрать Digital (это наш «default»), или явно «pseudobooster».

Ну и прочие удобства навести. Ключевой момент, надеюсь, понятен.

Posted in: Инструкции Tagged: dell, ex-wiki, linux, ubuntu, xps

Рубрики

Инструкции Лайфхаки Про жизнь Работа и карьера Разработка Слово дня Управление

Метки

asus dell devconf driver ex-wiki gettaxi hibernate hiring hunting job kernel linux mbr network networkmanager notebook router samba sudo synaptics touchpad uber uberx ubuntu webcam wifi wiki windows wl-500g xorg xps авто автомобиль деньги каршеринг поездки пробки работа самурай такси финансы экономия

Copyright © 2025 Анамнез.

Omega WordPress Theme by ThemeHall