cross-compile getting started



  • can someone help me out with cross-compile guide?
    i have followed the guide and read some topics here about it, and not sure if I even want to flash it now (someone bricked onion and the other guy had no default wifi setup and web interface or something like that)
    I want to compile libasound2-dev for omega and install sound drivers, i've tried installing kmod-usb-audio but i didn't get any sound devices after that.

    Currently I have selected kmod-usb-audio and other audio modules, and not sure if i flash it will cause the same problem like to that other guy who lost wifi support and web interface.

    What do you advise?

    Also an example how to cross-compile some package ("for dummies") would be nice



  • Hi @Igor-Neuhold, after compiling, you don't necessarily have to reflash the entire Omega. If you browse into the bin/ar71xx/packages directory, you can actually find the .ipk packages that you can then download to your Omega and install via opkg. This allows you to add features to your current image without reflashing the entire firmware.

    Please let me know if you have any questions.



  • 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 :D
    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 :+1:



  • 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 Onion Community was lost, please wait while we try to reconnect.