Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Decoupling Moode from the OS
#1
Are there any plans to decouple Moode Audio from the OS. I like the product, but I don't like the fact that I can't update the Raspberry Pi OS that ships with Moode Audio without potentially breaking Moode Audio.

I understand that I am not a Moode developer. I'm not making a demand here, or a feature request. Just curious if there are plans to make Moode Audio a repository instead it's own OS.
Reply
#2
(09-11-2021, 01:58 AM)apastuszak Wrote: Are there any plans to decouple Moode Audio from the OS. I like the product, but I don't like the fact that I can't update the Raspberry Pi OS that ships with Moode Audio without potentially breaking Moode Audio.

I understand that I am not a Moode developer. I'm not making a demand here, or a feature request. Just curious if there are plans to make Moode Audio a repository instead it's own OS.

I can't speak for the moOde developers, but I am a developer with decades of experience so I can speak in general terms about your request.  

You can't decouple" moOde from the OS because it relies on the OS, and not just for simple, asynchronous I/O.  moOde is very much dependent on timing, CPU loading, etc.  If you update something in the OS that moOde relies on, it can potentially "break" moOde.  You could even update something moOde does not directly rely on and find that the update is doing something harmful, such as causing excessive interrupt latency, that interferes with moOde.

What makes moOde so darned reliable is that it can be tested as a complete, integrated system.  What makes it so supportable is binary consistency; your v7.3.0 is the same as everyone else's v7.3.0.  If you report 'stuttering' playback, the developers don't have to go down the path of determining every OS component that you have updated, and then evaluating whether the update in question, alone or in combination with your other updates, could have lead to the problem.

Look at a Marantz NA6006, a commercial network audio player.  It's based on Linux, but Marantz doesn't support upgrading the Linux kernel and components separately from the Marantz device-specific application(s).  I can't speak for Marantz's engineers, but I strongly suspect it's for those same reasons.
Cheers,
  Miss Sissy Princess
Reply
#3
(09-11-2021, 01:58 AM)apastuszak Wrote: Are there any plans to decouple Moode Audio from the OS. I like the product, but I don't like the fact that I can't update the Raspberry Pi OS that ships with Moode Audio without potentially breaking Moode Audio.

I understand that I am not a Moode developer. I'm not making a demand here, or a feature request. Just curious if there are plans to make Moode Audio a repository instead it's own OS.

No plans to do that because there is no compelling reason to do so. Simply being annoyed by something generally does not make a good case for making a significant change. If there is a specific reason you need to bump the OS or kernel for example to get a new I2S driver, improved component etc then let me know.

moOde just uses stock RaspiOS and Raspberry Pi kernel but we carefully integrate and test specific versions and configurations of many components and also specific patched kernel drivers. This creates a lot of added value and helps maintain the stability of the build. Occasionally RaspiOS or kernel changes break the build and when that happens we have to adapt the moOde code to handle the changes.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#4
But one thing that would be a massive improvement is if moode could become a proper linux distro. That way apt-get update would not trash the system but just update it! I can't imagine this is impossible. I presume the reason that it has not been done is because there would be some issues integrating the moode self-update method.

I wanted to install an editor (emacs). I tried to do that and it was clear it required an update of the underlying debian. This led to disaster. It's not that serious since I can rebuild from scratch fairly easily but ... still no emacs.

It would also be fantastic to see moode branch out to include an x86 version. I have several mac-minis that are looking for new lives and volumio (which offers an x86 variant) is just not as good an experience as moode on the pi. But I do appreciate this is probably a bigger task than turing moode into a distribution.

At any rate I am continually thankful for moode's development warriors.
Reply
#5
I'm not sure what you mean by "if moode could become a proper linux distro". moOde (moOde audio player) is a set of applications and components integration tested into stock Raspberry Pi OS (RaspiOS) Linux distro to form an Embedded System (like a mobile phone). Our project maintains and releases specific versions and updates of this Embedded System. This way we can maintain reliability, performance and supportability, and ensure that our in-place updates work well.

Enthusiasts that want to modify the OS or are experiencing breakage as a result of doing so often get help from the dev's and other users on our Forum but sometimes its just not possible to provide that kind of support.

As far a managed OS updates (APT) goes there is plenty of breakage, just read the Raspberry Pi or any other OS Forums. Most Linux distributions have cautions and disclaimers on managed updates and upgrades for example  https://www.raspberrypi.org/documentatio...rs/os.html

The subject of whether a cross-platform version of moOde is possible, one that could run on hardware platforms other than Raspberry Pi, and the answer is technically yes but due to platform differences a consistent feature set could not be provided which is a major drawback. The other issue of course is lack of project funding and resources to even contemplate such an effort.

In any case there is no compelling reason for our project to become cross-platform because the Raspberry Pi platform is by far the dominant SBC, has the largest ecosystem of software, hardware and support particularly in the Linux audio space and is backed by a Foundation that has a robust product development and release process that delivers ever more capable Raspberry Pi's.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#6
(10-04-2021, 08:51 AM)beanlime Wrote: But one thing that would be  a massive improvement is if moode could become a proper linux distro.  That way apt-get update would not trash the system but just update it!   I can't imagine this is impossible.  I presume the reason that it has not been done is because there would be some issues integrating the moode self-update method.

