fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Small fast-start platform


From: Marcus Weseloh
Subject: Re: [fluid-dev] Small fast-start platform
Date: Sat, 19 Feb 2022 10:26:09 +0100

Hi,

I'm running FluidSynth on an embedded system in a musical instrument,
boot time from power-on to system-ready-and-playable is between 4-6
seconds (depending on the initially loaded soundfont).

The hardware is an Allwinner A20 dual-core system from Olimex. It's
available as a SOM (which is what I use) or as a standalone board:
https://www.olimex.com/Products/SOM/A20/A20-SOM/
https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/open-source-hardware

They are great little boards, the Linux-support is very mature. And
the 1GHz dual-core is fast enough for 64-note polyphony with minimal
latency, even with FS only running on one core (the other core I use
for sensor readings, webserver, USB-MIDI etc.)

Bootlin (former Free Electrons) have excellent information on how to
reduce Linux boot-time on embedded boards:
https://bootlin.com/doc/training/boot-time/boot-time-slides.pdf

There's also the elinux.org Wiki on the subject:
https://elinux.org/Boot_Time

If you are willing to delve into uboot and Linux kernel configs and
build-systems like Buildroot, getting sub-5-second boot time on an
embedded Linux that is used for a single purpose is not really that
difficult, in my opinion. I would suggest to use Buildroot
(https://buildroot.org/) and create a minimal system image with a
stock kernel. Then add FluidSynth to the mix (there is a buildroot
package for FS, but you can easily write your own definition). If that
already gives you a fast enough boot time: great :-) If you need
further reduction, start by removing the 3 second wait-for-keypress in
uboot. And if that is still not enough, then start to remove unused
stuff from your kernel. SCSI subsystem, IPv6 networking, ... Then get
rid of systemd, in case your minimal image was configured for it. Use
something small and lightweight like mdev for devices. Don't change
too much at once. Change one thing, measure, repeat, Build-systems
like Buildroot have the advantage that you can make very precise
changes with reproducible builds.

You can have a look at the Buildroot config for my instrument here:
https://github.com/midigurdy/mg-build

Cheers
Marcus

Am Sa., 19. Feb. 2022 um 07:25 Uhr schrieb Geoff Plitt <geoff@gweb.org>:
>
> I'd love to get a sub-5-second boot working FluidSynth demo going. I'm 
> interested to work on this with somebody.
>
> The problem with ultra-fast RPi booting is I'm not sure enough 
> drivers/services will be running for FluidSynth to really work. Here are some 
> fast-booting RPi claims:
> - https://kevinboone.me/pi_minimal.html?i=2 - Truly minimal (3s) boot project 
> for Pi.
> - https://www.furkantokac.com/rpi3-fast-boot-less-than-2-seconds/
>
>
> Also saw there's an embedded FluidSynth project but I'm not sure how active 
> the project is, or of the compatibility with the latest cool dev boards like 
> the latest Teensy board. Also I think cool stuff like reverb may not work on 
> these.
> - https://github.com/divideconcept/FluidLite
>
> Here's something else interesting - tiny Linux-Compatible Kernel - 
> https://github.com/vvaltchev/tilck
>
> And then I also thought this board could be ideal, it's a DSP audio platform 
> in a single board. 
> https://www.synthtopia.com/content/2022/01/25/electrosmith-intros-40-platform-for-creating-dsp-based-eurorack-modules/
>
>
>
> On Fri, Feb 18, 2022 at 10:08 PM Bill Peterson <albedozero@gmail.com> wrote:
>>
>> I'm looking at the plot from systemd-analyze, which gives times from when 
>> the kernel starts, so I guess it doesn't include boot. If I time with a 
>> stopwatch it is about 25 seconds from power on until ready to play. Not that 
>> fast I guess.
>>
>> On Fri, Feb 18, 2022 at 11:10 PM Ben Gonzales via fluid-dev 
>> <fluid-dev@nongnu.org> wrote:
>>>
>>> Hi Bill.
>>>
>>> That's not including boot I assume?
>>>
>>> Ben
>>>
>>> _______________________________________________
>>> fluid-dev mailing list
>>> fluid-dev@nongnu.org
>>> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>>
>> _______________________________________________
>> fluid-dev mailing list
>> fluid-dev@nongnu.org
>> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]