We have upgraded the community system as part of the upgrade a password reset is required for all users before login in.

Most recent stable build with i2s ??



  • Hello everyone - looking forward(hopefully!) to using omega2+ in several upcoming projects.

    first is audio. I saw this in the Onion doc/info:
    https://onion.io/2bt-omega-i2s-audio/
    ("...the very latest release of the Omega OS has support for I2S audio devices")

    However latest stable, and latest bleeding edge don't seem to have i2s.
    Tried it but no i2s /alsa sound card.

    so ... what is the most recent stable firmware with working i2s?

    I see some stuff about hacking together old firmware that might make it work
    but this ( and USB audio) are things I want to avoid for now.

    I notice i2s seems to be suspiciously absent from the documentation ..

    Thanks.



  • @Ian-Steele edit your /etc/opkg/distfeeds.conf and uncomment these lines:

    src/gz omega2_core http://repo.onioniot.com/omega2/packages/core
    src/gz omega2_base http://repo.onioniot.com/omega2/packages/base
    src/gz omega2_packages http://repo.onioniot.com/omega2/packages/packages

    Then run opkg update.

    Now you can follow the docs:

    opkg install alsa-utils mpg123



  • @crispyoz
    Thanks! I will give this a try.



  • Unfortunately the lines were uncommented, and it still does not work.
    Something is there, but I have no idea what to try next.
    ALSA says no sound card.

    dimes and asmod:
    11.116637] ralink-i2s 10000a00.i2s: mclk 480KHz
    [ 11.124730] max98090 0-0010: Failed to reset codec: -6
    [ 11.130129] max98090 0-0010: Failed to read device revision: -1
    [ 11.136170] max98090 0-0010: ASoC: failed to probe component -1
    [ 11.142822] asoc-simple-card sound: ASoC: failed to instantiate card -1
    [ 11.149711] asoc-simple-card: probe of sound failed with error -1

    snd 40910 12 snd_usb_audio,snd_usbmidi_lib,snd_soc_wm8960,snd_soc_core,snd_compress,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_rawmidi,snd_seq_device,snd_hwdep
    snd_compress 6303 0
    snd_hwdep 4350 1 snd_usb_audio
    snd_mixer_oss 12761 1 snd_pcm_oss
    snd_pcm 62986 7 snd_usb_audio,snd_soc_ralink_i2s,snd_soc_wm8960,snd_soc_max98090,snd_soc_core,snd_pcm_dmaengine,snd_pcm_oss
    snd_pcm_dmaengine 2779 1 snd_soc_core
    snd_pcm_oss 35825 0
    snd_rawmidi 15402 1 snd_usbmidi_lib
    snd_seq_device 2191 1 snd_rawmidi
    snd_soc_core 97404 4 snd_soc_simple_card,snd_soc_ralink_i2s,snd_soc_wm8960,snd_soc_max98090
    snd_soc_max98090 47860 0
    snd_soc_ralink_i2s 6064 0
    snd_soc_simple_card 5216 0
    snd_soc_wm8960 22720 0
    snd_timer 15630 1 snd_pcm
    snd_usb_audio 104246 0
    snd_usbmidi_lib 15761 1 snd_usb_audio
    soundcore 3836 1 snd



  • @Ian-Steele have you installed the i2c kernel module?

    opkg install kmod-i2c-core



  • @crispyoz said in Most recent stable build with i2s ??:

    opkg install kmod-i2c-core

    Yes that is there:
    Package kmod-i2c-core (4.4.74-1) installed in root is up to date.



  • Do not confuse I2S with I2C they are very different. @Ian-Steele which I2S device are you using for Audio?



  • @UFD thanks . Yes, sorry of course it should be i2s not i2c (although some codecs need i2c for control) I am using a PCM 1502A DAC which I use a lot with other boards. Also have the MAX98367A mention in the article on i2s audio.


  • Banned

    This post is deleted!


  • Hey @Ian-Steele , Im assuming you mean PCM5102A and the good news is that I have managed to get the PCM5102A working on the Onion.

    The bad news is that you will have to build the onion image from source. This is because I2S "codecs" like the PCM5102A need to be specifically built into the kernel at compilation. You can see the list of supported "codec" devices here kernel sound

    I guess its not feasible for the Omega Guys to include them all as it would significantly increase the image size. (However @Lazar-Demin should consider adding the 2 main ones found in the hobbiest space i.e MAX98367A and PCM5102A).

    The Omega Onion Github repo has instructions on building an image from source. You will need to manually modify the kernel source .config to build the codec module for the PCM5102A and you will need to modify the Onion Device Tree file to enable I2S and support the PCM5102 and lastly you will have to update the ramips modules file to ensure the Onion loads this module on startup.

    Now that I'm reading the high level steps, I guess it is a little involved and Im not sure of your familiarity with source building, but drop me a message if you get stuck or need clarity. happy to work through it slowly with you.

    Regards,
    UFD



  • @UFD If you are building from source and need to configure the kernel you shouldn't be editing .config just run make kernel_menuconfig in order to modify the kernel configuration and modules. Device Drivers, Sound card support.



  • @crispyoz Thanks, I was not aware of that option. It is far more convenient.



  • @UFD said in Most recent stable build with i2s ??:

    (However @Lazar-Demin should consider adding the 2 main ones found in the hobbiest space i.e MAX98367A and PCM5102A).

    Thanks everyone for the help/info. Thats what was confusing as I thought these were
    included. Anyway, last time I did some source building a few years ago It was fairly slow and painful LOL . I guess a dynamically loaded module might be the way to go.
    I'll let you know if I decide to try this.



  • @Ian-Steele Building used to be slow, taking hours sometimes. But these days I can build the curent source pool in a few minutes. My best tip is DON'T USE DOCKER!! , just install on Ubuntu 18.x. Configure what you want and then start the build and go have a coffee. Once you have completed the first build, future updates and builds are easy and complete quickly. Once you have mastered the build system it is quite trivial to add/remove features and create your customised firmware.



  • @crispyoz
    Spent the entire day doing this but never really got a build system
    going. Spent ages correcting endless errors and various problems.

    I won't waste any more time ( or anyone elses) on this.
    I'm not going to use Omega for this project.

    Thanks to all for trying to help.



  • I also tried very hard to get I2S sound working on Omega2, but could not. So I gave up and moved my project to Raspberry Pi Zero.



  • Hi @Ian-Steele,

    Sorry that you did not come right.

    I've compiled a build for you tonight based on repo as of today. Ive added in generic support for I2S playback and record (version 0.3.2 b233).

    I2S_Audio_Build

    Let me know how it goes.

    Cheers,
    UFD



Looks like your connection to Community was lost, please wait while we try to reconnect.