I don't mean to be flip---well maybe a little---but the mantra in FOSS projects is "just fork and do it."

More seriously, running apt updates and upgrades may or may not "trash the system." In many cases, it's innocuous but there's ample examples of times when the Debian and RaspiOS developers introduced incompatible changes which caught us out. Were the essential bits of moOde to be made into a .deb package we'd have to spend considerable time tracking the evolution of all the other packages we depend on. By nailing each release of moOde to a specific major/minor release of RaspbiOS we can contain the madness.

Quote:I wanted to install an editor (emacs).  I tried to do that and it was clear it required an update of the underlying debian.  This led to disaster.  It's not that serious since I can rebuild from scratch fairly easily but ... still no emacs.

Emacs, huh. Don't know why you want to run Emacs on a headless music appliance. OTOH, I don't know why you had a disaster installing Emacs. Here's what I got just now on my moOde 7.4.1 player.

Code:
pi@rpi4b2:~ $ sudo apt-get install emacs
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
 emacs-bin-common emacs-common emacs-el emacs-gtk emacsen-common exim4-base exim4-config exim4-daemon-light fonts-droid-fallback fonts-noto-mono ghostscript
 gsfonts guile-2.2-libs imagemagick-6-common libcupsfilters1 libcupsimage2 libde265-0 libgc1c2 libgif7 libgs9 libgs9-common libgsasl7 libheif1 libijs-0.35
 libjbig2dec0 libkyotocabinet16v5 liblqr-1-0 libm17n-0 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmailutils5 libmariadb3 libntlm0 libotf0 libpaper-utils
 libpaper1 m17n-db mailutils mailutils-common mariadb-common mysql-common poppler-data
Suggested packages:
 emacs-common-non-dfsg exim4-doc-html | exim4-doc-info eximon4 spf-tools-perl swaks fonts-noto ghostscript-x m17n-docs libmagickcore-6.q16-6-extra gawk
 mailutils-mh mailutils-doc poppler-utils fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai
 fonts-arphic-uming fonts-nanum
The following NEW packages will be installed:
 emacs emacs-bin-common emacs-common emacs-el emacs-gtk emacsen-common exim4-base exim4-config exim4-daemon-light fonts-droid-fallback fonts-noto-mono
 ghostscript gsfonts guile-2.2-libs imagemagick-6-common libcupsfilters1 libcupsimage2 libde265-0 libgc1c2 libgif7 libgs9 libgs9-common libgsasl7 libheif1
 libijs-0.35 libjbig2dec0 libkyotocabinet16v5 liblqr-1-0 libm17n-0 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmailutils5 libmariadb3 libntlm0 libotf0
 libpaper-utils libpaper1 m17n-db mailutils mailutils-common mariadb-common mysql-common poppler-data
0 upgraded, 43 newly installed, 0 to remove and 215 not upgraded.
Need to get 60.5 MB of archives.
After this operation, 226 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...and the install proceeded without issue...

