Organelle - linux upgrade project

Ok, I will have a look at it.

I’m a C/C++ programmer so I will do it that way rather then using python. There is a lib wrapper around the dbus network manager interface that I can use: https://developer.gnome.org/libnm-glib/stable/

well yeah it is a cross compiling build system :wink:

actually, Im hoping we don’t have to mount the organelle filesystem…
you can extend the build process to ‘fix the image’ even before the final image is built.
from what ive seen, it not only mounts the filesystem but actually runs an arm emulation, such that you can run commands ‘on the image’ … this is how you can do things like set the root password.
(I checked this out for something else, so I need to go look for the details again)

but yeah, my general idea is to get the build process to download Organelle_UI (perhaps tagged build) , build it and install it… ideally the makefile will produce a debian package, that way future updates would be done properly via apt tools (albeit the user wont see this, but I’ll feel its nice and tidy )

Im trying to finish up something else at the moment (organelle related :wink: ) , once thats done im going to return to this.

yeah, netctl feels like the way forward… it’d also be cool to get the Access Point working.
(one thing… it will need to be optional to bring up the WiFi interface, given in a performance situation this is probably not wanted… though admittedly most are using wifi dongles, so perhaps not a real issue)

if you have changes you want, feel free to send me a pull request.

There is an issue with the WIFI and INFO screens on the build, this is to do with pyliblo not being installed.

I know nothing about python having steadfastly managed to have nothing to do with it for years but managed to get it working by installing crap loads of stuff. I’m guessing there is an easier way for someone that knows what they are doing but I had to install:

python-dev
liblo-dev

and then pip install:

setuptools
wheel
pgen
cython
pyliblo

yeah this is mostly part of the os 3 upgrade script , which I’ll migrate to Debian to be part of base install

Ah ok got you. When you get it migrated tell me and I will do a new build to test it out…

1 Like

Hello folks. I hope you don’t mind me resurrecting this thread to mention something I hacked together today: a very basic custom Linux OS for Organelle built with Buildroot.

Again, interesting to very few people, but nice to know we can run anything we want on this cool open device :sunglasses:

The Buildroot branch is here with a few notes in the README: https://gitlab.com/samthursfield/organelle-ports/-/tree/organelle-ports/. There’s nothing special going on - the mx6cubox_defconfig works more or less as-is, just needs some different kernel arguments.

I also noticed that HDMI doesn’t work if the cable is connected when powering on the device. But it works if I connect the HDMI once device is powered on. I don’t know why.

Enjoy!

edit: to clarify, it’s for the Organelle 1, that’s the only kind I have :slight_smile:

2 Likes

Is this for the Organelle-1 or the M?

Cool project!

Edit: I read, hehe! Very cool! Will try it out on my OG

Nice, Have you added all the oled + input scripts + puredata?
I guess with a custom linux you could bring the latency of the organelle super low?. A colleague of mine also put together an Audio Os for raspi with a ridiculously low latency and other goodies for audio…

interesting!

I echo @Servandob comment, about what status is this at?
as far as I could tell (by config, not installed it yet!) , it doesnt have puredata or mother installed or the various scipts.

also I should point out, this would very likely be incompatible with any packages that have been released for the Organelle-1, this is because they are based on a particular arch linux version, and install via apt.
thats not ‘bad’, as the nice thing about a fresh build (and why I did it with armbian, see above) is that many of this packages could be installed with newer versions.

however… note that buildroot system are NOT distributions, so you cannot ‘just’ install via apt/dpkg, you’ll have to build anything ‘extra’ (e.g. supercollider) yourself (or get it bundled into buildroot, and get a new release)

@Servandob - low latency, usually this is just things like ensuring the performance scheduler is used (already done on organelle) - this is the 90% win, other things like real time kernal and other tinkering of kernal parameters I found have marginal (if any) proveable benefits. (*)
of course, you can lower the latency on the Organelle-1 by lowing the audio buffer of pure data - but you’ll get performance issues.
(of course, the above all ignores hardware alterations that can give rPI better audio performance)


( * ) I did a ton of testing of this when playing with running Norns on a rPI… I found excluding the performance scheduler… the other recommended kernal parameters and real time kernal extensions made very little difference in real world scenarios (i.e running audio applications)

I’ll admit I was pretty surprised… but I guess, you could say that the kernel is pretty well optimised already for most use-cases.
the only real concesssion thats made is power management (incl heat), where they assume activity is ‘bursty’ … which is not true for music appllications, where constant throughput is the norm.

btw: above is not intended as critcism… or to invalidate buildroot.

in fact the opposite, I think having a buildroot is really cool.
it enables us to easily build images that are highly tailoured to our needs, removing things that WE do not require - this means potentially slightly lower cpu loads, less memory utilisation and quicker boot times.

the other advantage is as stated earlier in the thread (re armbian), the arch linux on the Organelle-1 is EOL, and it cannot easily be upgraded… this meant I was unable to install some software due to it being dependent on newer versions of other (already installer) libraries.
building a fresh image, be it armbian, build root… removes that issue!

BUT its the trade off of ‘general purpose’ vs specific focus.
if you start installing everything, adding networking/wifi … etc etc , you may be quickly back to where you started.

1 Like

Here the link from the Os I mentioned before: GitHub - DatanoiseTV/AudioOSv2-buildroot

1 Like

Hey, thanks for all the comments :slight_smile:

As you noticed, it’s minimal and I don’t plan to try and re-create the stock Organelle 1 firmware, I will leave that in the capable hands of Critter and Guitari.

This was actually done on a whim, I had to test a few things on ARM and thought… this could be an excuse to dig deeper into the Organelle!

I am going to try and get the mother program running. I have it built but so far it segfaults at Connecting to serial... so something is missing somewhere. Beyond that, I will probably leave it. It’s a good base if you want to turn your Organelle into a completely different custom thing in an Organelle shaped box :slight_smile:

As @thetechnobear points out, Buildroot is not a distro so while it’s good for ‘all in one’ appliance builds with your own custom software, it’s not a good ‘default’ OS as it requires some effort to build new software packages for the device. Armbian gives more flexibility there as you can pull binary packages straight from Debian.

1 Like

the SOM connects to another MCU (stm32f4?) over a serial link, the MCU is talking to pots, endoder and lcd.

so you’d need something like mother, if you want to interface to the pots/encoder/lcd.
(unlike the Organelle-M where the CM3 is directly connected to pots/encoder/lcd)

I must admit its been a while, so Id have to look at the mother code to see why its not connecting… at a wild guess its something to do with uart/gpio setup.
( I dont remember doing anything specific for this on armbian !? then again, it was a couple of years ago, so perhaps I did :wink: )

btw: you do need to run mother as root… to ensure hardware access, but I guess, this is the norm on a buildroot system

totally agree, its fantastic for this!

… which I think is particularly enticing for those of us that perhaps added an Organelle-M , so the Organelle-1, could be used for a more ‘custom role’ … well thats my thinking at least !

I accidentally spent some more time on this, and started a new thread: Organelle 1 - custom OS using Buildroot

Changes since I last posted include…

  • Fix the crash in mother (it was this?!)
  • Add some USB network drivers, and enough software for you to connect to Wifi and login via SSH.
  • Add Python
  • Add an organelle user (password: music)
1 Like