| # |
| # Copyright 2024 Google LLC |
| # |
| # This program is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU General Public License |
| # version 2 as published by the Free Software Foundation. |
| # |
| # 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. |
| # |
| # shellcheck disable=SC2034,SC2154 |
| |
| EAPI=7 |
| |
| CROS_WORKON_COMMIT="b2d0a664ae8e0c3e2eca83b2f0bd44141833bb29" |
| CROS_WORKON_TREE="e69bd3eb513eb99d46f505f2fb3d45765bda6b18" |
| CROS_WORKON_REPO="https://cos.googlesource.com" |
| CROS_WORKON_PROJECT="third_party/kernel" |
| CROS_WORKON_LOCALNAME="kernel/v6.6" |
| |
| # This must be inherited *after* EGIT/CROS_WORKON variables defined |
| inherit cros-workon cos-kernel |
| |
| cos_kernel_config_arch() { |
| case ${ARCH} in |
| amd64) echo "x86";; |
| arm64) echo "arm64";; |
| *) die "Unknown architecture: ${ARCH}";; |
| esac |
| } |
| |
| STRIP_MASK+=" /usr/src/${P}/build/vmlinux" |
| STRIP_MASK+=" *.ko" |
| |
| DESCRIPTION="COS Linux Kernel 6.6" |
| HOMEPAGE="https://cloud.google.com/container-optimized-os" |
| KEYWORDS="*" |
| IUSE="module_sign lockdown gpu +apply_patches tdx +nofragments" |
| |
| COS_KERNEL_X509_GENKEY="${FILESDIR}/x509.genkey" |
| # Use in-tree kernel config |
| CHROMEOS_KERNEL_CONFIG="arch/$(cos_kernel_config_arch)/configs/lakitu_defconfig" |
| |
| src_configure() { |
| cos-kernel_src_configure |
| } |
| |
| # Change for EAPI=6 |
| src_prepare() { |
| default |
| cos-kernel_src_prepare |
| if use tdx; then |
| for patch in "${FILESDIR}"/tdx/*.patch; do |
| if [[ -f "${patch}" ]]; then |
| eapply "${patch}" |
| fi |
| done |
| fi |
| for patch in "${FILESDIR}"/rdma/*.patch; do |
| if [[ -f "${patch}" ]]; then |
| eapply "${patch}" |
| fi |
| done |
| } |
| |
| src_install() { |
| cos-kernel_src_install |
| |
| } |
| |
| # Change the following (commented out) number to the next prime number |
| # when you change base.config. This workaround will force the |
| # ChromeOS CQ to uprev sys-kernel/kernel-6_6 ebuild and pick up the |
| # configuration changes. In absence of this workaround the config changes |
| # would not be picked up unless there was a code change in kernel source tree. |
| # |
| # NOTE: There's nothing magic keeping this number prime but you just need to |
| # make _any_ change to this file. ...so why not keep it prime? |
| # |
| # The coolest prime number is: 5 |