Now that it is installed I suppose I should embed moOde in it as a replacement for Bongo. (In my past lives at various research labs I never met an Emacs user who didn't want to control the world from within it.)

Quote:It would also be fantastic to see moode branch out to include an x86 version. I have several mac-minis that are looking for new lives and volumio (which offers an x86 variant) is just not as good an experience as moode on the pi.  But I do appreciate this is probably a bigger task than turing moode into a distribution.

Mac-minis would make excellent Emacs platforms.

Anyone who branches out to include an x86 version has to stick around to support all the folks who try making it work and to keep up with new releases of moOde. That alone is enough to dissuade me. It's hard enough to keep up with the RPi userbase.

Regards,
Kent

[
Reply
#7
Thanks guys...I'm sure there are many choices you have made for very good reasons, I'm not disputing that, but my questions were I think reasonable too. It seems very natural to have a dedicated moode distribution with maintenance tools that are specialised to maintaining moode, rather than someone else's distribution. But I do appreciate that is not how it is built and there would be a lot of work in managing that.

@TheOldPresbyope I run emacs on every piece of hardware and use via terminal. It is a very powerful editor if your fingers know it intuitively.

Here is what I get when I try to do this on a cleanly installed 7.4.1...no idea why I get these and you do not. It might be a problem with mirror I am assigned for the emacs packages.

sudo apt-get install emacs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
emacs-bin-common emacs-common emacs-el emacs-gtk emacsen-common exim4-base
exim4-config exim4-daemon-light fonts-droid-fallback fonts-noto-mono
ghostscript gsfonts guile-2.2-libs imagemagick-6-common libcupsfilters1
libcupsimage2 libde265-0 libgc1c2 libgif7 libgs9 libgs9-common libgsasl7
libheif1 libijs-0.35 libjbig2dec0 libkyotocabinet16v5 liblqr-1-0 libm17n-0
libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmailutils5 libmariadb3
libntlm0 libotf0 libpaper-utils libpaper1 m17n-db mailutils mailutils-common
mariadb-common mysql-common poppler-data
Suggested packages:
emacs-common-non-dfsg exim4-doc-html | exim4-doc-info eximon4 spf-tools-perl
swaks fonts-noto ghostscript-x m17n-docs libmagickcore-6.q16-6-extra gawk
mailutils-mh mailutils-doc poppler-utils fonts-japanese-mincho
| fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic
fonts-arphic-ukai fonts-arphic-uming fonts-nanum
The following NEW packages will be installed:
emacs emacs-bin-common emacs-common emacs-el emacs-gtk emacsen-common
exim4-base exim4-config exim4-daemon-light fonts-droid-fallback
fonts-noto-mono ghostscript gsfonts guile-2.2-libs imagemagick-6-common
libcupsfilters1 libcupsimage2 libde265-0 libgc1c2 libgif7 libgs9
libgs9-common libgsasl7 libheif1 libijs-0.35 libjbig2dec0
libkyotocabinet16v5 liblqr-1-0 libm17n-0 libmagickcore-6.q16-6
libmagickwand-6.q16-6 libmailutils5 libmariadb3 libntlm0 libotf0
libpaper-utils libpaper1 m17n-db mailutils mailutils-common mariadb-common
mysql-common poppler-data
0 upgraded, 43 newly installed, 0 to remove and 0 not upgraded.
Need to get 60.5 MB of archives.
After this operation, 226 MB of additional disk space will be used.
Do you want to continue? [Y/n]

[lots good happens, much seems to be installed and then]

E: Failed to fetch http://raspbian.raspberrypi.org/raspbian...u1_all.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian..._armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian..._armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian...u1_all.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian...u1_all.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian...u4_all.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian..._armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian..._armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian...u1_all.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://raspbian.raspberrypi.org/raspbian..._armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

and --fix-missing is a rabbit hole which led nowhere when I tried before...
Reply
#8
Do not confuse apt-get upgrade and apt-get update.
The former gets new packages and installs them, the latter simply gets a new list of available packages.

Do the update and try again.
----------------
Robert
Reply
#9
@beanlime

Wasn't questioning the power of Emacs---I've known about it since Stallings' GNU project released his first version in 1985 and I struggled to install it on my Apollo Domain workstations; obviously I never became a convert.

A problem at the moment is that the RaspiOS folks are preparing for their next major release. The Buster distro on which moOde 7.4.x is built has been relabelled from stable to oldstable.

If 'sudo apt-get update' fails with the message

Code:
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Then try 'sudo apt-get update --allow-releaseinfo-change' which should confirm the change, as in

Code:
pi@rpi3a:~ $ sudo apt-get update --allow-releaseinfo-change
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Get:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB]
Get:4 http://raspbian.raspberrypi.org/raspbian buster/contrib armhf Packages [58.7 kB]          
Get:5 http://raspbian.raspberrypi.org/raspbian buster/non-free armhf Packages [104 kB]          
Fetched 13.2 MB in 11s (1,172 kB/s)                                                                                      
Reading package lists... Done
N: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'

Now Emacs should install.

It's possible I had run the update sometime ago on the first system I reported and just forgot.

Regards,
Kent
Reply
#10
(10-04-2021, 04:28 PM)TheOldPresbyope Wrote: @beanlime

Wasn't questioning the power of Emacs---I've known about it since Stallings' GNU project released his first version in 1985 and I struggled to install it on my Apollo Domain workstations; obviously I never became a convert.

A problem at the moment is that the RaspiOS folks are preparing for their next major release. The Buster distro on which moOde 7.4.x is built has been relabelled from stable to oldstable.

If 'sudo apt-get update' fails with the message

Code:
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Then try 'sudo apt-get update --allow-releaseinfo-change' which should confirm the change, as in

Code:
pi@rpi3a:~ $ sudo apt-get update --allow-releaseinfo-change
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Get:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB]
Get:4 http://raspbian.raspberrypi.org/raspbian buster/contrib armhf Packages [58.7 kB]          
Get:5 http://raspbian.raspberrypi.org/raspbian buster/non-free armhf Packages [104 kB]          
Fetched 13.2 MB in 11s (1,172 kB/s)                                                                                      
Reading package lists... Done
N: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'

Now Emacs should install.

It's possible I had run the update sometime ago on the first system I reported and just forgot.

Regards,
Kent

Better still, use 'sudo apt' instead of 'sudo apt-get' and you shouldn't need to do the allow-releaseinfo-change bit.

Anyhow, a few judicious 'sudo apt mark' on key packages should make updating the underlying OS easier.

The devil, however, is in the detail, and I have no idea which packages need protecting.

If you're not using a USB DAC you may need to keep Moode's kernel version, for example.

Caveat emptor, and all that, and be prepared to reimage if it goes wrong.

You won't get support on this forum for your deviation from the Moode-provided image.

As someone whose day job involves keeping hundreds of servers fully up to date with security patches, I feel your pain.

Cheers,

Phil

Reply


Forum Jump: