diff --git a/tools/packaging/kernel/build-kernel.sh b/tools/packaging/kernel/build-kernel.sh index 2def8f1c18..16cb755109 100755 --- a/tools/packaging/kernel/build-kernel.sh +++ b/tools/packaging/kernel/build-kernel.sh @@ -89,6 +89,7 @@ Options: -c : Path to config file to build the kernel. -d : Enable bash debug. -e : Enable experimental kernel. + -E : Enable arch-specific experimental kernel, arch info offered by "-a". -f : Enable force generate config when setup. -g : GPU vendor, intel or nvidia. -h : Display this help. @@ -462,7 +463,7 @@ install_kata() { } main() { - while getopts "a:b:c:defg:hk:p:st:v:x:" opt; do + while getopts "a:b:c:deEfg:hk:p:t:v:x:" opt; do case "$opt" in a) arch_target="${OPTARG}" @@ -480,6 +481,9 @@ main() { e) build_type="experimental" ;; + E) + build_type="arch-experimental" + ;; f) force_setup_generate_config="true" ;; @@ -525,6 +529,17 @@ main() { if [ -z "$kernel_version" ]; then if [[ ${build_type} == "experimental" ]]; then kernel_version=$(get_from_kata_deps "assets.kernel-experimental.tag") + elif [[ ${build_type} == "arch-experimental" ]]; then + case "${arch_target}" in + "aarch64") + build_type="arm-experimental" + kernel_version=$(get_from_kata_deps "assets.arm-kernel-experimental.version") + ;; + *) + info "No arch-specific experimental kernel supported, using experimental one instead" + kernel_version=$(get_from_kata_deps "assets.kernel-experimental.tag") + ;; + esac elif [[ "${conf_guest}" == "tdx" ]]; then kernel_version=$(get_from_kata_deps "assets.kernel.tdx.tag") else diff --git a/versions.yaml b/versions.yaml index 50d07d23c5..b68babd2e4 100644 --- a/versions.yaml +++ b/versions.yaml @@ -164,6 +164,11 @@ assets: url: "https://cdn.kernel.org/pub/linux/kernel/v5.x/" tag: "v5.13.10" + arm-kernel-experimental: + description: "Linux kernel with cpu/mem hotplug support on arm64" + url: "https://cdn.kernel.org/pub/linux/kernel/v5.x/" + version: "v5.15.7" + externals: description: "Third-party projects used by the system"