Всех приветствую, в данной статье рассмотрим, как починить работу 3,5 мм аудиоразъёма на семействе плат Orange Pi 5 в Armbian на ядре Vendor (ядро 6.1).
Причина проблемы
На ядрах, до версии 6.1.75 включительно, звук и микрофон через 3,5 мм разъём работали нормально. Но, начиная с версии ядра 6.1.84, разработчики Armbian поломали файл конфигурации аудиочипа ES8323 (который работает на драйвере ES8388) в ALSA для данных плат таким образом, что вывод как бы есть, система видит устройства, но вход и выход не работают, потому что они заглушены по умолчанию. Путём долгого поиска и использования нейросетей, решение таки нашлось.
Решение
Чтобы быть уверенным, что проблема касается именно того ядра, которое нам нужно, в консоль Armbian вбиваем следующее:
uname -r
В моём случаи, я получаю такой ответ:
6.1.115-vendor-rk35xx
Видим, что нужная версия ядра. Далее смотрим, под каким номером находиться данный аудиочип. Используя команду:
aplay -l
Смотрим, какие устройства есть на выходе:
**** Список PLAYBACK устройств ****карта 0: rockchipdp0 [rockchip-dp0], устройство 0: rockchip-dp0 spdif-hifi-0 [rockchip-dp0 spdif-hifi-0] Подустройства: 1/1 Подустройство №0: subdevice #0карта 1: rockchiphdmi0 [rockchip-hdmi0], устройство 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0] Подустройства: 1/1 Подустройство №0: subdevice #0карта 2: rockchiphdmi1 [rockchip-hdmi1], устройство 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0] Подустройства: 1/1 Подустройство №0: subdevice #0карта 4: rockchipes8388 [rockchip-es8388], устройство 0: dailink-multicodecs ES8323 HiFi-0 [dailink-multicodecs ES8323 HiFi-0] Подустройства: 1/1 Подустройство №0: subdevice #0
В моём случаи, он под номером 4. Теперь будем включать сам вывод на аудиоустройства, вводя следующее:
Включаем выходы OUT1 и OUT2:
amixer -c 4 cset numid=55 onamixer -c 4 cset numid=56 on
Включаем переключатель наушников:
amixer -c 4 cset numid=40 onamixer -c 4 cset numid=41 on
Включаем переключатель микрофона:
amixer -c 4 cset numid=42 onamixer -c 4 cset numid=39 on
После этого, проверяем, появился ли звук в наушниках. После этого применяем настройки, чтобы они сохранились после перезагрузки:
sudo alsactl store 4
В случаи, если настройки по какой-то причине после сохранения и перезагрузки сбросились (я лично с таким не сталкивался), придётся прописывать команды в файл rc.local, который находиться в папке /etc, чтобы они прописывались вместе с запуском системы.
Вот таким образом, я смог решить данную проблему.