S
S
Siegurd12022-04-13 12:33:06
MySQL
Siegurd1, 2022-04-13 12:33:06

What are some ways to reduce Debian boot time for SoCs (RPi, Beagleboard, BananaPi, etc)?

Faced with an interesting problem. It is necessary to launch a C++ application on SoC (RPi, Beagle, BananaPi, etc) in the shortest possible time (5-7 seconds) after power is applied (the condition is loading the file system and the appearance of the necessary devices such as /dev/spi0.1, etc.) . Surprisingly, I found that all the developers of popular single-payers stuff a lot of various software into their distributions for the user segment and support only these distributions. As a result, the user receives the same tungsten math on RPi zero, which, to put it mildly, will be stupid, and the board will be loaded for about three minutes. At the same time, I was not able to find at least some slightly fresh and described project for use in the field of embedded systems (embedded), although they write on the forums, that with little effort it is possible to reduce the Debian boot time for these SoCs to a few seconds. The network hasvideo where the craftsman loads Rpi3 in ~ 2 seconds, but I could not see any universal guide for editing the kernel.
The Internet offers buildroot and yocto for use in embedded systems, but after playing 3 weeks of unrestrained recompilation of the kernel with buildroot with the prospect of doing this every time after the release of a new version of the C ++ program, I abandoned this idea (practiced on a single-core PocketBeagle), although I achieved the boot time of the board for 4 seconds (before login prompt).
I am not at all familiar with yocto and it is not known whether it will be possible to launch it on the board.
Therefore, the third option was to edit systemd on that Debian distributionwhich the developer provides, but by disabling, in my opinion, unnecessary services, the loading time was reduced only from 120 to 20 seconds, which is 3-4 times more than the required time. Further, as I understand it, you need to rebuild the kernel with throwing out unnecessary programs / services / drivers from it, but it’s not at all clear which services and what they are responsible for in order to throw them away and thereby reduce the boot time. Does anyone have experience with this?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
R
Rsa97, 2016-09-18
@gogolinsky

If the ratio is set manually, then this is a normal many-to-many relationship. Implemented as a separate table (id_a, id_b).
You can also accept the convention that id_a must always be less than id_b and add a BEFORE INSERT trigger to automatically control this rule and correct the pair on insertion.

H
HEDGSS, 2016-09-18
@HEDGSS

I would recommend trying to store items in MongoDB.
The free structure of the document will allow you to store different products with different sets of features.
It is also quite convenient to organize a selection of goods according to the required criteria.

A
Armenian Radio, 2022-04-13
@gbg

The Internet offers buildroot and yocto for use in embedded systems, but after playing 3 weeks of unrestrained recompilation of the kernel with buildroot with the prospect of doing this every time after the release of a new version of the C ++ program, I abandoned this idea (practiced on a single-core PocketBeagle), although I achieved the boot time of the board for 4 seconds (before login prompt).

Actually, this is the solution. You only need to set up CI / CD

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question