cross-compile getting started



  • so let's say i want to compile some package, i need alsa sound drivers, when i run madplay some.mp3 i get
    MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
    audio: /dev/dsp: No such device or address

    or to compile libasound2-dev or for start any other package, what's the process to compile step by step?
    teach me how to do this and i'll host or contribute all packages i compile šŸ™‚



  • @Igor-Neuhold For example, to compile kmod-usb-audio package, here's what you do:

    1. Setup the cross-compile environment as outlined in the wiki
    2. Use make menuconfig and select kmod-usb-audio, it is under Kernel Modules > Audio Support
    3. Exit out of menuconfig and save settings
    4. Run make to initiate the compilation process (First-time compile will take a while because it needs to build the toolchain, etc)
    5. Once the build process is completed, go into bin/ar71xx/packages. That's where all the compiled packages can be found. In the case of kmod-usb-audio, you should be able to find it under the base directory.
    6. To install the files you just need to download the .ipk file and install it on the Omega with opkg.


  • thanks, i'm compiling it now, do you have a repository where we can upload packages for omega or should i just upload it on my server and post a link?
    also how do you add package that is not listed in menuconfig? for example i would like to add alsa package, i found few on other openwrt repos but can't use them. Do i download source and if i do, where do i put it?



  • opkg install kmod-usb-audio_4.1.13-1_ar71xx.ipk
    Multiple packages (kmod-usb-audio and kmod-usb-audio) providing same name marked HOLD or PREFER. Using latest.
    Installing kmod-usb-audio (4.1.13-1) to root...
    Multiple packages (kmod-usb-core and kmod-usb-core) providing same name marked HOLD or PREFER. Using latest.
    Multiple packages (kmod-input-core and kmod-input-core) providing same name marked HOLD or PREFER. Using latest.
    Collected errors:

    • satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-audio:
    • kernel (= 4.1.13-1-f20acdb789387285e1d949db8d2fb118) * kernel (= 3.18.20-1-7bed08fa9c06eb8089e82c200340ec66) *
    • opkg_install_cmd: Cannot install package kmod-usb-audio.

    how do i set the right kernel? I have no idea why 4.1 is used



  • using --force-depends now throws this:
    Configuring kmod-usb-audio.
    failed to find a module named snd-usbmidi-lib
    failed to find a module named snd-usb-audio



  • Hi @Igor-Neuhold, you were probably using the development branch of OpenWRT. Can you try compiling with the stable/release branch of OpenWRT? The git repository is here: git://git.openwrt.org/15.05/openwrt.git.

    Please let me know if that works.



  • I had success with compiling the packages for omega.

    Here you can find kmod-sound-core_3.18.23-1_ar71xx.ipk and kmod-usb-audio_3.18.23-1_ar71xx.ipk.

    Install them with

    opkg --force-depends install kmod-sound-core
    opkg --force-depends install kmod-usb-audio



  • @Thomas-Jones I get this:
    Installing kmod-usb-audio (3.18.23-1) to root...
    Configuring kmod-usb-audio.
    failed to find dependency input-core
    failed to find dependency input-core
    failed to find dependency input-core
    4 modules could not be probed

    • snd
    • snd-rawmidi
    • snd-seq-device
    • snd-usbmidi-lib
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      failed to find dependency input-core
      8 modules could not be probed
    • snd
    • snd-hwdep
    • snd-pcm
    • snd-rawmidi
    • snd-seq-device
    • snd-timer
    • snd-usb-audio
    • snd-usbmidi-lib
      Collected errors:
    • satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-audio:
    • kernel (= 3.18.23-1-735bbd0a915906145eb1b3fec1a6ff8b) *

    did you have success with usb sound card audio? I mean, can you play sound with omega šŸ™‚



  • Hi,

    as I already wrote in this thread, yes I had success and I can hear music via usb audio device.



  • finally some hope šŸ˜„
    do you know why i get these errors or how to load these modules, can you also upload kmod-input-core?



  • I've uploaded kmod-input-core_3.18.23-1_ar71xx.ipk now in the same dropbox.

    Also I've added a small video (sorry for the poor quality), to see onion omega running squeezelite in autostart and playing music šŸ‘



  • Thomas you are my hero, i love you šŸ˜˜



  • Is it working now for you?



  • yes, and i have been struggling with this for days now, installed a bunch of crap and now i have to figure out how to clean it all up so i can run my node server with mp3 player, you have no idea how good it felt to hear the sound after days of googling, compiling, installing and removing modules.
    I just hope I'll be able to return the favour some day šŸ™‚



  • Great to hear, that I could help someone.

    Which node server do you want to use on the omega?



  • i'm writing my own lightweight server for audio streaming, currently i've made frontend client which decodes mp3 file and send buffer to server, now i'm trying to write that buffer to a file and stream it with madplay on omega. Some future plan is to add sd card or some other data storage so i can queue more files or save songs which finish streaming and add them to some playlist


Log in to reply
 

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