For those of you who have been following our Github page, you might have noticed that in the past weeks we have been slowly but steadily adding several repositories.
Now all the pieces are there which allows you to fully customize Elk Audio OS images to your needs. The starting point would be the elkpi-yocto-layers repository which contains the repo tool manifest to automatically fetch all the other repositories and configure the Yocto build system.
Yocto has a somewhat steep learning curve but we prepared instructions to get you started on the first build. Be prepared that you will need a reasonably powerful machine (RAM, core count and a fast SSD will help a lot) in order to keep build times reasonable, otherwise expect to wait several hours for the first build. Hard drive space required is around 50 Gbytes, depending on image features.
It is possible to run this in Docker or VMs, or rent some cloud services (e.g. Amazon EC2 instances) if you donāt have a powerful Linux machine available.
Write us here for any help or request, we will be happy to guide you through the process.
The Elk development team
4 Likes
This is really cool, thanks for sharing all the pieces!
Iām currently using a mac M1 as my personal computer and I wanted to be able to use it for embedded linux development as well.
It is trivial to run linux VMs on M1 for aarch64 but the current x86 emulation/virtualisation options are still unusable for development.
Since you only offer you pre-built cross-toolchain for x86_64, Iām not able to use it. So now Iām trying to build it myself on a aarch64 linux VM. [Ubuntu 20.04 LTS]
Of course, it wouldnāt work out of the boxā¦ this is what I get when trying to build the toolchain with: bitbake -c populate_sdk elkpi-audio-os-image
ERROR: Nothing PROVIDES āsyslinux-nativeā (but /home/jrrossi/elk/layers/meta-elkpi/recipes-images/images/elkpi-audio-os-image.bb DEPENDS on or otherwise requires it)
syslinux-native was skipped: incompatible with host aarch64-linux (not in COMPATIBLE_HOST)
ERROR: Required build target āelkpi-audio-os-imageā has no buildable providers.
Missing or unbuildable dependency chain was: [āelkpi-audio-os-imageā, āsyslinux-nativeā]
Googling around, Iāve found out that syslinux-native
isnāt needed when building on aarch64
:
https://patchwork.openembedded.org/patch/90281/
https://www.yoctoproject.org/pipermail/yocto/2019-April/044779.html
Apparently there were some PRs regarding some changes to meta/classes/syslinux.bbclass
in order to remove the syslinux-native
when running on aarch64
.
I tried replaying some of those PRs, but no success.
If you could provide some help it would be amazing, Iām quite sure that building on aarch64
is becoming more and more popular, so it might be good to provide support for it as well.
Cheers!
HI @jrrossi,
unfortunately we donāt have M1 macs hanging around so it would be quite difficult to support.
As a workaround in the short-term, you might consider spinning up an instance in AWS / Azure etc.
Heads up to anyone else trying to build the OS: I get error in many recipes running bitbake from Ubuntu 20.10 (Ubuntu Studio), many seemingly related to GCC10, -fcommon:
To ensure your fixes are not overwritten, see:
https://wiki.yoctoproject.org/wiki/TipsAndTricks/Patching_the_source_for_a_recipe
Update: I still havenāt figured it out, I get the same errors for example for libtirpc for files that I have already patched and have not been overwritten. Any help would be really appreciated. I have tried the devtool instructions in the link above, but that seems to just clone libtirpc into a new workspace folder, which is not connected to the image. Iāve also tried to force rebuilding a recipe after making changes manually in place.