diff options
Diffstat (limited to 'recipes-kernel')
21 files changed, 166 insertions, 139 deletions
diff --git a/recipes-kernel/linux/linux-%.bbappend b/recipes-kernel/linux/linux-%.bbappend new file mode 100644 index 00000000..dbae9b14 --- /dev/null +++ b/recipes-kernel/linux/linux-%.bbappend @@ -0,0 +1,38 @@ +# any kernel recipe with fragment support, that sets LINUX_VERSION to one of the tested +# values, will get the appropriate fragments included in their SRC_URI + +LINUX_MAJOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[0]}" +LINUX_MINOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[1]}" + +KERNEL_META_TYPE = "${@'yocto' if d.getVar('SRC_URI').find('type=kmeta') > 0 and d.getVar('SKIP_META_VIRT_KERNEL_INCLUDE') == None else 'none'}" + +include ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-${KERNEL_META_TYPE}_${LINUX_MAJOR}.${LINUX_MINOR}_virtualization.inc', '', d)} + +python __anonymous () { + # Gather the variables + virt_enabled = bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'True', '', d ) + skip_kernel_include_enabled = d.getVar('SKIP_META_VIRT_KERNEL_INCLUDE') + kmeta_type = d.getVar('SRC_URI').find('type=kmeta') + inhibit_skip_kernel_check_warning = d.getVar('META_VIRT_KERNEL_CHECK_WARNING_INHIBIT') + + # + # We warn if: + # - the kernel has the capability of merging fragments + # - virtualiation is enabled + # - and the user has decided to force skip the include + # + # .. because they have knowingly opted-out of our tested + # kernel configurations, and need to be warned. + # + # BUT, it can also be annoying to get a warning when you + # have explcitly opted out. So we have one more warning + # that indicates that the impacts are understood and this + # really is on purpse. If META_VIRT_KERNEL_CHECK_WARNING_INHIBIT + # is set, we won't do the warning. + # + if virt_enabled and kmeta_type > 0 and skip_kernel_include_enabled: + if not inhibit_skip_kernel_check_warning: + bb.warn( "You have a kernel-yocto enabled kernel, but have inhibited \ +virtualization kernel features. Some runtime issues may be present in \ +your final image" ) +} diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend deleted file mode 100644 index 20eeba95..00000000 --- a/recipes-kernel/linux/linux-yocto-dev.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_virtualization.inc', '', d)} diff --git a/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/recipes-kernel/linux/linux-yocto-rt_%.bbappend deleted file mode 100644 index 20eeba95..00000000 --- a/recipes-kernel/linux/linux-yocto-rt_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_virtualization.inc', '', d)} diff --git a/recipes-kernel/linux/linux-yocto/docker.cfg b/recipes-kernel/linux/linux-yocto/docker.cfg deleted file mode 100644 index 79012a6a..00000000 --- a/recipes-kernel/linux/linux-yocto/docker.cfg +++ /dev/null @@ -1,12 +0,0 @@ -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_IP_NF_FILTER=m -CONFIG_NF_NAT=m -CONFIG_NF_CONNTRACK=y - -CONFIG_DM_THIN_PROVISIONING=m - - -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m - -CONFIG_OVERLAY_FS=y diff --git a/recipes-kernel/linux/linux-yocto/docker.scc b/recipes-kernel/linux/linux-yocto/docker.scc deleted file mode 100644 index e317456c..00000000 --- a/recipes-kernel/linux/linux-yocto/docker.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Enable Features needed by docker in addition to LXC features" -define KFEATURE_COMPATIBILITY board - -kconf non-hardware docker.cfg diff --git a/recipes-kernel/linux/linux-yocto/ebtables.cfg b/recipes-kernel/linux/linux-yocto/ebtables.cfg deleted file mode 100644 index a3c514e1..00000000 --- a/recipes-kernel/linux/linux-yocto/ebtables.cfg +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_T_NAT=m diff --git a/recipes-kernel/linux/linux-yocto/ebtables.scc b/recipes-kernel/linux/linux-yocto/ebtables.scc deleted file mode 100644 index b3895e58..00000000 --- a/recipes-kernel/linux/linux-yocto/ebtables.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Enable ebtables support" -define KFEATURE_COMPATIBILITY board - -kconf non-hardware ebtables.cfg diff --git a/recipes-kernel/linux/linux-yocto/extra-configs.cfg b/recipes-kernel/linux/linux-yocto/extra-configs.cfg new file mode 100644 index 00000000..a43bbcbc --- /dev/null +++ b/recipes-kernel/linux/linux-yocto/extra-configs.cfg @@ -0,0 +1 @@ +# placeholder config fragment for local enable and debug
\ No newline at end of file diff --git a/recipes-kernel/linux/linux-yocto/lxc.cfg b/recipes-kernel/linux/linux-yocto/lxc.cfg deleted file mode 100644 index 3fefc034..00000000 --- a/recipes-kernel/linux/linux-yocto/lxc.cfg +++ /dev/null @@ -1,33 +0,0 @@ -CONFIG_CGROUP_DEVICE=y -CONFIG_CPUSETS=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_MEMCG=y -CONFIG_CGROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_RT_GROUP_SCHED=y -CONFIG_CHECKPOINT_RESTORE=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -CONFIG_USER_NS=y -CONFIG_PID_NS=y -CONFIG_NET_NS=y - -CONFIG_NET_CLS_CGROUP=m -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_NET_PRIO=y - -# Virtual drivers -CONFIG_HVC_DRIVER=y - -# Base support for live boot -CONFIG_BLK_DEV_LOOP=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ISO8859_1=y -CONFIG_VFAT_FS=y -CONFIG_RD_GZIP=y - -# Support for virtual ethernet and LXC -CONFIG_VETH=y -CONFIG_MACVLAN=y -CONFIG_VXLAN=m diff --git a/recipes-kernel/linux/linux-yocto/lxc.scc b/recipes-kernel/linux/linux-yocto/lxc.scc deleted file mode 100644 index ee518835..00000000 --- a/recipes-kernel/linux/linux-yocto/lxc.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Enable Features needed by LxC, namespaces, cgroups et.c." -define KFEATURE_COMPATIBILITY board - -kconf non-hardware lxc.cfg diff --git a/recipes-kernel/linux/linux-yocto/vswitch.cfg b/recipes-kernel/linux/linux-yocto/vswitch.cfg deleted file mode 100644 index b1fefc0c..00000000 --- a/recipes-kernel/linux/linux-yocto/vswitch.cfg +++ /dev/null @@ -1,3 +0,0 @@ -CONFIG_OPENVSWITCH=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_ACT_POLICE=m diff --git a/recipes-kernel/linux/linux-yocto/vswitch.scc b/recipes-kernel/linux/linux-yocto/vswitch.scc deleted file mode 100644 index 2790b4fe..00000000 --- a/recipes-kernel/linux/linux-yocto/vswitch.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Enable in kernel OpenvSwitch module" -define KFEATURE_COMPATIBILITY board - -kconf non-hardware vswitch.cfg diff --git a/recipes-kernel/linux/linux-yocto/xen.cfg b/recipes-kernel/linux/linux-yocto/xen.cfg deleted file mode 100644 index 4780311d..00000000 --- a/recipes-kernel/linux/linux-yocto/xen.cfg +++ /dev/null @@ -1,50 +0,0 @@ -CONFIG_HYPERVISOR_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_XEN=y -CONFIG_XEN_DOM0=y -CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=500 -CONFIG_XEN_SAVE_RESTORE=y -# CONFIG_XEN_DEBUG_FS is not set -CONFIG_XEN_PVH=y -CONFIG_MMU_NOTIFIER=y -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_PCI_XEN=y -CONFIG_XEN_PCIDEV_FRONTEND=y -CONFIG_SYS_HYPERVISOR=y -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_BLKDEV_BACKEND=m -CONFIG_XEN_SCSI_FRONTEND=m -CONFIG_XEN_NETDEV_FRONTEND=y -CONFIG_XEN_NETDEV_BACKEND=m -CONFIG_INPUT_MISC=y -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y -CONFIG_HVC_IRQ=y -CONFIG_HVC_XEN=y -CONFIG_HVC_XEN_FRONTEND=y -CONFIG_XEN_WDT=m -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_XEN_FBDEV_FRONTEND=y -CONFIG_XEN_BALLOON=y -CONFIG_XEN_SCRUB_PAGES=y -CONFIG_XEN_DEV_EVTCHN=y -CONFIG_XEN_BACKEND=y -CONFIG_XENFS=y -CONFIG_XEN_COMPAT_XENFS=y -CONFIG_XEN_SYS_HYPERVISOR=y -CONFIG_XEN_XENBUS_FRONTEND=y -CONFIG_XEN_GNTDEV=m -CONFIG_XEN_GRANT_DEV_ALLOC=m -CONFIG_SWIOTLB_XEN=y -CONFIG_XEN_PCIDEV_BACKEND=m -CONFIG_XEN_PRIVCMD=y -CONFIG_XEN_ACPI_PROCESSOR=m -CONFIG_XEN_MCE_LOG=y -CONFIG_XEN_HAVE_PVMMU=y -CONFIG_XEN_EFI=y -CONFIG_XEN_AUTO_XLATE=y -CONFIG_XEN_ACPI=y diff --git a/recipes-kernel/linux/linux-yocto/xen.scc b/recipes-kernel/linux/linux-yocto/xen.scc deleted file mode 100644 index b588e5df..00000000 --- a/recipes-kernel/linux/linux-yocto/xen.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Xen Kernel Support" -define KFEATURE_COMPATIBILITY arch - -kconf non-hardware xen.cfg diff --git a/recipes-kernel/linux/linux-yocto/xt-checksum.cfg b/recipes-kernel/linux/linux-yocto/xt-checksum.cfg deleted file mode 100644 index 58afbff6..00000000 --- a/recipes-kernel/linux/linux-yocto/xt-checksum.cfg +++ /dev/null @@ -1 +0,0 @@ -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m diff --git a/recipes-kernel/linux/linux-yocto/xt-checksum.scc b/recipes-kernel/linux/linux-yocto/xt-checksum.scc deleted file mode 100644 index d3804f0c..00000000 --- a/recipes-kernel/linux/linux-yocto/xt-checksum.scc +++ /dev/null @@ -1,4 +0,0 @@ -define KFEATURE_DESCRIPTION "Add extra iptables modules" -define KFEATURE_COMPATIBILITY board - -kconf non-hardware xt-checksum.cfg diff --git a/recipes-kernel/linux/linux-yocto_5.2.bbappend b/recipes-kernel/linux/linux-yocto_5.2.bbappend deleted file mode 100644 index 617caccb..00000000 --- a/recipes-kernel/linux/linux-yocto_5.2.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)} diff --git a/recipes-kernel/linux/linux-yocto_6.6_virtualization.inc b/recipes-kernel/linux/linux-yocto_6.6_virtualization.inc new file mode 100644 index 00000000..59311487 --- /dev/null +++ b/recipes-kernel/linux/linux-yocto_6.6_virtualization.inc @@ -0,0 +1,4 @@ +# include the baseline meta virtualization configuration options +# after this include, we can do version specific things + +include linux-yocto_virtualization.inc diff --git a/recipes-kernel/linux/linux-yocto_virtualization.inc b/recipes-kernel/linux/linux-yocto_virtualization.inc index f050b3fa..9a6554d1 100644 --- a/recipes-kernel/linux/linux-yocto_virtualization.inc +++ b/recipes-kernel/linux/linux-yocto_virtualization.inc @@ -1,20 +1,61 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:" +FILESEXTRAPATHS:prepend := "${THISDIR}/linux-yocto:" -SRC_URI += "file://xt-checksum.scc \ - file://ebtables.scc \ - file://vswitch.scc \ - file://lxc.scc \ - file://docker.scc \ - " -KERNEL_FEATURES_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'kvm', 'features/kvm/qemu-kvm-enable.scc', '', d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'kvm', ' features/kvm/qemu-kvm-enable.scc', '', d)}" KERNEL_MODULE_AUTOLOAD += "nf_conntrack_ipv6 openvswitch" KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains('DISTRO_FEATURES', 'kvm', 'kvm', '', d)}" # aufs kernel support required for xen-image-minimal -KERNEL_FEATURES_append += "${@bb.utils.contains('DISTRO_FEATURES', 'aufs', ' features/aufs/aufs-enable.scc', '', d)}" +KERNEL_FEATURES:append = "${@bb.utils.contains('DISTRO_FEATURES', 'aufs', ' features/aufs/aufs-enable.scc', '', d)}" -KERNEL_FEATURES_append = " cfg/virtio.scc" +# Always add a local/layer fragment for easy debug and enabling of options +SRC_URI += "file://extra-configs.cfg" + +# if the kernel-yocto meta-data routine automatically starts to add the +# recipe-sysroot-native, we can do away with this conditional, since all +# features will be found at the same relative offset from a search +# directory +def kernel_cache_cond_feature(src_uri,feature): + import re + kernel_cache = re.search("kernel-cache", src_uri ) + if kernel_cache: + return feature + + return "../recipe-sysroot-native/kcfg/" + feature + +# no conditional, just use the yocto-kernel-cache addition, yes +# the src_uri isn't used, but we may need to check it in the future +def kernel_cache_feature(src_uri,feature): + return "../recipe-sysroot-native/kcfg/" + feature + +def distro_cond_feature(feature_fragment,distro_feature,d): + import bb + feat = kernel_cache_feature("",feature_fragment) + return bb.utils.contains('DISTRO_FEATURES', distro_feature, ' ' + feat, ' ', d) + +KERNEL_CACHE_FEATURES ?= "${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/virtio.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/xt-checksum.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/vswitch.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/lxc.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/docker.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/cgroup-hugetlb.scc')} \ + ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/criu.scc')} \ + " +KERNEL_FEATURES:append = " ${KERNEL_CACHE_FEATURES}" + +# if kernel-yocto has been inherited (how we can check for configuration +# fragment merging suport at the moment, then add a dependency on the +# configuration fragment repository. This allows us to be sure that our +# features can be enabled via the fragments +do_kernel_metadata[depends] += "${@['', 'yocto-cfg-fragments-native:do_populate_sysroot'][(bb.data.inherits_class('kernel-yocto', d))]}" # xen kernel support -SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}" +# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}" +KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/xen.scc', 'xen', d )}" + +# k8s and k3s kernel support +# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k8s', ' file://kubernetes.scc', '', d)}" +# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k3s', ' file://kubernetes.scc', '', d)}" +KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/kubernetes.scc', 'k8s', d )}" +KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/kubernetes.scc', 'k3s', d )}" + diff --git a/recipes-kernel/linux/yocto-cfg-fragments.bb b/recipes-kernel/linux/yocto-cfg-fragments.bb new file mode 100644 index 00000000..e6815715 --- /dev/null +++ b/recipes-kernel/linux/yocto-cfg-fragments.bb @@ -0,0 +1,37 @@ +HOMEPAGE = "https://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/" +SUMMARY = "Kernel configuration fragments" +DESCRIPTION = "Typically used as part of a kernel clone, this is the standalone \ +fragment repository. Making it available to other fragment management schemes \ +" +SECTION = "devel" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" +INHIBIT_DEFAULT_DEPS = "1" + +LINUX_VERSION ?= "6.6" +PV = "v${LINUX_VERSION}+git${SRCREV}" + +SRCREV = "eb283ea577df80542d48f0c498365960b4c4ecd9" +SRC_URI = "\ + git://git.yoctoproject.org/yocto-kernel-cache;branch=yocto-${LINUX_VERSION} \ + " + +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${base_prefix}/kcfg + + # copy the configuration fragments over to the native deploy + cp -r ${S}/* ${D}${base_prefix}/kcfg + # scripts bring in a bash dependency we don't want + rm -rf ${D}${base_prefix}/kcfg/scripts +} + +FILES:${PN} += "kcfg/" +SYSROOT_DIRS += "${base_prefix}/kcfg" +BBCLASSEXTEND = "native nativesdk" + diff --git a/recipes-kernel/lopper/lopper_git.bb b/recipes-kernel/lopper/lopper_git.bb new file mode 100644 index 00000000..5e2ca69a --- /dev/null +++ b/recipes-kernel/lopper/lopper_git.bb @@ -0,0 +1,34 @@ +SUMMARY = "Device Tree Lopper" +DESCRIPTION = "Tool for manipulation of system device tree files" +LICENSE = "BSD-3-Clause" +SECTION = "bootloader" + +SRC_URI = "git://github.com/devicetree-org/lopper.git;branch=master;protocol=https" +SRCREV = "9159040dab25e2f1e7b447fcbfcd5397b1d618e8" +S = "${WORKDIR}/git" + +BASEVERSION = "1.0.2" +PV = "v${BASEVERSION}+git" + +PYPA_WHEEL = "${PIP_INSTALL_DIST_PATH}/${BPN}-${BASEVERSION}-*.whl" + +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=8e5f5f691f01c9fdfa7a7f2d535be619" + +RDEPENDS:${PN} = " \ + python3-core \ + python3-dtc \ + python3-humanfriendly \ + " + +inherit setuptools3 + +INHIBIT_PACKAGE_STRIP = "1" + +do_install:append() { + # we have to remove the vendor'd libfdt, since an attempt to strip it + # will be made, and it will fail in a cross environment. + rm -rf ${D}/${PYTHON_SITEPACKAGES_DIR}/${BPN}/vendor +} + +BBCLASSEXTEND = "native nativesdk" + |