To help enforce/guide consistent configuration and to avoid duplicating
configuration fragments into the meta-virt layer, we leverage a native
provider of the yocto-kernel-cache fragment repository.
To allow support for kernels that support fragments, but don't have the
yocto-kernel-cache in the kernel's SRC_URI, we create two conditional
parts of the virtualization configuration.
If virtualization is enabled in the distro features, the kernel
version matches one of our supported ones, and the kernel inherits
kernel-yocto, we add a depedency on the yocto-cfg-fragments-native
recipe.
That recipe will install the fragment collection to the kernel recipe's
native sysroot.
We can then check for the kernel-cache on the SRC_URI. If it is present,
we use the feature at the standard location. If it is not present, we
add the fragment from the native sysroot.
While we could always use the native sysroot variant, we want to allow
a kernel with a kernel-cache to be the first choice, and provide their
own fragments.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
We already have docker and some other fragments that are relevant to
k3s/k8s, but the addition of ipset as a depends for k3s highlights
that we should have a reference configuration that sets all the options
for proper opration and runtime dependencies.
When k8s or k3s are distro features, we'll apply the new fragment to
any kernel that supports fragments (and matches the supported
versions).
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Add kernel config fragment for CONFIG_CGROUP_HUGETLB
This is a recommended config for Kubernetes and k8s
will throw a warning if it is not present.
Signed-off-by: Tim Orling <ticotimo@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Instead of setting virtio kernel configs in LXC fragment, just reuse
cfg/virtio.scc from yocto-kernel-cache.
Signed-off-by: Chin Huat Ang <chin.huat.ang@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
In the v4.18 kernel, there is a problem with the locking and init sequence of
the kernel modules. This would cause nf_conntrack_ipv6 failed to be loaded.
In kernel v4.19, nf_conntrack_ipv6 has been merged to nf_conntrack and the
problematic code has gone. This patch just works around by forcedly loading
nf_conntrack_ipv6.
Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
systemd-modules-load.service bindly load whatever in modules-load.d/*.conf,
in this case, kvm_intel and kvm_amd. One of them must fail on a specific
board and causes the following failure.
This patches remove them from KERNEL_MODULE_AUTOLOAD and leaves them to udev.
systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Failed to start Load Kernel Modules.
Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Make these bbappend files to take effect only when DISTRO_FEATURES
contain 'virtualization'. Otherwise, we would meet failure failure
at system booting up qemux86. Related logs are as below.
systemd-modules-load[113]: Failed to insert 'kvm_amd': Operation not supported
systemd-modules-load[113]: Failed to insert 'kvm_intel': Operation not supported
Also, make kvm related settings depend on the 'kvm' distro feature.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>