Введение #
Звуковая подсистема состоит из нескольких уровней:
Hardware — это физическое аудиоустройство: встроенный аудиокодек, HDMI-аудио, USB-звуковая карта, микрофонный вход, линейный выход и т.д.
Kernel Space — это драйверы Linux. Они знают, как работать с конкретным железом: какие регистры нужно включить, какие аудиомаршруты доступны, где находятся регуляторы громкости, переключатели и входы/выходы.
User Space — это пользовательские программы, которые обращаются к звуковой подсистеме через ALSA (Advanced Linux Sound Architecture). Например: alsamixer, amixer, aplay, arecord, PulseAudio или PipeWire.
В обычной работе пользователь взаимодействует не с драйвером напрямую, а с ALSA-устройствами и ALSA-микшером. Драйвер создает элементы управления, а alsamixer и amixer показывают их в удобном виде.
Как посмотреть доступные звуковые карты #
Список звуковых карт:
cat /proc/asound/cards
Список устройств воспроизведения:
aplay -l
Список устройств записи:
arecord -l
Более подробная информация о PCM-устройствах (Pulse-Code Modulation - устройство, через которое программа может воспроизводить или записывать звук):
cat /proc/asound/pcm
Как посмотреть элементы микшера #
Открыть интерактивный микшер:
alsamixer
Посмотреть полные имена ALSA controls:
amixer controls
Посмотреть текущие значения всех простых элементов микшера:
amixer scontents
Важно помнить, что имена в alsamixer могут быть короче, чем имена из amixer controls. ALSA разбирает имя элемента на несколько частей:
Master Playback Volume
│ │ └─ тип элемента: Volume
│ └────────── направление: Playback
└───────────────── основное имя: Master
Служебные слова помогают ALSA понять, что это за элемент:
Playback = относится к воспроизведению
Capture = относится к записи
Volume = регулятор громкости или усиления
Switch = переключатель включено/выключено
Route = выбор маршрута или источника сигнала
Поэтому Master Playback Volume в alsamixer может отображаться просто как Master. При этом ALSA все равно знает, что это элемент воспроизведения и что он управляет громкостью.
Похожий пример:
Line Out Playback Switch -> Line Out
MIC1 Capture Switch -> MIC1
MIC1 Boost Volume -> MIC1 Boost
Полные имена всегда можно посмотреть через:
amixer controls
Repka Pi 4 #
К СВЕДЕНИЮ
Обратите внимание, что в данном разделе мы рассматриваем управление звуком только через аудиокодек AC200, не затрагивая управление через sun9i-hdmi
На Repka Pi 4 используется аудиокодек AC200. В ALSA звуковая карта может отображаться как ac200-audio.
К СВЕДЕНИЮ
Официальный Datasheet на данный аудиокодек AC200 доступен по ссылке.
К СВЕДЕНИЮ
Исходный код драйвера находится по пути sound/soc/codecs/ac200.c в репозитории repka-os_kernel


Проверка устройства #
Проверить, что звуковая карта AC200 появилась в системе:
cat /proc/asound/cards
В результате выполнения команды вы увидите:
1 [ac200audio ]: simple-card - ac200-audio
ac200-audio
Проверить устройства воспроизведения:
aplay -l
Результат выполнения команды:
**** Список PLAYBACK устройств ****
карта 1: ac200audio [ac200-audio], устройство 0: 508f000.i2s-ac200-dai ac200-dai-0 [508f000.i2s-ac200-dai ac200-dai-0]
Подустройства: 1/1
Подустройство №0: subdevice #0
Проверить устройства записи:
arecord -l
Результат выполнения команды:
**** Список CAPTURE устройств ****
карта 1: ac200audio [ac200-audio], устройство 0: 508f000.i2s-ac200-dai ac200-dai-0 [508f000.i2s-ac200-dai ac200-dai-0]
Подустройства: 1/1
Подустройство №0: subdevice #0
Открыть микшер для карты AC200:
alsamixer
Если карт несколько, выберите ac200-audio через F6.

