mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-27 11:31:05 +00:00
gpu: fix build guest kernel with nvidia gpu
- enable CONFIG_MTRR,CONFIG_X86_PAT on x86_64 for nvidia gpu - optimize -f of build-kernel.sh, clean old kernel path and config before setup - add kernel 5.16.x Fixes: #9143 Signed-off-by: Jimmy-Xu <xjimmyshcn@gmail.com>
This commit is contained in:
parent
daab76de36
commit
5ada7329b8
@ -99,7 +99,7 @@ Options:
|
||||
-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.
|
||||
-f : Enable force generate config when setup, old kernel path and config will be removed.
|
||||
-g <vendor> : GPU vendor, intel or nvidia.
|
||||
-h : Display this help.
|
||||
-H <deb|rpm> : Linux headers for guest fs module building.
|
||||
@ -174,12 +174,19 @@ get_kernel() {
|
||||
major_version=$(echo "${version}" | cut -d. -f1)
|
||||
kernel_tarball="linux-${version}.tar.xz"
|
||||
|
||||
if [ ! -f sha256sums.asc ] || ! grep -q "${kernel_tarball}" sha256sums.asc; then
|
||||
if [[ -f "${kernel_tarball}.sha256" ]] && (grep -qF "${kernel_tarball}" "${kernel_tarball}.sha256"); then
|
||||
info "Restore valid ${kernel_tarball}.sha256 to sha256sums.asc"
|
||||
cp -f "${kernel_tarball}.sha256" sha256sums.asc
|
||||
else
|
||||
shasum_url="https://cdn.kernel.org/pub/linux/kernel/v${major_version}.x/sha256sums.asc"
|
||||
info "Download kernel checksum file: sha256sums.asc from ${shasum_url}"
|
||||
curl --fail -OL "${shasum_url}"
|
||||
if (grep -F "${kernel_tarball}" sha256sums.asc >"${kernel_tarball}.sha256"); then
|
||||
info "sha256sums.asc is valid, ${kernel_tarball}.sha256 generated"
|
||||
else
|
||||
die "sha256sums.asc is invalid"
|
||||
fi
|
||||
fi
|
||||
grep "${kernel_tarball}" sha256sums.asc >"${kernel_tarball}.sha256"
|
||||
|
||||
if [ -f "${kernel_tarball}" ] && ! sha256sum -c "${kernel_tarball}.sha256"; then
|
||||
info "invalid kernel tarball ${kernel_tarball} removing "
|
||||
@ -290,6 +297,12 @@ get_kernel_frag_path() {
|
||||
all_configs="${all_configs} ${conf_configs}"
|
||||
fi
|
||||
|
||||
if [[ "$force_setup_generate_config" == "true" ]]; then
|
||||
info "Remove existing config ${config_path} due to '-f'"
|
||||
[ -f "$config_path" ] && rm -f "${config_path}"
|
||||
[ -f "$config_path".old ] && rm -f "${config_path}".old
|
||||
fi
|
||||
|
||||
info "Constructing config from fragments: ${config_path}"
|
||||
|
||||
|
||||
@ -388,6 +401,11 @@ setup_kernel() {
|
||||
local kernel_path=${1:-}
|
||||
[ -n "${kernel_path}" ] || die "kernel_path not provided"
|
||||
|
||||
if [[ "$force_setup_generate_config" == "true" ]] && [[ -d "$kernel_path" ]];then
|
||||
info "Remove existing directory ${kernel_path} due to '-f'"
|
||||
rm -rf "${kernel_path}"
|
||||
fi
|
||||
|
||||
if [ -d "$kernel_path" ]; then
|
||||
info "${kernel_path} already exist"
|
||||
if [[ "${force_setup_generate_config}" != "true" ]];then
|
||||
@ -541,7 +559,7 @@ install_kata() {
|
||||
}
|
||||
|
||||
main() {
|
||||
while getopts "a:b:c:deEfg:hH:k:mp:t:u:v:x" opt; do
|
||||
while getopts "a:b:c:deEfg:hH:k:mp:st:u:v:x" opt; do
|
||||
case "$opt" in
|
||||
a)
|
||||
arch_target="${OPTARG}"
|
||||
@ -599,6 +617,10 @@ main() {
|
||||
x)
|
||||
conf_guest="confidential"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: invalid argument '$opt'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
@ -18,6 +18,8 @@ CONFIG_X86_MCE=y
|
||||
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
|
||||
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
|
||||
CONFIG_MEMORY_FAILURE=y
|
||||
CONFIG_MTRR=y
|
||||
CONFIG_X86_PAT=y
|
||||
|
||||
# CC related configs
|
||||
CONFIG_CRYPTO_ECC=y
|
||||
|
@ -7,7 +7,6 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN
|
||||
CONFIG_IP_NF_TARGET_CLUSTERIP
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN
|
||||
CONFIG_CLK_LGM_CGU
|
||||
CONFIG_MEMCG_SWAP
|
||||
CONFIG_NET_SCH_CBQ
|
||||
CONFIG_NF_NAT_IPV4
|
||||
CONFIG_NF_NAT_NEEDED
|
||||
|
@ -1 +1 @@
|
||||
125
|
||||
126
|
||||
|
1
tools/packaging/kernel/patches/5.16.x/no_patches.txt
Normal file
1
tools/packaging/kernel/patches/5.16.x/no_patches.txt
Normal file
@ -0,0 +1 @@
|
||||
|
Loading…
Reference in New Issue
Block a user