Squashfs allows configuring a blocksize between 4KB and 1MB. The default is
128KB. Increasing blocksize, in general, increases compression efficiency
at a cost of increased access time. Using 256KB for a blocksize appears to be
a sweet spot balancing the two for gzip and zstd. Blocksize 512KB appears
right for lzo.
Gzip decreases by ~700KB.
Lzo decreases by ~1.25MB.
Zstd decreaes by ~2.5MB.
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
For LZO, this saves about 40kb on img.gz size.
For GZIP, this saves about 4kb on img.gz size.
For ZSTD, this saves about 500kb on img.gz size.
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
Switch scripts/git_version for get_pkg_version out of
config/functions. Resolves being unable to report Kodi's version
in RELEASE file.
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
Have IMAGE_NAME check for devel version before applying default
naming.
Generate all the baselayout directories in a for loop instead of
the long list of mkdir -p one after the other.
For 64-bit builds, $INSTALL/usr is already generated for all
arches a few lines previously, so don't repeat here.
There are changes to comments for corrections and clarity.
Unifies code style: $() versus `` and spaces before ;
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
project or device options
this has been added at the end of the virtual debug package as
this is the last point in the build system that any packages are
compiled before images are created
Core Kernel modules are now installed to
/usr/lib/kernel-overlays/base/lib/modules instead of /usr/lib/modules
Firmware files are installed to
/usr/lib/kernel-overlays/base/lib/firmware instead of /usr/lib/firmware
Packages can choose to install their modules and/or firmwareinto a
different overlay directory than base so they are not automatically enabled.
A new systemd service kernel-overlays, which is run before any modules
are loaded, adds overlays enabled via /storage/.cache/kernel-overlays/*.conf
These conf files must either contain the name of a system overlay,
which will then be searched for in /usr/lib/kernel-overlays/, or an
absolute path starting with '/'.
Overlaying is implemented by symlinking files from the overlays
to /usr/lib/modules and /usr/lib/firmware as not all platforms
support overlayfs.
This overlaying system can also be used by addons to provide optional
kernel modules and/or firmware by storing the absolute path to the addon
directory in the conf file and shipping kernel modules in
<addondir>/lib/modules/<KERNELVER>.
To save space only symlinks for modules matching the currently
running kernel version are created as addons may want to ship
modules for older kernel versions as well to be backward-compatible
to older LibreELEC versions.
Changes since v1:
- fixup kernel-overlays-service: add before kmod-static-nodes.service
Fix static device nodes for module autoloading not being created.
- fixup kernel-overlays-service: fail if /usr/lib/modules exists
- squash kernel overlays: use get_kernel_overlay_dir in linux/package.mk
- Add support for firmware files via kernel overlays
- config/functions: include kernel overlays in addon installation
Signed-off-by: Matthias Reichl <hias@horus.com>