Общая схема AC200 #
Упрощенно в AC200 есть два основных направления:
Воспроизведение:
I2S -> DAC -> Output Mixer -> Line Out
Запись:
MIC1 / MIC2 -> Input Mixer -> ADC -> I2S
В alsamixer для этих путей есть три типа элементов:
Volume = громкость или усиление
Switch = включить или отключить часть пути
Route = выбрать маршрут сигнала
Воспроизведение звука #
Для вывода звука обычно участвуют такие элементы:
| Элемент | Что делает |
|---|---|
Master Playback Volume |
Общая громкость воспроизведения |
Line Out Playback Volume |
Громкость выхода Line Out |
Line Out Playback Switch |
Включает левый и правый каналы Line Out |
Line Out Source Playback Route |
Выбирает режим выхода: Stereo или Mono |
ADC Playback Volume |
Уровень сигнала ADC, который можно подмешать в путь воспроизведения |
ADC Playback Switch |
Подключает сигнал ADC к DAC mixer для воспроизведения/мониторинга |
DAC I2S Playback Volume |
Уровень сигнала из I2S в DAC mixer |
DAC I2S Playback Switch |
Подключает I2S/DAC-путь для воспроизведения |
DAC Playback Switch |
Подключает DAC к выходному микшеру |
DAC Reversed Playback Switch |
Подключает DAC к выходному микшеру с перестановкой левого и правого каналов |
MIC1 Playback Volume |
Уровень MIC1, который можно подмешать в выходной микшер |
MIC1 Playback Switch |
Подключает MIC1 к выходному микшеру |
MIC1 Boost Volume |
Дополнительное усиление MIC1 |
MIC2 Playback Volume |
Уровень MIC2, который можно подмешать в выходной микшер |
MIC2 Playback Switch |
Подключает MIC2 к выходному микшеру |
MIC2 Boost Volume |
Дополнительное усиление MIC2 |
Соответствие полных имен ALSA и коротких имен в alsamixer:
| Элемент | Элемент в alsamixer | Клавиши |
|---|---|---|
Master Playback Volume |
Master |
↑ / ↓ |
Line Out Playback Volume |
Line Out |
↑ / ↓ |
Line Out Playback Switch |
Line Out |
M |
Line Out Source Playback Route |
Line Out Source |
↑ / ↓ |
ADC Playback Volume |
ADC |
↑ / ↓ |
ADC Playback Switch |
ADC |
M |
DAC I2S Playback Volume |
DAC I2S |
↑ / ↓ |
DAC I2S Playback Switch |
DAC I2S |
M |
DAC Playback Switch |
DAC |
M |
DAC Reversed Playback Switch |
DAC Reversed |
M |
MIC1 Playback Volume |
MIC1 |
↑ / ↓ |
MIC1 Playback Switch |
MIC1 |
M |
MIC1 Boost Volume |
MIC1 Boost |
↑ / ↓ |
MIC2 Playback Volume |
MIC2 |
↑ / ↓ |
MIC2 Playback Switch |
MIC2 |
M |
MIC2 Boost Volume |
MIC2 Boost |
↑ / ↓ |

Запись с микрофона #
Для записи с микрофона обычно участвуют такие элементы:
| Элемент | Что делает |
|---|---|
Master Capture Volume |
Общая громкость захвата |
ADC Volume |
Усиление входного ADC |
MIC1 Boost Volume |
Дополнительное усиление MIC1 |
MIC2 Boost Volume |
Дополнительное усиление MIC2 |
MIC1 Capture Switch |
Подключает MIC1 к input mixer |
MIC2 Capture Switch |
Подключает MIC2 к input mixer |
I2S ADC Capture Volume |
Уровень сигнала ADC перед отправкой в I2S |
I2S ADC Capture Switch |
Подключает ADC/input mixer к I2S capture |
I2S DAC Capture Volume |
Уровень сигнала DAC, который можно отправить в I2S capture |
I2S DAC Capture Switch |
Подключает DAC к I2S capture |
Output Mixer Capture Switch |
Подключает output mixer к input mixer для захвата |
Output Mixer Reverse Capture Switch |
Подключает output mixer к input mixer для захвата с перестановкой левого и правого каналов |
Соответствие полных имен ALSA и коротких имен в alsamixer:
| Элемент | Элемент в alsamixer | Клавиши |
|---|---|---|
Master Capture Volume |
Master |
↑ / ↓ |
ADC Volume |
ADC |
↑ / ↓ |
I2S ADC Capture Volume |
I2S ADC |
↑ / ↓ |
I2S ADC Capture Switch |
I2S ADC |
Пробел |
I2S DAC Capture Volume |
I2S DAC |
↑ / ↓ |
I2S DAC Capture Switch |
I2S DAC |
Пробел |
MIC1 Capture Switch |
MIC1 |
Пробел |
MIC1 Boost Volume |
MIC1 Boost |
↑ / ↓ |
MIC2 Capture Switch |
MIC2 |
Пробел |
MIC2 Boost Volume |
MIC2 Boost |
↑ / ↓ |
Output Mixer Capture Switch |
Output Mixer |
Пробел |
Output Mixer Reverse Capture Switch |
Output Mixer Reverse |
Пробел |

После настройки можно проверить запись:
arecord -D hw:0,0 -f S16_LE -r 48000 -c 2 test.wav
И воспроизвести записанный файл:
aplay test.wav
Если AC200 не является картой 0, номер hw:0,0 нужно заменить на номер, который показывает arecord -l.