-
Notifications
You must be signed in to change notification settings - Fork 5k
WIP: Update kernel to 6.6 #20923
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
WIP: Update kernel to 6.6 #20923
Conversation
Beofre we can build the iso, we need to clone and configure buildroot. This is required to run iso-menuconfig-{arch}.
This target prepare for building an iso or running menuconfig. With this change we can run the iso-menuconfig-* targets without buidling the entire iso.
Previouly it worked only after building the entire iso.
Preveviously we copied the defconfig manauly to the beoard config file. This can be done using the special linux-update-defconfig target. With this change we don't need to keep the KERNEL_VERSION in the Makefile, making future upgrade easier.
- Update to longterm kernel 6.6.92[1] - aarch64: - Enable Virtio GPU, needed for krunkit driver - Enable ACPI (not enabled by defualt after updating the kernel version) Generated using by running: make iso-menuconfig-aarch64 make linux-menuconfig-aarch64 make iso-menuconfig-x86_64 make linux-menuconfig-x86_64 This generated many changes in the configs, maybe they were updated manually previously. With this change we can boot krunkit with the built iso: % minikube start -p krunkit --driver krunkit --container-runtime containerd --iso-url file://$PWD/minikube-arm64-vgpu.iso 😄 [krunkit] minikube v1.36.0 on Darwin 15.5 (arm64) ✨ Using the krunkit (experimental) driver based on user configuration 👍 Starting "krunkit" primary control-plane node in "krunkit" cluster 🔥 Creating krunkit VM (CPUs=2, Memory=6000MB, Disk=20000MB) ... 📦 Preparing Kubernetes v1.33.1 on containerd 1.7.23 ... ▪ Generating certificates and keys ... ▪ Booting up control plane ... ▪ Configuring RBAC rules ... 🔗 Configuring bridge CNI (Container Networking Interface) ... 🔎 Verifying Kubernetes components... ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5 🌟 Enabled addons: storage-provisioner, default-storageclass 🏄 Done! kubectl is now configured to use "krunkit" cluster and "default" namespace by default And now we have accelerated gpu: $ tree /dev/dri /dev/dri |-- by-path | |-- platform-a007000.virtio_mmio-card -> ../card0 | `-- platform-a007000.virtio_mmio-render -> ../renderD128 |-- card0 `-- renderD128 For example usage of the accelerated GPU see: https://github.com/medyagh/ai-playground-minikube/tree/main/macos [1] https://www.kernel.org/
With this change we can boot qemu driver and terminating krunkit using the HTTP API works. However we can boot only with --no-kubernetes. Booting normally fails in preflight step since we missing required kernel configuration.
Since use virtual machine we don't need support for specific platforms.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: nirs The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @nirs. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
@@ -34,49 +34,6 @@ CONFIG_PROFILING=y | |||
CONFIG_KEXEC=y | |||
CONFIG_KEXEC_FILE=y | |||
CONFIG_CRASH_DUMP=y | |||
CONFIG_ARCH_ACTIONS=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could this possibly affect emultation ? like running a X86 arch on Arm ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it is related. This was done via make linux-menuconfig-aarch64
, entering platform support and disable all platforms, since we run in vm. If we have issues we can enable it later.
@@ -325,6 +316,18 @@ minikube-iso-%: deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/ | |||
mv $(BUILD_DIR)/buildroot/output-x86_64/images/rootfs.iso9660 $(BUILD_DIR)/minikube-amd64.iso; \ | |||
fi; | |||
|
|||
.PHONY: buildroot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consider adding a a comment starting with "##"
that will be shown in "make help"
for example
generate-docs: extract out/minikube ## Automatically generate commands documentation.
@afbjorklund this is very early but you may want to review and suggest how we should do this in a better way. |
Update kernel to longterm kernel 6.6.92.
Improve the makefile to make it easier to work on the iso.
Upgrading the kernel to 6.6 does not work since some configuration is missing, so I started with default kernel configuration.
The next steps:
Status: