3f79611b30
Currently, when one does not enable remounting the rootfs read-write, i.e. keep it read-only, for example because the filesystem is actually read-only by design, like squashfs, then two things happen: - we create a factory from the content of /var at build time, register tmpfiles entries for it, and mount a tmpfs on /var at runtime, so that systemd-tmpfiles does populate /var from the factory; this is only done when the rootfs is not remounted r/w; - we trigger systemd-tmpfiles at build time, which uses the tmpfiles db, of which our /var entries, to pre-populate the filesystem; this is always done, whether the rootfs is remounted r/w or not. Note that Buildroot mounts a tmpfs on /var, and leaves to the integrator to care for providing an actual filesystem, as there are too many variants and is very specific to each use-case. These two mechanisms are conflicting, semantically, but also technically: the files from the factory will be duplicated, but that may help in some situations when the actual /var filesystem is not mountable. In some cases, it might be preferable to have none, either, or both mechanisms enabled; it highly depends on the ultimate integration scheme chosen for a device. For example, some people will be very happy with a /var that is actually on a tmpfs and that it gets reseeded form scratch at every boot, while others may want to ensure that their system continue to work even when they can't mount something that makes /var writable. YMMV, as they used to say back in the day... So, we introduce two new options, in the system sub-menu, each to drive each mechanism. We default those options to y, to keep the previous behaviour by default, except the var factory is only available when the rootfs is not remounted r/w, as it were so far. We still hint in the help text that there might be some conflict between the two mechanisms, but since it has been that way for some time, it does not look too broken for most people. Since that introduces more options related to systemd being chosen as an init system, we gather those two options and the existing one inside a if-endif block, rather than adding more 'depends on' on each options. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Norbert Lange <nolange79@gmail.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Romain Naour <romain.naour@smile.fr> Cc: Jérémy Rosen <jeremy.rosen@smile.fr> Cc: Yann E. MORIN <yann.morin@orange.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.clang-format | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.shellcheckrc | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches