audiohobby.ru audiohobby.ru

Исправление ошибки i2s в moOdeAudio

Осенью прошлого года начал делать ЦАП на ES9039Q2M и для него мне понадобился в том источник I2S. В качестве железа выбор пал на Raspberry Pi zero 2W, а программная часть на moOdeAudio. Если с разработкой программной и аппаратной части проблем не возникло, то с moOdeAudio столкнулся с гонкой процессов при загрузке ядра. Выглядело это так: отключаешь RPI по питанию, и через несколько таких выключений ядро теряло драйвер i2s и переключалось на hdmi, а из файла config.txt пропадала строка dtoverlay=i2s-dac.

На просторах интернета нашел, что если dtoverlay=i2s-dac привести к виду dtoverlay=i2s-dac,poll_ms=5000 то ломаться система больше не будет. И, действительно, количество удачных холодных перезапусков увеличилось кратно, но всё равно иногда ядро не подгружало драйвер. Тогда я обратился за помощью к Тиму Кёртису — разработчику moOdeAudio и Филу Элвеллу — разработчику ядра. Если кратко, то они ничем не помогли, а лишь перевели стрелки друг на друга.

Не долго думая, вооружившись ИИ удалось сделать скрипт, который исправляет этот недостаток. Единственное, после сбоя единожды возрастет время загрузки, на время загрузки скрипта, уменьшать данное время не рекомендуется, так как оно подобрано эмпирическим путём, и если сделать его меньше, то moOdeAudio снова затрет файл config.txt. Для исправления этого недостатка вам потребуется доступ по SSH и всё. Скрипт и инструкция в прикрепленном текстовом файле.

Успехов!

Вложение:
+10
AII
Нет комментариев. Ваш будет первым!