LINUX.ORG.RU

Сообщения scelikr

 

Использование I2S на Raspberry Pi 5 (проблема с device tree)

Всем доброго времени суток! Стоит задача - подключить к Raspberry Pi 5 микрофоны по интерфейсу I2S в количестве 6 штук. На сколько я понимаю задача реальная, Rpi5 имеет на борту контроллер GPIO RP1, в доке на который есть таблица GPIO function selection:

GPIOfunction a2
GPIO 18I2S0_SCLK
GPIO 19I2S0_WS
GPIO 20I2S0_SDI[0]
GPIO 22I2S0_SDI[1]
GPIO 24I2S0_SDI[2]
GPIO 26I2S0_SDI[3]

Также инфа из доки: I2S0 is a clock-producer (master) with up to 4 bidirectional channels. Each channel’s I2S data receive pin is connected to sdi[n].

Пруфы тут

Я подключил микрофоны как правый/левый каналы на пины соответствующие I2S0_SDI[0], I2S0_SDI[1], I2S0_SDI[2]. Написал оверлей .dts, скомпилировал в .dtbo и прописал в config.txt. Вот оверлей:

/dts-v1/;
/plugin/;

/ {
    compatible = "brcm,bcm2712";

    fragment@0 {
        target = <&i2s>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@1 {
        target-path = "/";
        __overlay__ {
            dmic_codec: dmic-codec {
                #sound-dai-cells = <0>;
                compatible = "dmic-codec";
                status = "okay";
            };
        };
    };

    fragment@2 {
        target = <&sound>;
        slave_overlay: __overlay__ {
                compatible = "simple-audio-card";
                simple-audio-card,format = "i2s";
                simple-audio-card,name = "soundcard";
                simple-audio-card,bitclock-slave = <&dailink0_slave>;
                simple-audio-card,frame-slave = <&dailink0_slave>;
                status = "okay";
                simple-audio-card,cpu {
                    sound-dai = <&i2s>;
                    dai-tdm-slot-num   = <2>;
                    dai-tdm-slot-width = <32>;
                };
                dailink0_slave: simple-audio-card,codec {
                    sound-dai = <&dmic_codec>;
                };
        };
    };

    __overrides__ {
        alsaname = <&slave_overlay>,"simple-audio-card,name";
        compatible = <&dmic_codec>,"compatible";
    };
};

Проблема в том, что работает только пара микрофонов, подключенных к I2S0_SDI[0]. Остальные пины даже не назначены на альтернативную функцию:

pi@raspberrypi:~ $ pinctrl
...
18: a2    pn | lo // GPIO18 = I2S0_SCLK
19: a2    pn | lo // GPIO19 = I2S0_WS
20: a2    pn | hi // GPIO20 = I2S0_SDI0
21: a2    pn | lo // GPIO21 = I2S0_SDO0
22: no    pd | -- // GPIO22 = none
23: no    pd | -- // GPIO23 = none
24: no    pd | -- // GPIO24 = none
...

Помогите, пожалуйста, разобраться с проблемой. Многое уже перепробовал, не знаю как решить это

Заранее спасибо!

 , , ,

scelikr
()

Отсутсвует звук

Всем доброго времени суток! Установил Ubuntu 22.04 на Infinix INBOOK x3. Сначала звук был, потом пропал. Причем ползунок регулировки громкости есть, но звука из динамиков нет. В Windows работает. Помогите, пожалуйста!

‘lspci | grep Audio 00:1f.3 Audio device: Intel Corporation Alder Lake PCH-P High Definition Audio Controller (rev 01)’

‘cat /proc/asound/cards 0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0x6001148000 irq 153’

 ,

scelikr
()

Автоматическое монтирование не работает через udev (Debian)

Всем добрый день! Есть цель - чтобы при подключении жесткого диска к Intel nuc с Debian он автоматически монтировался в нужную папку. Написал простенькое правило в udev:

ACTION=="add", KERNEL=="sd[a-z][0-9]", ENV{ID_FS_UUID}=="8482d1aa-1cd2-4ee4-ad52-21a2b72815c7", RUN+="/bin/mount /dev/%k /mnt/DATA"

Но при подключении диска он не монтируется :(

Из всего что есть в логе, касаемо этой ошибки - одна строчка:

янв 31 15:53:04 HomeServer (udev-worker)[1739]: sdb1: Process '/bin/mount /dev/sdb1 /mnt/DATA' failed with exit code 32.

При этом если из-под рута просто выполнить эту строчку, то все прекрасно и без ошибок монтируется:

/bin/mount /dev/sdb1 /mnt/DATA

Помогите, пожалуйста, найти мою ошибку

 , ,

scelikr
()

RSS подписка на новые темы