Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
34
sources/poky/meta/recipes-kernel/linux/cve-exclusion.inc
Normal file
34
sources/poky/meta/recipes-kernel/linux/cve-exclusion.inc
Normal file
@@ -0,0 +1,34 @@
|
||||
CVE_STATUS[CVE-1999-0656] = "not-applicable-config: specific to ugidd, part of the old user-mode NFS server"
|
||||
|
||||
CVE_STATUS[CVE-2006-2932] = "not-applicable-platform: specific to RHEL"
|
||||
|
||||
CVE_STATUS[CVE-2007-2764] = "not-applicable-platform: specific to Sun/Brocade SilkWorm switches"
|
||||
|
||||
CVE_STATUS[CVE-2007-4998] = "cpe-incorrect: a historic cp bug, no longer an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=356471#c5"
|
||||
|
||||
CVE_STATUS[CVE-2008-2544] = "disputed: not an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=449089#c22"
|
||||
|
||||
CVE_STATUS[CVE-2010-0298] = "fixed-version: 2.6.34 (1871c6)"
|
||||
|
||||
CVE_STATUS[CVE-2014-2648] = "cpe-incorrect: not Linux"
|
||||
|
||||
CVE_STATUS[CVE-2016-0774] = "ignored: result of incomplete backport"
|
||||
|
||||
CVE_STATUS[CVE-2016-3695] = "not-applicable-platform: specific to RHEL with securelevel patches"
|
||||
|
||||
CVE_STATUS[CVE-2016-3699] = "not-applicable-platform: specific to RHEL with securelevel patches"
|
||||
|
||||
CVE_STATUS[CVE-2017-6264] = "not-applicable-platform: Android specific"
|
||||
|
||||
CVE_STATUS[CVE-2017-1000377] = "not-applicable-platform: GRSecurity specific"
|
||||
|
||||
CVE_STATUS[CVE-2018-6559] = "not-applicable-platform: Issue only affects Ubuntu"
|
||||
|
||||
CVE_STATUS[CVE-2020-11935] = "not-applicable-config: Issue only affects aufs, which is not in linux-yocto"
|
||||
|
||||
# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
|
||||
# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
|
||||
# But, the CVE is disputed:
|
||||
CVE_STATUS[CVE-2023-23005] = "disputed: There are no realistic cases \
|
||||
in which a user can cause the alloc_memory_type error case to be reached. \
|
||||
See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2"
|
||||
6660
sources/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
Normal file
6660
sources/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
Normal file
File diff suppressed because it is too large
Load Diff
98
sources/poky/meta/recipes-kernel/linux/generate-cve-exclusions.py
Executable file
98
sources/poky/meta/recipes-kernel/linux/generate-cve-exclusions.py
Executable file
@@ -0,0 +1,98 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
# Generate granular CVE status metadata for a specific version of the kernel
|
||||
# using data from linuxkernelcves.com.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import json
|
||||
import pathlib
|
||||
import re
|
||||
|
||||
from packaging.version import Version
|
||||
|
||||
|
||||
def parse_version(s):
|
||||
"""
|
||||
Parse the version string and either return a packaging.version.Version, or
|
||||
None if the string was unset or "unk".
|
||||
"""
|
||||
if s and s != "unk":
|
||||
# packaging.version.Version doesn't approve of versions like v5.12-rc1-dontuse
|
||||
s = s.replace("-dontuse", "")
|
||||
return Version(s)
|
||||
return None
|
||||
|
||||
|
||||
def main(argp=None):
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("datadir", type=pathlib.Path, help="Path to a clone of https://github.com/nluedtke/linux_kernel_cves")
|
||||
parser.add_argument("version", type=Version, help="Kernel version number to generate data for, such as 6.1.38")
|
||||
|
||||
args = parser.parse_args(argp)
|
||||
datadir = args.datadir
|
||||
version = args.version
|
||||
base_version = f"{version.major}.{version.minor}"
|
||||
|
||||
with open(datadir / "data" / "kernel_cves.json", "r") as f:
|
||||
cve_data = json.load(f)
|
||||
|
||||
with open(datadir / "data" / "stream_fixes.json", "r") as f:
|
||||
stream_data = json.load(f)
|
||||
|
||||
print(f"""
|
||||
# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
|
||||
# Generated at {datetime.datetime.now(datetime.timezone.utc)} for version {version}
|
||||
|
||||
python check_kernel_cve_status_version() {{
|
||||
this_version = "{version}"
|
||||
kernel_version = d.getVar("LINUX_VERSION")
|
||||
if kernel_version != this_version:
|
||||
bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
|
||||
}}
|
||||
do_cve_check[prefuncs] += "check_kernel_cve_status_version"
|
||||
""")
|
||||
|
||||
for cve, data in cve_data.items():
|
||||
if "affected_versions" not in data:
|
||||
print(f"# Skipping {cve}, no affected_versions")
|
||||
print()
|
||||
continue
|
||||
|
||||
affected = data["affected_versions"]
|
||||
first_affected, fixed = re.search(r"(.+) to (.+)", affected).groups()
|
||||
first_affected = parse_version(first_affected)
|
||||
fixed = parse_version(fixed)
|
||||
|
||||
if not fixed:
|
||||
print(f"# {cve} has no known resolution")
|
||||
elif first_affected and version < first_affected:
|
||||
print(f'CVE_STATUS[{cve}] = "fixed-version: only affects {first_affected} onwards"')
|
||||
elif fixed <= version:
|
||||
print(
|
||||
f'CVE_STATUS[{cve}] = "fixed-version: Fixed from version {fixed}"'
|
||||
)
|
||||
else:
|
||||
if cve in stream_data:
|
||||
backport_data = stream_data[cve]
|
||||
if base_version in backport_data:
|
||||
backport_ver = Version(backport_data[base_version]["fixed_version"])
|
||||
if backport_ver <= version:
|
||||
print(
|
||||
f'CVE_STATUS[{cve}] = "cpe-stable-backport: Backported in {backport_ver}"'
|
||||
)
|
||||
else:
|
||||
# TODO print a note that the kernel needs bumping
|
||||
print(f"# {cve} needs backporting (fixed from {backport_ver})")
|
||||
else:
|
||||
print(f"# {cve} needs backporting (fixed from {fixed})")
|
||||
else:
|
||||
print(f"# {cve} needs backporting (fixed from {fixed})")
|
||||
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
407
sources/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
Normal file
407
sources/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
Normal file
@@ -0,0 +1,407 @@
|
||||
SUMMARY = "Linux kernel Development Source"
|
||||
DESCRIPTION = "Development source linux kernel. When built, this recipe packages the \
|
||||
source of the preferred virtual/kernel provider and makes it available for full kernel \
|
||||
development or external module builds"
|
||||
|
||||
SECTION = "kernel"
|
||||
|
||||
LICENSE = "GPL-2.0-only"
|
||||
|
||||
inherit linux-kernel-base
|
||||
|
||||
# Whilst not a module, this ensures we don't get multilib extended (which would make no sense)
|
||||
inherit module-base
|
||||
|
||||
# We need the kernel to be staged (unpacked, patched and configured) before
|
||||
# we can grab the source and make the source package. We also need the bits from
|
||||
# ${B} not to change while we install, so virtual/kernel must finish do_compile.
|
||||
do_install[depends] += "virtual/kernel:do_shared_workdir"
|
||||
# Need the source, not just the output of populate_sysroot
|
||||
do_install[depends] += "virtual/kernel:do_install"
|
||||
|
||||
# There's nothing to do here, except install the source where we can package it
|
||||
do_fetch[noexec] = "1"
|
||||
do_unpack[noexec] = "1"
|
||||
do_patch[noexec] = "1"
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
deltask do_populate_sysroot
|
||||
|
||||
S = "${STAGING_KERNEL_DIR}"
|
||||
B = "${STAGING_KERNEL_BUILDDIR}"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
KERNEL_BUILD_ROOT="${nonarch_base_libdir}/modules/"
|
||||
|
||||
do_install() {
|
||||
kerneldir=${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}
|
||||
install -d $kerneldir
|
||||
|
||||
# create the directory structure
|
||||
rm -f $kerneldir/build
|
||||
rm -f $kerneldir/source
|
||||
mkdir -p $kerneldir/build
|
||||
|
||||
# for compatibility with some older variants of this package, we
|
||||
# create a /usr/src/kernel symlink to /lib/modules/<version>/source
|
||||
mkdir -p ${D}/usr/src
|
||||
(
|
||||
cd ${D}/usr/src
|
||||
ln -rs ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}/source kernel
|
||||
)
|
||||
|
||||
# for on target purposes, we unify build and source
|
||||
(
|
||||
cd $kerneldir
|
||||
ln -s build source
|
||||
)
|
||||
|
||||
# first copy everything
|
||||
(
|
||||
cd ${S}
|
||||
cp --parents $(find -type f -name "Makefile*" -o -name "Kconfig*") $kerneldir/build
|
||||
cp --parents $(find -type f -name "Build" -o -name "Build.include") $kerneldir/build
|
||||
)
|
||||
|
||||
# then drop all but the needed Makefiles/Kconfig files
|
||||
rm -rf $kerneldir/build/scripts
|
||||
rm -rf $kerneldir/build/include
|
||||
|
||||
# now copy in parts from the build that we'll need later
|
||||
(
|
||||
cd ${B}
|
||||
|
||||
if [ -s Module.symvers ]; then
|
||||
cp Module.symvers $kerneldir/build
|
||||
fi
|
||||
cp System.map* $kerneldir/build
|
||||
if [ -s Module.markers ]; then
|
||||
cp Module.markers $kerneldir/build
|
||||
fi
|
||||
|
||||
cp -a .config $kerneldir/build
|
||||
|
||||
# This scripts copy blow up QA, so for now, we require a more
|
||||
# complex 'make scripts' to restore these, versus copying them
|
||||
# here. Left as a reference to indicate that we know the scripts must
|
||||
# be dealt with.
|
||||
# cp -a scripts $kerneldir/build
|
||||
|
||||
# although module.lds can be regenerated on target via 'make modules_prepare'
|
||||
# there are several places where 'makes scripts prepare' is done, and that won't
|
||||
# regenerate the file. So we copy it onto the target as a migration to using
|
||||
# modules_prepare
|
||||
cp -a --parents scripts/module.lds $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
if [ -d arch/${ARCH}/scripts ]; then
|
||||
cp -a arch/${ARCH}/scripts $kerneldir/build/arch/${ARCH}
|
||||
fi
|
||||
if [ -f arch/${ARCH}/*lds ]; then
|
||||
cp -a arch/${ARCH}/*lds $kerneldir/build/arch/${ARCH}
|
||||
fi
|
||||
|
||||
rm -f $kerneldir/build/scripts/*.o
|
||||
rm -f $kerneldir/build/scripts/*/*.o
|
||||
|
||||
if [ "${ARCH}" = "powerpc" ]; then
|
||||
if [ -e arch/powerpc/lib/crtsavres.S ] ||
|
||||
[ -e arch/powerpc/lib/crtsavres.o ]; then
|
||||
cp -a --parents arch/powerpc/lib/crtsavres.[So] $kerneldir/build/
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${ARCH}" = "arm64" -o "${ARCH}" = "riscv" ]; then
|
||||
if [ -e arch/${ARCH}/kernel/vdso/vdso.lds ]; then
|
||||
cp -a --parents arch/${ARCH}/kernel/vdso/vdso.lds $kerneldir/build/
|
||||
fi
|
||||
fi
|
||||
if [ "${ARCH}" = "powerpc" ]; then
|
||||
cp -a --parents arch/powerpc/kernel/vdso32/vdso32.lds $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/powerpc/kernel/vdso64/vdso64.lds $kerneldir/build 2>/dev/null || :
|
||||
# v5.19+
|
||||
cp -a --parents arch/powerpc/kernel/vdso/vdso*.lds $kerneldir/build 2>/dev/null || :
|
||||
fi
|
||||
|
||||
cp -a include $kerneldir/build/include
|
||||
|
||||
# we don't usually copy generated files, since they can be rebuilt on the target,
|
||||
# but without this file, we get a forced syncconfig run in v5.8+, which prompts and
|
||||
# breaks workflows.
|
||||
cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || :
|
||||
|
||||
rm -f $kerneldir/include/generated/.vdso-offsets.h.cmd
|
||||
rm -f $kerneldir/build/include/generated/.vdso-offsets.h.cmd
|
||||
rm -f $kerneldir/build/include/generated/.compat_vdso-offsets.h.cmd
|
||||
rm -f $kerneldir/build/include/generated/.vdso32-offsets.h.cmd
|
||||
rm -f $kerneldir/build/include/generated/.vdso64-offsets.h.cmd
|
||||
)
|
||||
|
||||
# now grab the chunks from the source tree that we need
|
||||
(
|
||||
cd ${S}
|
||||
|
||||
cp -a scripts $kerneldir/build
|
||||
|
||||
# for v6.1+ (otherwise we are missing multiple default targets)
|
||||
cp -a --parents Kbuild $kerneldir/build 2>/dev/null || :
|
||||
|
||||
# For v6.6+ the debian packing is moved out to seperate rules file
|
||||
# Remove as we else would ned to RDEPEND on make
|
||||
rm $kerneldir/build/scripts/package/debian/rules 2>/dev/null || :
|
||||
|
||||
# if our build dir had objtool, it will also be rebuilt on target, so
|
||||
# we copy what is required for that build
|
||||
if [ -f ${B}/tools/objtool/objtool ]; then
|
||||
# these are a few files associated with objtool, since we'll need to
|
||||
# rebuild it
|
||||
cp -a --parents tools/build/Build.include $kerneldir/build/
|
||||
cp -a --parents tools/build/Build $kerneldir/build/
|
||||
cp -a --parents tools/build/fixdep.c $kerneldir/build/
|
||||
cp -a --parents tools/scripts/utilities.mak $kerneldir/build/
|
||||
|
||||
# extra files, just in case
|
||||
cp -a --parents tools/objtool/* $kerneldir/build/
|
||||
cp -a --parents tools/lib/* $kerneldir/build/
|
||||
cp -a --parents tools/lib/subcmd/* $kerneldir/build/
|
||||
|
||||
cp -a --parents tools/include/* $kerneldir/build/
|
||||
|
||||
cp -a --parents $(find tools/arch/${ARCH}/ -type f) $kerneldir/build/
|
||||
fi
|
||||
|
||||
if [ "${ARCH}" = "arm64" ]; then
|
||||
# arch/arm64/include/asm/xen references arch/arm
|
||||
cp -a --parents arch/arm/include/asm/xen $kerneldir/build/
|
||||
# arch/arm64/include/asm/opcodes.h references arch/arm
|
||||
cp -a --parents arch/arm/include/asm/opcodes.h $kerneldir/build/
|
||||
|
||||
# v6.1+
|
||||
cp -a --parents arch/arm64/kernel/asm-offsets.c $kerneldir/build/
|
||||
|
||||
cp -a --parents arch/arm64/kernel/vdso/*gettimeofday.* $kerneldir/build/
|
||||
cp -a --parents arch/arm64/kernel/vdso/sigreturn.S $kerneldir/build/
|
||||
cp -a --parents arch/arm64/kernel/vdso/note.S $kerneldir/build/
|
||||
cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/
|
||||
|
||||
cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# 5.13+ needs these tools
|
||||
cp -a --parents arch/arm64/tools/gen-cpucaps.awk $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/arm64/tools/cpucaps $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# 5.19+
|
||||
cp -a --parents arch/arm64/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/arm64/tools/sysreg $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
if [ -e $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk ]; then
|
||||
sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk
|
||||
fi
|
||||
if [ -e $kerneldir/build/arch/arm64/tools/gen-sysreg.awk ]; then
|
||||
sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-sysreg.awk
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${ARCH}" = "powerpc" ]; then
|
||||
# 5.0 needs these files, but don't error if they aren't present in the source
|
||||
cp -a --parents arch/${ARCH}/kernel/syscalls/syscall.tbl $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/${ARCH}/kernel/syscalls/syscalltbl.sh $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/${ARCH}/kernel/syscalls/syscallhdr.sh $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/${ARCH}/kernel/vdso32/* $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/${ARCH}/kernel/vdso64/* $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# v5.19+
|
||||
cp -a --parents arch/powerpc/kernel/vdso/*.S $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/powerpc/kernel/vdso/*gettimeofday.* $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/powerpc/kernel/vdso/gen_vdso*_offsets.sh $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# v6,1+
|
||||
cp -a --parents arch/powerpc/kernel/asm-offsets.c $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/powerpc/kernel/head_booke.h $kerneldir/build/ 2>/dev/null || :
|
||||
fi
|
||||
if [ "${ARCH}" = "riscv" ]; then
|
||||
cp -a --parents arch/riscv/kernel/vdso/*gettimeofday.* $kerneldir/build/
|
||||
cp -a --parents arch/riscv/kernel/vdso/note.S $kerneldir/build/
|
||||
# v6.1+
|
||||
cp -a --parents arch/riscv/kernel/asm-offsets.c $kerneldir/build/
|
||||
if [ -e arch/riscv/kernel/vdso/gen_vdso_offsets.sh ]; then
|
||||
cp -a --parents arch/riscv/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/
|
||||
fi
|
||||
cp -a --parents arch/riscv/kernel/vdso/* $kerneldir/build/ 2>/dev/null || :
|
||||
if [ -e arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh ]; then
|
||||
cp -a --parents arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh $kerneldir/build/
|
||||
fi
|
||||
cp -a --parents arch/riscv/kernel/compat_vdso/* $kerneldir/build/ 2>/dev/null || :
|
||||
fi
|
||||
|
||||
# include the machine specific headers for ARM variants, if available.
|
||||
if [ "${ARCH}" = "arm" ]; then
|
||||
cp -a --parents arch/${ARCH}/mach-*/include $kerneldir/build/
|
||||
|
||||
# include a few files for 'make prepare'
|
||||
cp -a --parents arch/arm/tools/gen-mach-types $kerneldir/build/
|
||||
cp -a --parents arch/arm/tools/mach-types $kerneldir/build/
|
||||
|
||||
# 5.19+
|
||||
cp -a --parents arch/arm/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# ARM syscall table tools only exist for kernels v4.10 or later
|
||||
SYSCALL_TOOLS=$(find arch/arm/tools -name "syscall*")
|
||||
if [ -n "$SYSCALL_TOOLS" ] ; then
|
||||
cp -a --parents $SYSCALL_TOOLS $kerneldir/build/
|
||||
fi
|
||||
|
||||
cp -a --parents arch/arm/kernel/module.lds $kerneldir/build/ 2>/dev/null || :
|
||||
# v6.1+
|
||||
cp -a --parents arch/arm/kernel/asm-offsets.c $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/arm/kernel/signal.h $kerneldir/build/ 2>/dev/null || :
|
||||
fi
|
||||
|
||||
if [ -d arch/${ARCH}/include ]; then
|
||||
cp -a --parents arch/${ARCH}/include $kerneldir/build/
|
||||
fi
|
||||
|
||||
cp -a include $kerneldir/build
|
||||
|
||||
cp -a --parents lib/vdso/* $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
cp -a --parents tools/include/tools/le_byteshift.h $kerneldir/build/
|
||||
cp -a --parents tools/include/tools/be_byteshift.h $kerneldir/build/
|
||||
|
||||
# required for generate missing syscalls prepare phase
|
||||
cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build
|
||||
cp -a --parents $(find arch/arm -type f -name "*.tbl") $kerneldir/build 2>/dev/null || :
|
||||
|
||||
if [ "${ARCH}" = "x86" ]; then
|
||||
# files for 'make prepare' to succeed with kernel-devel
|
||||
cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents $(find arch/x86 -type f -name "syscalltbl.sh") $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents $(find arch/x86 -type f -name "syscallhdr.sh") $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents $(find arch/x86 -type f -name "syscall_64.tbl") $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/tools/relocs_32.c $kerneldir/build/
|
||||
cp -a --parents arch/x86/tools/relocs_64.c $kerneldir/build/
|
||||
cp -a --parents arch/x86/tools/relocs.c $kerneldir/build/
|
||||
cp -a --parents arch/x86/tools/relocs_common.c $kerneldir/build/
|
||||
cp -a --parents arch/x86/tools/relocs.h $kerneldir/build/
|
||||
cp -a --parents arch/x86/tools/gen-insn-attr-x86.awk $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/purgatory/purgatory.c $kerneldir/build/
|
||||
|
||||
# 4.18 + have unified the purgatory files, so we ignore any errors if
|
||||
# these files are not present
|
||||
cp -a --parents arch/x86/purgatory/sha256.h $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/purgatory/sha256.c $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
cp -a --parents arch/x86/purgatory/stack.S $kerneldir/build/
|
||||
cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/purgatory/setup-x86_64.S $kerneldir/build/
|
||||
cp -a --parents arch/x86/purgatory/entry64.S $kerneldir/build/
|
||||
cp -a --parents arch/x86/boot/string.h $kerneldir/build/
|
||||
cp -a --parents arch/x86/boot/string.c $kerneldir/build/
|
||||
cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/
|
||||
|
||||
# objtool requires these files
|
||||
cp -a --parents arch/x86/lib/inat.c $kerneldir/build/ 2>/dev/null || :
|
||||
cp -a --parents arch/x86/lib/insn.c $kerneldir/build/ 2>/dev/null || :
|
||||
|
||||
# v6.1+
|
||||
cp -a --parents arch/x86/kernel/asm-offsets* $kerneldir/build || :
|
||||
# for capabilities.h, vmx.h
|
||||
cp -a --parents arch/x86/kvm/vmx/*.h $kerneldir/build || :
|
||||
# for lapic.h, hyperv.h ....
|
||||
cp -a --parents arch/x86/kvm/*.h $kerneldir/build || :
|
||||
fi
|
||||
|
||||
# moved from arch/mips to all arches for v6.1+
|
||||
cp -a --parents kernel/time/timeconst.bc $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents kernel/bounds.c $kerneldir/build 2>/dev/null || :
|
||||
|
||||
if [ "${ARCH}" = "mips" ]; then
|
||||
cp -a --parents arch/mips/Kbuild.platforms $kerneldir/build/
|
||||
cp --parents $(find -type f -name "Platform") $kerneldir/build
|
||||
cp --parents arch/mips/boot/tools/relocs* $kerneldir/build
|
||||
cp -a --parents arch/mips/kernel/asm-offsets.c $kerneldir/build
|
||||
cp -a --parents Kbuild $kerneldir/build
|
||||
cp -a --parents arch/mips/kernel/syscalls/*.sh $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/mips/kernel/syscalls/*.tbl $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/mips/tools/elf-entry.c $kerneldir/build 2>/dev/null || :
|
||||
fi
|
||||
|
||||
if [ "${ARCH}" = "loongarch" ]; then
|
||||
cp -a --parents arch/loongarch/kernel/asm-offsets.c $kerneldir/build
|
||||
cp -a --parents Kbuild $kerneldir/build
|
||||
cp -a --parents arch/loongarch/vdso/*.S $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/loongarch/vdso/*gettimeofday.* $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/loongarch/vdso/*getcpu.* $kerneldir/build 2>/dev/null || :
|
||||
cp -a --parents arch/loongarch/vdso/gen_vdso*_offsets.sh $kerneldir/build/ 2>/dev/null || :
|
||||
fi
|
||||
|
||||
# required to build scripts/selinux/genheaders/genheaders
|
||||
cp -a --parents security/selinux/include/* $kerneldir/build/
|
||||
|
||||
# copy any localversion files
|
||||
cp -a localversion* $kerneldir/build/ 2>/dev/null || :
|
||||
)
|
||||
|
||||
# Make sure the Makefile and version.h have a matching timestamp so that
|
||||
# external modules can be built
|
||||
touch -r $kerneldir/build/Makefile $kerneldir/build/include/generated/uapi/linux/version.h
|
||||
|
||||
# This fixes a warning that the compilers don't match when building a module
|
||||
# Change: CONFIG_CC_VERSION_TEXT="x86_64-poky-linux-gcc (GCC) 12.2.0" to "gcc (GCC) 12.2.0"
|
||||
# #define CONFIG_CC_VERSION_TEXT "x86_64-poky-linux-gcc (GCC) 12.2.0" to "gcc (GCC) 12.2.0"
|
||||
sed -i 's/CONFIG_CC_VERSION_TEXT=".*\(gcc.*\)"/CONFIG_CC_VERSION_TEXT="\1"/' "$kerneldir/build/.config"
|
||||
sed -i 's/#define CONFIG_CC_VERSION_TEXT ".*\(gcc.*\)"/#define CONFIG_CC_VERSION_TEXT "\1"/' $kerneldir/build/include/generated/autoconf.h
|
||||
sed -i 's/CONFIG_CC_VERSION_TEXT=".*\(gcc.*\)"/CONFIG_CC_VERSION_TEXT="\1"/' $kerneldir/build/include/config/auto.conf
|
||||
|
||||
# make sure these are at least as old as the .config, or rebuilds will trigger
|
||||
touch -r $kerneldir/build/.config $kerneldir/build/include/generated/autoconf.h 2>/dev/null || :
|
||||
touch -r $kerneldir/build/.config $kerneldir/build/include/config/auto.conf* 2>/dev/null || :
|
||||
|
||||
if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then
|
||||
sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(AR)" ".*-linux-.*ar.*$/ifneq "$(AR)" "ar"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(OBJCOPY)" ".*-linux-.*objcopy.*$/ifneq "$(OBJCOPY)" "objcopy"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
if [ "${ARCH}" = "powerpc" ]; then
|
||||
sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm --synthetic"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
else
|
||||
sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
fi
|
||||
sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
# we don't build against the defconfig, so make sure it isn't the trigger for syncconfig
|
||||
sed -i 's/ifneq "$(KBUILD_DEFCONFIG)".*"\(.*\)"/ifneq "\1" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
|
||||
fi
|
||||
|
||||
# make the scripts python3 safe. We won't be running these, and if they are
|
||||
# left as /usr/bin/python rootfs assembly will fail, since we only have python3
|
||||
# in the RDEPENDS (and the python3 package does not include /usr/bin/python)
|
||||
for ss in $(find $kerneldir/build/scripts -type f -name '*'); do
|
||||
sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss"
|
||||
sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss"
|
||||
sed -i 's,/usr/bin/python,/usr/bin/env python3,' "$ss"
|
||||
done
|
||||
|
||||
chown -R root:root ${D}
|
||||
}
|
||||
|
||||
# Ensure we don't race against "make scripts" during cpio
|
||||
do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
|
||||
|
||||
FILES:${PN} = "${KERNEL_BUILD_ROOT} ${KERNEL_SRC_PATH}"
|
||||
FILES:${PN}-dbg += "${KERNEL_BUILD_ROOT}*/build/scripts/*/.debug/*"
|
||||
|
||||
RDEPENDS:${PN} = "bc python3-core flex bison ${TCLIBC}-utils gawk"
|
||||
# 4.15+ needs these next two RDEPENDS
|
||||
RDEPENDS:${PN} += "openssl-dev util-linux"
|
||||
# and x86 needs a bit more for 4.15+
|
||||
RDEPENDS:${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-dev', '', d)}"
|
||||
# powerpc needs elfutils on 6.3+
|
||||
RDEPENDS:${PN} += "${@bb.utils.contains('ARCH', 'powerpc', 'elfutils-dev', '', d)}"
|
||||
# 5.8+ needs gcc-plugins libmpc-dev
|
||||
RDEPENDS:${PN} += "gcc-plugins libmpc-dev"
|
||||
# 5.13+ needs grep for powerpc
|
||||
RDEPENDS:${PN}:append:powerpc = " grep"
|
||||
66
sources/poky/meta/recipes-kernel/linux/linux-dummy.bb
Normal file
66
sources/poky/meta/recipes-kernel/linux/linux-dummy.bb
Normal file
@@ -0,0 +1,66 @@
|
||||
SUMMARY = "Dummy Linux kernel"
|
||||
DESCRIPTION = "Dummy Linux kernel, to be selected as the preferred \
|
||||
provider for virtual/kernel to satisfy dependencies for situations \
|
||||
where you wish to build the kernel externally from the build system."
|
||||
SECTION = "kernel"
|
||||
|
||||
LICENSE = "GPL-2.0-only"
|
||||
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
|
||||
|
||||
PROVIDES += "virtual/kernel"
|
||||
|
||||
inherit deploy linux-dummy
|
||||
|
||||
PACKAGES_DYNAMIC += "^kernel-module-.*"
|
||||
PACKAGES_DYNAMIC += "^kernel-image-.*"
|
||||
PACKAGES_DYNAMIC += "^kernel-firmware-.*"
|
||||
|
||||
PACKAGES += "kernel-modules kernel-vmlinux"
|
||||
FILES:kernel-modules = ""
|
||||
ALLOW_EMPTY:kernel-modules = "1"
|
||||
DESCRIPTION:kernel-modules = "Kernel modules meta package"
|
||||
FILES:kernel-vmlinux = ""
|
||||
ALLOW_EMPTY:kernel-vmlinux = "1"
|
||||
DESCRIPTION:kernel-vmlinux = "Kernel vmlinux meta package"
|
||||
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
COMPATIBLE_HOST = ".*-linux"
|
||||
|
||||
|
||||
SRC_URI = "file://COPYING.GPL"
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_configure() {
|
||||
:
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
:
|
||||
}
|
||||
|
||||
do_compile_kernelmodules() {
|
||||
:
|
||||
}
|
||||
|
||||
do_shared_workdir () {
|
||||
:
|
||||
}
|
||||
|
||||
do_install() {
|
||||
:
|
||||
}
|
||||
|
||||
do_bundle_initramfs() {
|
||||
:
|
||||
}
|
||||
|
||||
do_deploy() {
|
||||
:
|
||||
}
|
||||
|
||||
addtask bundle_initramfs after do_install before do_deploy
|
||||
addtask deploy after do_install
|
||||
addtask shared_workdir after do_compile before do_install
|
||||
addtask compile_kernelmodules
|
||||
339
sources/poky/meta/recipes-kernel/linux/linux-dummy/COPYING.GPL
Normal file
339
sources/poky/meta/recipes-kernel/linux/linux-dummy/COPYING.GPL
Normal file
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
61
sources/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
Normal file
61
sources/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
Normal file
@@ -0,0 +1,61 @@
|
||||
# This recipe tracks the linux-yocto-dev repository as its upstream source.
|
||||
# Since this tree is frequently updated, and periodically rebuilt, AUTOREV is
|
||||
# used to track its contents.
|
||||
#
|
||||
# This recipe is just like other linux-yocto variants, with the only difference
|
||||
# being that to avoid network access during initial parsing, static SRCREVs are
|
||||
# provided and overridden if the preferred kernel provider is linux-yocto-dev.
|
||||
#
|
||||
# To enable this recipe, set PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
|
||||
|
||||
inherit kernel
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
# provide this .inc to set specific revisions
|
||||
include recipes-kernel/linux/linux-yocto-dev-revisions.inc
|
||||
|
||||
KBRANCH = "v6.9/standard/base"
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=master;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
# Set default SRCREVs. Both the machine and meta SRCREVs are statically set
|
||||
# to the korg v3.7 tag, and hence prevent network access during parsing. If
|
||||
# linux-yocto-dev is the preferred provider, they will be overridden to
|
||||
# AUTOREV in following anonymous python routine and resolved when the
|
||||
# variables are finalized.
|
||||
SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
|
||||
SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
|
||||
|
||||
LINUX_VERSION ?= "6.9"
|
||||
LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
# yaml and dtschema are required for 5.16+ device tree validation, libyaml is checked
|
||||
# via pkgconfig, so must always be present, but we can wrap the others to make them
|
||||
# conditional
|
||||
DEPENDS += "libyaml-native"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[dt-validation] = ",,python3-dtschema-native"
|
||||
# we need the wrappers if validation isn't in the packageconfig
|
||||
DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'dt-validation', '', 'python3-dtschema-wrapper-native', d)}"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(qemuarmv5|qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv32|qemuriscv64|qemuloongarch64)$"
|
||||
|
||||
KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb"
|
||||
|
||||
# Functionality flags
|
||||
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
|
||||
KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
|
||||
KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
|
||||
KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
|
||||
|
||||
KERNEL_VERSION_SANITY_SKIP = "1"
|
||||
48
sources/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
Normal file
48
sources/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
Normal file
@@ -0,0 +1,48 @@
|
||||
KBRANCH ?= "v6.6/standard/preempt-rt/base"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
# CVE exclusions
|
||||
include recipes-kernel/linux/cve-exclusion_6.6.inc
|
||||
|
||||
# Skip processing of this recipe if it is not explicitly specified as the
|
||||
# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
|
||||
# to build multiple virtual/kernel providers, e.g. as dependency of
|
||||
# core-image-rt-sdk, core-image-rt.
|
||||
python () {
|
||||
if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
|
||||
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
|
||||
}
|
||||
|
||||
SRCREV_machine ?= "a02058f9508e565ca6d62ff4fda707d1b8894ea0"
|
||||
SRCREV_meta ?= "533e8057057d5eb7400a400e53972c54ac1169b0"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
LINUX_VERSION ?= "6.6.96"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
|
||||
DEPENDS += "openssl-native util-linux-native"
|
||||
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
KCONF_BSP_AUDIT_LEVEL = "1"
|
||||
|
||||
LINUX_KERNEL_TYPE = "preempt-rt"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$"
|
||||
|
||||
KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb"
|
||||
|
||||
# Functionality flags
|
||||
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
|
||||
KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
|
||||
KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
|
||||
KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
|
||||
KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
|
||||
@@ -0,0 +1,33 @@
|
||||
KBRANCH ?= "v6.6/standard/tiny/base"
|
||||
|
||||
LINUX_KERNEL_TYPE = "tiny"
|
||||
KCONFIG_MODE = "--allnoconfig"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
# CVE exclusions
|
||||
include recipes-kernel/linux/cve-exclusion_6.6.inc
|
||||
|
||||
LINUX_VERSION ?= "6.6.96"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
|
||||
DEPENDS += "openssl-native util-linux-native"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
KCONF_BSP_AUDIT_LEVEL = "2"
|
||||
|
||||
SRCREV_machine ?= "d68fff9b37fe90feaef6e6e24d560f07420d2044"
|
||||
SRCREV_meta ?= "533e8057057d5eb7400a400e53972c54ac1169b0"
|
||||
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$"
|
||||
|
||||
# Functionality flags
|
||||
KERNEL_FEATURES = ""
|
||||
|
||||
KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb"
|
||||
81
sources/poky/meta/recipes-kernel/linux/linux-yocto.inc
Normal file
81
sources/poky/meta/recipes-kernel/linux/linux-yocto.inc
Normal file
@@ -0,0 +1,81 @@
|
||||
SUMMARY = "Linux kernel"
|
||||
SECTION = "kernel"
|
||||
LICENSE = "GPL-2.0-only"
|
||||
HOMEPAGE = "https://www.yoctoproject.org/"
|
||||
|
||||
LIC_FILES_CHKSUM ?= "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
|
||||
|
||||
RECIPE_NO_UPDATE_REASON = "Recipe is updated through a separate process"
|
||||
|
||||
# Skip processing of this recipe if it is not explicitly specified as the
|
||||
# PREFERRED_PROVIDER for virtual/kernel. This avoids network access required
|
||||
# by the use of AUTOREV SRCREVs, which are the default for this recipe.
|
||||
python () {
|
||||
if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != d.getVar("PN"):
|
||||
d.delVar("BB_DONT_CACHE")
|
||||
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to %s to enable it" % (d.getVar("PN")))
|
||||
}
|
||||
|
||||
DEPENDS += "xz-native bc-native"
|
||||
DEPENDS:append:aarch64 = " libgcc"
|
||||
KERNEL_CC:append:aarch64 = " ${TOOLCHAIN_OPTIONS}"
|
||||
KERNEL_LD:append:aarch64 = " ${TOOLCHAIN_OPTIONS}"
|
||||
|
||||
DEPENDS:append:nios2 = " libgcc"
|
||||
KERNEL_CC:append:nios2 = " ${TOOLCHAIN_OPTIONS}"
|
||||
KERNEL_LD:append:nios2 = " ${TOOLCHAIN_OPTIONS}"
|
||||
|
||||
DEPENDS:append:arc = " libgcc"
|
||||
KERNEL_CC:append:arc = " ${TOOLCHAIN_OPTIONS}"
|
||||
KERNEL_LD:append:arc = " ${TOOLCHAIN_OPTIONS}"
|
||||
|
||||
KERNEL_FEATURES:append:qemuall=" features/debug/printk.scc features/taskstats/taskstats.scc"
|
||||
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'cfg/efi.scc', '', d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'vfat', 'cfg/fs/vfat.scc', '', d)}"
|
||||
|
||||
# A KMACHINE is the mapping of a yocto $MACHINE to what is built
|
||||
# by the kernel. This is typically the branch that should be built,
|
||||
# and it can be specific to the machine or shared
|
||||
# KMACHINE = "UNDEFINED"
|
||||
|
||||
LINUX_VERSION_EXTENSION ??= "-yocto-${LINUX_KERNEL_TYPE}"
|
||||
|
||||
# Pick up shared functions
|
||||
inherit kernel
|
||||
inherit kernel-yocto
|
||||
|
||||
B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build"
|
||||
|
||||
do_install:append(){
|
||||
if [ -n "${KMETA}" ]; then
|
||||
rm -rf ${STAGING_KERNEL_DIR}/${KMETA}
|
||||
fi
|
||||
}
|
||||
|
||||
# enable kernel-sample for oeqa/runtime/cases's ksample.py test
|
||||
KERNEL_FEATURES:append:qemuall=" features/kernel-sample/kernel-sample.scc"
|
||||
|
||||
KERNEL_DEBUG ?= ""
|
||||
# These used to be version specific, but are now common dependencies. New
|
||||
# tools / dependencies will continue to be added in version specific recipes.
|
||||
DEPENDS += '${@bb.utils.contains_any("ARCH", [ "x86", "arm64", "powerpc" ], "elfutils-native", "", d)}'
|
||||
DEPENDS += "openssl-native util-linux-native"
|
||||
DEPENDS += "gmp-native libmpc-native"
|
||||
|
||||
# Some options depend on CONFIG_PAHOLE_VERSION, so need to make pahole-native available before do_kernel_configme
|
||||
do_kernel_configme[depends] += '${@bb.utils.contains("KERNEL_DEBUG", "True", "pahole-native:do_populate_sysroot", "", d)}'
|
||||
|
||||
EXTRA_OEMAKE += '${@bb.utils.contains("KERNEL_DEBUG", "True", "", "PAHOLE=false", d)}'
|
||||
|
||||
do_devshell:prepend() {
|
||||
# setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native)
|
||||
d.setVar("PKG_CONFIG_DIR", "${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig")
|
||||
d.setVar("PKG_CONFIG_PATH", "${PKG_CONFIG_DIR}:${STAGING_DATADIR_NATIVE}/pkgconfig")
|
||||
d.setVar("PKG_CONFIG_LIBDIR", "${PKG_CONFIG_DIR}")
|
||||
d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1")
|
||||
d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_DIR PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR")
|
||||
}
|
||||
74
sources/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
Normal file
74
sources/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
Normal file
@@ -0,0 +1,74 @@
|
||||
KBRANCH ?= "v6.6/standard/base"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
# CVE exclusions
|
||||
include recipes-kernel/linux/cve-exclusion.inc
|
||||
include recipes-kernel/linux/cve-exclusion_6.6.inc
|
||||
|
||||
# board specific branches
|
||||
KBRANCH:qemuarm ?= "v6.6/standard/arm-versatile-926ejs"
|
||||
KBRANCH:qemuarm64 ?= "v6.6/standard/qemuarm64"
|
||||
KBRANCH:qemumips ?= "v6.6/standard/mti-malta32"
|
||||
KBRANCH:qemuppc ?= "v6.6/standard/qemuppc"
|
||||
KBRANCH:qemuriscv64 ?= "v6.6/standard/base"
|
||||
KBRANCH:qemuriscv32 ?= "v6.6/standard/base"
|
||||
KBRANCH:qemux86 ?= "v6.6/standard/base"
|
||||
KBRANCH:qemux86-64 ?= "v6.6/standard/base"
|
||||
KBRANCH:qemuloongarch64 ?= "v6.6/standard/base"
|
||||
KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64"
|
||||
|
||||
SRCREV_machine:qemuarm ?= "a2c45f6283ecd822468883d493f90ab0cc4f3a8a"
|
||||
SRCREV_machine:qemuarm64 ?= "d72e5d8e6d1a220a18fb2d9848fadbe443c9d555"
|
||||
SRCREV_machine:qemuloongarch64 ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_machine:qemumips ?= "09314f2a0c95b59863247654f75555489cae9e11"
|
||||
SRCREV_machine:qemuppc ?= "7ee481d1b7be6cb8897494430119c4a00d40c29e"
|
||||
SRCREV_machine:qemuriscv64 ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_machine:qemuriscv32 ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_machine:qemux86 ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_machine:qemux86-64 ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_machine:qemumips64 ?= "3b2b3b16411baea07773b9c74093d139a0d0ab25"
|
||||
SRCREV_machine ?= "cfb2162b885f040f7d3d2c95103af0d62ad94b28"
|
||||
SRCREV_meta ?= "533e8057057d5eb7400a400e53972c54ac1169b0"
|
||||
|
||||
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
|
||||
# get the <version>/base branch, which is pure upstream -stable, and the same
|
||||
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
|
||||
# normal PREFERRED_VERSION settings.
|
||||
BBCLASSEXTEND = "devupstream:target"
|
||||
SRCREV_machine:class-devupstream ?= "a5df3a702b2cba82bcfb066fa9f5e4a349c33924"
|
||||
PN:class-devupstream = "linux-yocto-upstream"
|
||||
KBRANCH:class-devupstream = "v6.6/base"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
LINUX_VERSION ?= "6.6.96"
|
||||
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
KCONF_BSP_AUDIT_LEVEL = "1"
|
||||
|
||||
KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$"
|
||||
|
||||
# Functionality flags
|
||||
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
|
||||
KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
|
||||
KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc"
|
||||
KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
|
||||
# libteam ptests from meta-oe needs it
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}"
|
||||
KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc"
|
||||
KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc"
|
||||
KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc"
|
||||
|
||||
INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
|
||||
|
||||
Reference in New Issue
Block a user