diff --git a/Makefile b/Makefile index b44f1767e01a..5f8d4600266d 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ KIC_VERSION ?= $(shell grep -E "Version =" pkg/drivers/kic/types.go | cut -d \" HUGO_VERSION ?= $(shell grep -E "HUGO_VERSION = \"" netlify.toml | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.36.0 +ISO_VERSION ?= v1.36.0-1748291054-20826 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) @@ -79,7 +79,7 @@ MINIKUBE_BUCKET ?= minikube/releases MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET} MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download -KERNEL_VERSION ?= 5.10.207 +KERNEL_VERSION ?= 6.6.92 # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` GOLINT_VERSION ?= v2.1.5 diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index cb4cfc40937e..cd145568ba35 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -201,7 +201,7 @@ func initMinikubeFlags() { startCmd.Flags().String(network, "", "network to run minikube with. Used by docker/podman, qemu, kvm, and vfkit drivers. If left empty, minikube will create a new network.") startCmd.Flags().StringVarP(&outputFormat, "output", "o", "text", "Format to print stdout in. Options include: [text,json]") startCmd.Flags().String(trace, "", "Send trace events. Options include: [gcp]") - startCmd.Flags().Int(extraDisks, 0, "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit, kvm2, qemu2, and vfkit drivers)") + startCmd.Flags().Int(extraDisks, 0, "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit, kvm2, qemu2, vfkit, and krunkit drivers)") startCmd.Flags().Duration(certExpiration, constants.DefaultCertExpiration, "Duration until minikube certificate expiration, defaults to three years (26280h).") startCmd.Flags().String(binaryMirror, "", "Location to fetch kubectl, kubelet, & kubeadm binaries from.") startCmd.Flags().Bool(disableOptimizations, false, "If set, disables optimizations that are set for local Kubernetes. Including decreasing CoreDNS replicas from 2 to 1. Defaults to false.") @@ -474,6 +474,8 @@ func getNetwork(driverName string) string { return validateQemuNetwork(n) } else if driver.IsVFKit(driverName) { return validateVfkitNetwork(n) + } else if driver.IsKrunkit(driverName) { + return validateKrunkitNetwork(n) } return n } @@ -532,6 +534,17 @@ func validateVfkitNetwork(n string) string { return n } +func validateKrunkitNetwork(n string) string { + if runtime.GOOS != "darwin" && runtime.GOARCH != "arm64" { + exit.Message(reason.Usage, "The krunkit driver is only supported on macOS arm64 machines") + } + if err := vmnet.ValidateHelper(); err != nil { + vmnetErr := err.(*vmnet.Error) + exit.Message(vmnetErr.Kind, "The krunkit driver requires vment-helper: {{.reason}}", out.V{"reason": err}) + } + return n +} + // generateNewConfigFromFlags generate a config.ClusterConfig based on flags func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime string, drvName string) config.ClusterConfig { var cc config.ClusterConfig @@ -997,7 +1010,7 @@ func interpretWaitFlag(cmd cobra.Command) map[string]bool { } func checkExtraDiskOptions(cmd *cobra.Command, driverName string) { - supportedDrivers := []string{driver.HyperKit, driver.KVM2, driver.QEMU2, driver.VFKit} + supportedDrivers := []string{driver.HyperKit, driver.KVM2, driver.QEMU2, driver.VFKit, driver.Krunkit} if cmd.Flags().Changed(extraDisks) { supported := false diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk index dcc26010ee0b..1bbd4201bfe4 100644 --- a/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk @@ -5,7 +5,7 @@ ################################################################################ HYPERV_DAEMONS_VERSION = $(call qstrip,$(BR2_LINUX_KERNEL_VERSION)) -HYPERV_DAEMONS_SITE = https://www.kernel.org/pub/linux/kernel/v5.x +HYPERV_DAEMONS_SITE = https://www.kernel.org/pub/linux/kernel/v6.x HYPERV_DAEMONS_SOURCE = linux-$(HYPERV_DAEMONS_VERSION).tar.xz define HYPERV_DAEMONS_BUILD_CMDS diff --git a/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg b/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg index e06366b9ab2c..90b7df259543 100644 --- a/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg @@ -1,7 +1,10 @@ set default="0" -set timeout="5" +set timeout="0" menuentry "Buildroot" { - linux /boot/bzimage console=ttyAMA0 # kernel + # The console depends on the driver: + # qemu: console=ttyAMA0 + # vfkit,krunkit: console=hvc0 + linux /boot/bzimage console=ttyAMA0 console=hvc0 initrd /boot/initrd # rootfs } diff --git a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig index 44ce8d5d8156..5f79d863c74b 100644 --- a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig @@ -1,17 +1,3 @@ -CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y -CONFIG_KPROBE_EVENTS=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_INFO_BTF=y -CONFIG_IKHEADERS=y -CONFIG_BPF_LSM=y -CONFIG_BPF_SYSCALL=y -CONFIG_FTRACE_SYSCALLS=y -CONFIG_FTRACE=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_BRIDGE_NETFILTER=y -CONFIG_PCI=y -CONFIG_TMPFS=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_AUDIT=y @@ -25,14 +11,11 @@ CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y +CONFIG_IKHEADERS=y CONFIG_NUMA_BALANCING=y CONFIG_MEMCG=y -CONFIG_MEMCG_SWAP=y CONFIG_BLK_CGROUP=y -CONFIG_BLK_DEV_RBD=m -CONFIG_CEPH_LIB=y -CONFIG_CEPH_FS=m -CONFIG_CEPH_FS_POSIX_ACL=y +CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y @@ -40,179 +23,68 @@ CONFIG_CPUSETS=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y CONFIG_USER_NS=y CONFIG_SCHED_AUTOGROUP=y CONFIG_BLK_DEV_INITRD=y CONFIG_KALLSYMS_ALL=y +CONFIG_BPF_LSM=y +CONFIG_BPF_SYSCALL=y # CONFIG_COMPAT_BRK is not set CONFIG_PROFILING=y -CONFIG_ARCH_ACTIONS=y -CONFIG_ARCH_AGILEX=y -CONFIG_ARCH_SUNXI=y -CONFIG_ARCH_ALPINE=y -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_BCM_IPROC=y -CONFIG_ARCH_BERLIN=y -CONFIG_ARCH_BRCMSTB=y -CONFIG_ARCH_EXYNOS=y -CONFIG_ARCH_K3=y -CONFIG_ARCH_LAYERSCAPE=y -CONFIG_ARCH_LG1K=y -CONFIG_ARCH_HISI=y -CONFIG_ARCH_MEDIATEK=y -CONFIG_ARCH_MESON=y -CONFIG_ARCH_MVEBU=y -CONFIG_ARCH_MXC=y -CONFIG_ARCH_QCOM=y -CONFIG_ARCH_RENESAS=y -CONFIG_ARCH_ROCKCHIP=y -CONFIG_ARCH_S32=y -CONFIG_ARCH_SEATTLE=y -CONFIG_ARCH_STRATIX10=y -CONFIG_ARCH_SYNQUACER=y -CONFIG_ARCH_TEGRA=y -CONFIG_ARCH_SPRD=y -CONFIG_ARCH_THUNDER=y -CONFIG_ARCH_THUNDER2=y -CONFIG_ARCH_UNIPHIER=y -CONFIG_ARCH_VEXPRESS=y -CONFIG_ARCH_VISCONTI=y -CONFIG_ARCH_XGENE=y -CONFIG_ARCH_ZX=y -CONFIG_ARCH_ZYNQMP=y -CONFIG_ARM64_VA_BITS_48=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_NR_CPUS=256 CONFIG_NUMA=y -CONFIG_SECCOMP=y +CONFIG_NODES_SHIFT=4 +CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y CONFIG_CRASH_DUMP=y -CONFIG_XEN=y -CONFIG_COMPAT=y -CONFIG_RANDOMIZE_BASE=y CONFIG_HIBERNATION=y CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y CONFIG_ENERGY_MODEL=y -CONFIG_ARM_CPUIDLE=y -CONFIG_ARM_PSCI_CPUIDLE=y -CONFIG_CPU_FREQ=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_EINJ=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y CONFIG_CPUFREQ_DT=y -CONFIG_ACPI_CPPC_CPUFREQ=m -CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m -CONFIG_ARM_ARMADA_37XX_CPUFREQ=y -CONFIG_ARM_SCPI_CPUFREQ=y -CONFIG_ARM_IMX_CPUFREQ_DT=m -CONFIG_ARM_QCOM_CPUFREQ_NVMEM=y -CONFIG_ARM_QCOM_CPUFREQ_HW=y -CONFIG_ARM_RASPBERRYPI_CPUFREQ=m -CONFIG_ARM_TEGRA186_CPUFREQ=y -CONFIG_QORIQ_CPUFREQ=y -CONFIG_ARM_SCPI_PROTOCOL=y -CONFIG_RASPBERRYPI_FIRMWARE=y -CONFIG_INTEL_STRATIX10_SERVICE=y -CONFIG_INTEL_STRATIX10_RSU=m +CONFIG_DMI_SYSFS=y CONFIG_EFI_CAPSULE_LOADER=y -CONFIG_IMX_SCU=y -CONFIG_IMX_SCU_PD=y -CONFIG_ACPI=y -CONFIG_ACPI_APEI=y -CONFIG_ACPI_APEI_GHES=y -CONFIG_ACPI_APEI_PCIEAER=y -CONFIG_ACPI_APEI_MEMORY_FAILURE=y -CONFIG_ACPI_APEI_EINJ=y -CONFIG_VIRTUALIZATION=y CONFIG_KVM=y -CONFIG_ARM64_CRYPTO=y -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_SHA512_ARM64_CE=m -CONFIG_CRYPTO_SHA3_ARM64=m -CONFIG_CRYPTO_SM3_ARM64_CE=m -CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -CONFIG_CRYPTO_CHACHA20_NEON=m -CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_JUMP_LABEL=y +CONFIG_COMPAT_32BIT_TIME=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=y CONFIG_KSM=y CONFIG_MEMORY_FAILURE=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y +CONFIG_XFRM_USER=m +CONFIG_XFRM_STATISTICS=y CONFIG_INET=y CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_IPV6=m -CONFIG_IP_SET=y -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORTNET=m -CONFIG_IP_SET_HASH_IPMAC=m -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_LIST_SET=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -CONFIG_IP_VS_DEBUG=y -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_FO=m -CONFIG_IP_VS_OVF=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m -CONFIG_IP_VS_NFCT=y -CONFIG_NF_LOG_ARP=m -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_MATCH_RPFILTER=y -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_MANGLE=y -CONFIG_IP_NF_RAW=m -CONFIG_IP6_NF_IPTABLES=y -CONFIG_IP6_NF_MATCH_IPV6HEADER=y -CONFIG_IP6_NF_FILTER=y -CONFIG_IP6_NF_TARGET_REJECT=y -CONFIG_IP6_NF_MANGLE=y CONFIG_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m CONFIG_NETFILTER_NETLINK_ACCT=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NF_CONNTRACK=m @@ -242,7 +114,6 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m @@ -291,16 +162,64 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_SET=y +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_DEBUG=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_NFCT=y +CONFIG_NF_LOG_ARP=m CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m CONFIG_BRIDGE=m CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_OCELOT=m CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -309,8 +228,11 @@ CONFIG_NET_SCH_CBS=m CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_TAPRIO=m CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_INGRESS=y CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_BPF=y CONFIG_NET_CLS_FLOWER=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_GACT=m @@ -321,12 +243,9 @@ CONFIG_QRTR_SMD=m CONFIG_QRTR_TUN=m CONFIG_BPF_JIT=y CONFIG_CAN=m -CONFIG_CAN_RCAR=m -CONFIG_CAN_RCAR_CANFD=m CONFIG_CAN_FLEXCAN=m CONFIG_BT=m CONFIG_BT_HIDP=m -# CONFIG_BT_HS is not set # CONFIG_BT_LE is not set CONFIG_BT_LEDS=y # CONFIG_BT_DEBUGFS is not set @@ -341,46 +260,25 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y +CONFIG_CEPH_LIB=y CONFIG_NFC=m CONFIG_NFC_NCI=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_PCI=y CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y CONFIG_PCI_IOV=y CONFIG_PCI_PASID=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_PCI_AARDVARK=y -CONFIG_PCI_TEGRA=y -CONFIG_PCIE_RCAR_HOST=y -CONFIG_PCIE_RCAR_EP=y CONFIG_PCI_HOST_GENERIC=y -CONFIG_PCI_XGENE=y -CONFIG_PCIE_ALTERA=y -CONFIG_PCIE_ALTERA_MSI=y -CONFIG_PCI_HOST_THUNDER_PEM=y -CONFIG_PCI_HOST_THUNDER_ECAM=y -CONFIG_PCIE_ROCKCHIP_HOST=m -CONFIG_PCIE_BRCMSTB=m -CONFIG_PCI_LAYERSCAPE=y -CONFIG_PCIE_LAYERSCAPE_GEN4=y -CONFIG_PCI_HISI=y -CONFIG_PCIE_QCOM=y -CONFIG_PCIE_ARMADA_8K=y -CONFIG_PCIE_KIRIN=y -CONFIG_PCIE_HISI_STB=y -CONFIG_PCIE_TEGRA194_HOST=m +CONFIG_PCI_MESON=m CONFIG_PCI_ENDPOINT=y CONFIG_PCI_ENDPOINT_CONFIGFS=y CONFIG_PCI_EPF_TEST=m CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y -CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y -CONFIG_HISILICON_LPC=y CONFIG_SIMPLE_PM_BUS=y -CONFIG_FSL_MC_BUS=y -CONFIG_TEGRA_ACONNECT=m CONFIG_MTD=y CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y @@ -394,14 +292,13 @@ CONFIG_MTD_DATAFLASH=y CONFIG_MTD_SST25L=y CONFIG_MTD_RAW_NAND=y CONFIG_MTD_NAND_DENALI_DT=y -CONFIG_MTD_NAND_MARVELL=y -CONFIG_MTD_NAND_FSL_IFC=y -CONFIG_MTD_NAND_QCOM=y CONFIG_MTD_SPI_NOR=y -CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_OF=y +CONFIG_OF_OVERLAY=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_NBD=m CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_NVME=m CONFIG_SRAM=y CONFIG_PCI_ENDPOINT_TEST=m @@ -410,93 +307,64 @@ CONFIG_EEPROM_AT25=m CONFIG_UACCE=m # CONFIG_SCSI_PROC_FS is not set CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_SAS_LIBSAS=y CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_HISI_SAS=y -CONFIG_SCSI_HISI_SAS_PCI=y CONFIG_MEGARAID_SAS=y CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_UFSHCD=y CONFIG_SCSI_UFSHCD_PLATFORM=y -CONFIG_SCSI_UFS_QCOM=m -CONFIG_SCSI_UFS_HISI=y CONFIG_ATA=y CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_AHCI_CEVA=y -CONFIG_AHCI_MVEBU=y -CONFIG_AHCI_XGENE=y CONFIG_AHCI_QORIQ=y CONFIG_SATA_SIL24=y -CONFIG_SATA_RCAR=y -CONFIG_PATA_PLATFORM=y -CONFIG_PATA_OF_PLATFORM=y CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_BLK_DEV_DM=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=y +CONFIG_DM_MULTIPATH=m CONFIG_NETDEVICES=y CONFIG_MACVLAN=m CONFIG_MACVTAP=m +CONFIG_VXLAN=y CONFIG_GENEVE=m CONFIG_TUN=y CONFIG_VETH=m CONFIG_VIRTIO_NET=y -CONFIG_NET_DSA_MSCC_FELIX=m CONFIG_AMD_XGBE=y -CONFIG_NET_XGENE=y CONFIG_ATL1C=m CONFIG_BCMGENET=m CONFIG_BNX2X=m CONFIG_MACB=y CONFIG_THUNDER_NIC_PF=y -CONFIG_FEC=y -CONFIG_FSL_FMAN=y -CONFIG_FSL_DPAA_ETH=y -CONFIG_FSL_DPAA2_ETH=y -CONFIG_FSL_ENETC=y -CONFIG_FSL_ENETC_VF=y -CONFIG_FSL_ENETC_QOS=y -CONFIG_HIX5HD2_GMAC=y -CONFIG_HNS_DSAF=y -CONFIG_HNS_ENET=y -CONFIG_HNS3=y -CONFIG_HNS3_HCLGE=y -CONFIG_HNS3_ENET=y CONFIG_E1000=y CONFIG_E1000E=y CONFIG_IGB=y CONFIG_IGBVF=y -CONFIG_MVNETA=y -CONFIG_MVPP2=y +CONFIG_MVMDIO=y CONFIG_SKY2=y CONFIG_MLX4_EN=m CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y CONFIG_QCOM_EMAC=m CONFIG_RMNET=m -CONFIG_SH_ETH=y -CONFIG_RAVB=y -CONFIG_SMC91X=y CONFIG_SMSC911X=y -CONFIG_SNI_AVE=y -CONFIG_SNI_NETSEC=y CONFIG_STMMAC_ETH=m -CONFIG_TI_K3_AM65_CPSW_NUSS=y -CONFIG_QCOM_IPA=m -CONFIG_MDIO_BUS_MUX_MMIOREG=y -CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y CONFIG_AQUANTIA_PHY=y +CONFIG_BROADCOM_PHY=m CONFIG_MARVELL_PHY=m CONFIG_MARVELL_10G_PHY=m -CONFIG_MESON_GXL_PHY=m CONFIG_MICREL_PHY=y CONFIG_MICROSEMI_PHY=y CONFIG_AT803X_PHY=y CONFIG_REALTEK_PHY=m CONFIG_ROCKCHIP_PHY=y CONFIG_VITESSE_PHY=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -510,7 +378,6 @@ CONFIG_USB_NET_PLUSB=m CONFIG_USB_NET_MCS7830=m CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m -CONFIG_ATH10K_SNOC=m CONFIG_BRCMFMAC=m CONFIG_MWIFIEX=m CONFIG_MWIFIEX_PCIE=m @@ -519,51 +386,25 @@ CONFIG_WLCORE_SDIO=m CONFIG_INPUT_EVDEV=y CONFIG_KEYBOARD_ADC=m CONFIG_KEYBOARD_GPIO=y -CONFIG_KEYBOARD_SNVS_PWRKEY=m -CONFIG_KEYBOARD_IMX_SC_KEY=m CONFIG_KEYBOARD_CROS_EC=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ATMEL_MXT=m CONFIG_INPUT_MISC=y -CONFIG_INPUT_PM8941_PWRKEY=y -CONFIG_INPUT_PM8XXX_VIBRATOR=m -CONFIG_INPUT_HISI_POWERKEY=y # CONFIG_SERIO_SERPORT is not set -CONFIG_SERIO_AMBAKMI=y CONFIG_LEGACY_PTY_COUNT=16 CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_16550A_VARIANTS=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_BCM2835AUX=y CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_OMAP=y -CONFIG_SERIAL_8250_MT6577=y -CONFIG_SERIAL_8250_UNIPHIER=y CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_MESON=y -CONFIG_SERIAL_MESON_CONSOLE=y -CONFIG_SERIAL_SAMSUNG=y -CONFIG_SERIAL_SAMSUNG_CONSOLE=y -CONFIG_SERIAL_TEGRA=y -CONFIG_SERIAL_TEGRA_TCU=y -CONFIG_SERIAL_IMX=y -CONFIG_SERIAL_IMX_CONSOLE=y -CONFIG_SERIAL_SH_SCI=y -CONFIG_SERIAL_MSM=y -CONFIG_SERIAL_MSM_CONSOLE=y -CONFIG_SERIAL_QCOM_GENI=y -CONFIG_SERIAL_QCOM_GENI_CONSOLE=y CONFIG_SERIAL_XILINX_PS_UART=y CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y CONFIG_SERIAL_FSL_LPUART=y CONFIG_SERIAL_FSL_LPUART_CONSOLE=y CONFIG_SERIAL_FSL_LINFLEXUART=y CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y -CONFIG_SERIAL_MVEBU_UART=y -CONFIG_SERIAL_OWL=y CONFIG_SERIAL_DEV_BUS=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m @@ -574,153 +415,53 @@ CONFIG_TCG_TIS_I2C_INFINEON=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=y CONFIG_I2C_MUX_PCA954x=y -CONFIG_I2C_BCM2835=m CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_GPIO=m -CONFIG_I2C_IMX=y -CONFIG_I2C_IMX_LPI2C=y -CONFIG_I2C_MESON=y -CONFIG_I2C_MV64XXX=y -CONFIG_I2C_OWL=y -CONFIG_I2C_PXA=y -CONFIG_I2C_QCOM_CCI=m -CONFIG_I2C_QCOM_GENI=m -CONFIG_I2C_QUP=y CONFIG_I2C_RK3X=y -CONFIG_I2C_SH_MOBILE=y -CONFIG_I2C_TEGRA=y -CONFIG_I2C_UNIPHIER_F=y -CONFIG_I2C_RCAR=y CONFIG_I2C_CROS_EC_TUNNEL=y +CONFIG_I2C_SLAVE=y CONFIG_SPI=y -CONFIG_SPI_ARMADA_3700=y -CONFIG_SPI_BCM2835=m -CONFIG_SPI_BCM2835AUX=m -CONFIG_SPI_FSL_LPSPI=y -CONFIG_SPI_FSL_QUADSPI=y +CONFIG_SPI_BITBANG=m CONFIG_SPI_NXP_FLEXSPI=y -CONFIG_SPI_IMX=m -CONFIG_SPI_FSL_DSPI=y -CONFIG_SPI_MESON_SPICC=m -CONFIG_SPI_MESON_SPIFC=m -CONFIG_SPI_ORION=y -CONFIG_SPI_PL022=y CONFIG_SPI_ROCKCHIP=y -CONFIG_SPI_RPCIF=m -CONFIG_SPI_QCOM_QSPI=m -CONFIG_SPI_QUP=y -CONFIG_SPI_QCOM_GENI=m -CONFIG_SPI_S3C64XX=y -CONFIG_SPI_SH_MSIOF=m -CONFIG_SPI_SUN6I=y CONFIG_SPI_SPIDEV=m CONFIG_SPMI=y +CONFIG_PINCTRL=y CONFIG_PINCTRL_SINGLE=y CONFIG_PINCTRL_MAX77620=y -CONFIG_PINCTRL_OWL=y -CONFIG_PINCTRL_S700=y -CONFIG_PINCTRL_S900=y -CONFIG_PINCTRL_IMX8MM=y -CONFIG_PINCTRL_IMX8MN=y -CONFIG_PINCTRL_IMX8MP=y -CONFIG_PINCTRL_IMX8MQ=y -CONFIG_PINCTRL_IMX8QXP=y -CONFIG_PINCTRL_IMX8DXL=y -CONFIG_PINCTRL_IPQ8074=y -CONFIG_PINCTRL_IPQ6018=y -CONFIG_PINCTRL_MSM8916=y -CONFIG_PINCTRL_MSM8994=y -CONFIG_PINCTRL_MSM8996=y -CONFIG_PINCTRL_MSM8998=y -CONFIG_PINCTRL_QCS404=y -CONFIG_PINCTRL_QDF2XXX=y -CONFIG_PINCTRL_QCOM_SPMI_PMIC=y -CONFIG_PINCTRL_SC7180=y -CONFIG_PINCTRL_SDM845=y -CONFIG_PINCTRL_SM8150=y -CONFIG_PINCTRL_SM8250=y CONFIG_GPIO_ALTERA=m CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GPIO_MB86S7X=y -CONFIG_GPIO_MPC8XXX=y -CONFIG_GPIO_MXC=y -CONFIG_GPIO_PL061=y -CONFIG_GPIO_RCAR=y -CONFIG_GPIO_UNIPHIER=y CONFIG_GPIO_WCD934X=m -CONFIG_GPIO_XGENE=y -CONFIG_GPIO_XGENE_SB=y CONFIG_GPIO_MAX732X=y CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X_IRQ=y CONFIG_GPIO_BD9571MWV=m CONFIG_GPIO_MAX77620=y -CONFIG_GPIO_SL28CPLD=m -CONFIG_POWER_AVS=y -CONFIG_QCOM_CPR=y -CONFIG_ROCKCHIP_IODOMAIN=y -CONFIG_POWER_RESET_MSM=y -CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET=y CONFIG_POWER_RESET_SYSCON=y CONFIG_SYSCON_REBOOT_MODE=y CONFIG_BATTERY_SBS=m CONFIG_BATTERY_BQ27XXX=y -CONFIG_SENSORS_ARM_SCPI=y CONFIG_SENSORS_LM90=m CONFIG_SENSORS_PWM_FAN=m -CONFIG_SENSORS_RASPBERRYPI_HWMON=m -CONFIG_SENSORS_SL28CPLD=m CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_INA3221=m CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=y CONFIG_THERMAL_EMULATION=y -CONFIG_QORIQ_THERMAL=m -CONFIG_SUN8I_THERMAL=y -CONFIG_IMX_SC_THERMAL=m -CONFIG_IMX8MM_THERMAL=m -CONFIG_ROCKCHIP_THERMAL=m -CONFIG_RCAR_THERMAL=y -CONFIG_RCAR_GEN3_THERMAL=y -CONFIG_ARMADA_THERMAL=y -CONFIG_BCM2711_THERMAL=m -CONFIG_BCM2835_THERMAL=m -CONFIG_BRCMSTB_THERMAL=m -CONFIG_EXYNOS_THERMAL=y -CONFIG_TEGRA_BPMP_THERMAL=m -CONFIG_QCOM_TSENS=y -CONFIG_QCOM_SPMI_TEMP_ALARM=m -CONFIG_UNIPHIER_THERMAL=y CONFIG_WATCHDOG=y -CONFIG_SL28CPLD_WATCHDOG=m -CONFIG_ARM_SP805_WATCHDOG=y -CONFIG_ARM_SBSA_WATCHDOG=y -CONFIG_ARM_SMC_WATCHDOG=y -CONFIG_S3C2410_WATCHDOG=y CONFIG_DW_WATCHDOG=y -CONFIG_SUNXI_WATCHDOG=m -CONFIG_IMX2_WDT=y -CONFIG_IMX_SC_WDT=m -CONFIG_QCOM_WDT=m -CONFIG_MESON_GXBB_WATCHDOG=m -CONFIG_MESON_WATCHDOG=m -CONFIG_RENESAS_WDT=y -CONFIG_UNIPHIER_WATCHDOG=y -CONFIG_BCM2835_WDT=y -CONFIG_MFD_ALTERA_SYSMGR=y CONFIG_MFD_BD9571MWV=y CONFIG_MFD_AXP20X_I2C=y -CONFIG_MFD_AXP20X_RSB=y -CONFIG_MFD_EXYNOS_LPASS=m CONFIG_MFD_HI6421_PMIC=y -CONFIG_MFD_HI655X_PMIC=y CONFIG_MFD_MAX77620=y -CONFIG_MFD_SPMI_PMIC=y CONFIG_MFD_RK808=y CONFIG_MFD_SEC_CORE=y -CONFIG_MFD_SL28CPLD=y CONFIG_MFD_ROHM_BD718XX=y CONFIG_MFD_WCD934X=m +CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_BD718XX=y @@ -728,14 +469,11 @@ CONFIG_REGULATOR_BD9571MWV=y CONFIG_REGULATOR_FAN53555=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_HI6421V530=y -CONFIG_REGULATOR_HI655X=y CONFIG_REGULATOR_MAX77620=y CONFIG_REGULATOR_MAX8973=y CONFIG_REGULATOR_PCA9450=y CONFIG_REGULATOR_PFUZE100=y CONFIG_REGULATOR_PWM=y -CONFIG_REGULATOR_QCOM_RPMH=y -CONFIG_REGULATOR_QCOM_SMD_RPM=y CONFIG_REGULATOR_QCOM_SPMI=y CONFIG_REGULATOR_RK808=y CONFIG_REGULATOR_S2MPS11=y @@ -743,68 +481,34 @@ CONFIG_REGULATOR_VCTRL=m CONFIG_RC_CORE=m CONFIG_RC_DECODERS=y CONFIG_RC_DEVICES=y -CONFIG_IR_MESON=m -CONFIG_IR_SUNXI=m CONFIG_MEDIA_SUPPORT=m CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_MEDIA_PLATFORM_SUPPORT=y # CONFIG_DVB_NET is not set CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_V4L_PLATFORM_DRIVERS=y -CONFIG_VIDEO_RCAR_CSI2=m -CONFIG_VIDEO_RCAR_VIN=m -CONFIG_VIDEO_SUN6I_CSI=m CONFIG_V4L_MEM2MEM_DRIVERS=y -CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m -CONFIG_VIDEO_SAMSUNG_S5P_MFC=m -CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m -CONFIG_VIDEO_RENESAS_FDP1=m -CONFIG_VIDEO_RENESAS_FCP=m -CONFIG_VIDEO_RENESAS_VSP1=m CONFIG_SDR_PLATFORM_DRIVERS=y -CONFIG_VIDEO_RCAR_DRIF=m CONFIG_VIDEO_IMX219=m CONFIG_VIDEO_OV5645=m -CONFIG_VIDEO_QCOM_CAMSS=m -CONFIG_DRM=m +CONFIG_DRM=y CONFIG_DRM_I2C_NXP_TDA998X=m -CONFIG_DRM_MALI_DISPLAY=m CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_EXYNOS=m -CONFIG_DRM_EXYNOS5433_DECON=y -CONFIG_DRM_EXYNOS7_DECON=y -CONFIG_DRM_EXYNOS_DSI=y -# CONFIG_DRM_EXYNOS_DP is not set -CONFIG_DRM_EXYNOS_HDMI=y -CONFIG_DRM_EXYNOS_MIC=y -CONFIG_DRM_ROCKCHIP=m -CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y -CONFIG_ROCKCHIP_DW_HDMI=y -CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_INNO_HDMI=y -CONFIG_DRM_RCAR_DU=m CONFIG_DRM_RCAR_DW_HDMI=m -CONFIG_DRM_SUN4I=m -CONFIG_DRM_SUN6I_DSI=m -CONFIG_DRM_SUN8I_DW_HDMI=m -CONFIG_DRM_SUN8I_MIXER=m -CONFIG_DRM_MSM=m -CONFIG_DRM_TEGRA=m +CONFIG_DRM_RCAR_USE_LVDS=y +CONFIG_DRM_VIRTIO_GPU=m CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_RAYDIUM_RM67191=m CONFIG_DRM_PANEL_SITRONIX_ST7703=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m CONFIG_DRM_DISPLAY_CONNECTOR=m -CONFIG_DRM_NWL_MIPI_DSI=m CONFIG_DRM_LONTIUM_LT9611=m +CONFIG_DRM_NWL_MIPI_DSI=m CONFIG_DRM_SII902X=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_THINE_THC63LVD1024=m @@ -812,20 +516,12 @@ CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_I2C_ADV7511=m CONFIG_DRM_I2C_ADV7511_AUDIO=y CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI_CEC=m -CONFIG_DRM_VC4=m CONFIG_DRM_ETNAVIV=m -CONFIG_DRM_HISI_HIBMC=m -CONFIG_DRM_HISI_KIRIN=m -CONFIG_DRM_MXSFB=m -CONFIG_DRM_MESON=m -CONFIG_DRM_PL111=m -CONFIG_DRM_LIMA=m -CONFIG_DRM_PANFROST=m -CONFIG_FB=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_EFI=y -CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_PWM=m CONFIG_BACKLIGHT_LP855X=m CONFIG_LOGO=y @@ -833,35 +529,20 @@ CONFIG_LOGO=y # CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_SOUND=y CONFIG_SND=y -CONFIG_SND_HDA_TEGRA=m -CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_SOC=y -CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_SOC_FSL_SAI=m -CONFIG_SND_MESON_AXG_SOUND_CARD=m -CONFIG_SND_MESON_GX_SOUND_CARD=m -CONFIG_SND_SOC_QCOM=m -CONFIG_SND_SOC_APQ8016_SBC=m -CONFIG_SND_SOC_MSM8996=m -CONFIG_SND_SOC_SDM845=m -CONFIG_SND_SOC_ROCKCHIP=m -CONFIG_SND_SOC_ROCKCHIP_SPDIF=m -CONFIG_SND_SOC_ROCKCHIP_RT5645=m -CONFIG_SND_SOC_RK3399_GRU_SOUND=m -CONFIG_SND_SOC_SAMSUNG=y -CONFIG_SND_SOC_RCAR=m -CONFIG_SND_SUN4I_SPDIF=m -CONFIG_SND_SOC_TEGRA=m -CONFIG_SND_SOC_TEGRA210_AHUB=m -CONFIG_SND_SOC_TEGRA210_DMIC=m -CONFIG_SND_SOC_TEGRA210_I2S=m -CONFIG_SND_SOC_TEGRA186_DSPK=m -CONFIG_SND_SOC_TEGRA210_ADMAIF=m CONFIG_SND_SOC_AK4613=m +CONFIG_SND_SOC_CROS_EC_CODEC=m +CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_ES7134=m CONFIG_SND_SOC_ES7241=m +CONFIG_SND_SOC_MAX98357A=m +CONFIG_SND_SOC_MAX98927=m CONFIG_SND_SOC_PCM3168A_I2C=m CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m +CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_WCD934X=m CONFIG_SND_SOC_WM8904=m @@ -869,23 +550,17 @@ CONFIG_SND_SOC_WSA881X=m CONFIG_SND_SIMPLE_CARD=m CONFIG_SND_AUDIO_GRAPH_CARD=m CONFIG_I2C_HID=m -CONFIG_USB_CONN_GPIO=m +CONFIG_USB_CONN_GPIO=y CONFIG_USB=y CONFIG_USB_OTG=y CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_TEGRA=y CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_EXYNOS=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_EXYNOS=y CONFIG_USB_OHCI_HCD_PLATFORM=y -CONFIG_USB_RENESAS_USBHS_HCD=m -CONFIG_USB_RENESAS_USBHS=m CONFIG_USB_ACM=m CONFIG_USB_STORAGE=y CONFIG_USB_MUSB_HDRC=y -CONFIG_USB_MUSB_SUNXI=y CONFIG_USB_DWC3=y CONFIG_USB_DWC2=y CONFIG_USB_CHIPIDEA=y @@ -897,9 +572,8 @@ CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_HSIC_USB3503=y CONFIG_NOP_USB_XCEIV=y CONFIG_USB_GADGET=y -CONFIG_USB_RENESAS_USBHS_UDC=m -CONFIG_USB_RENESAS_USB3=m -CONFIG_USB_TEGRA_XUDC=m +CONFIG_USB_SNP_UDC_PLAT=y +CONFIG_USB_BDC_UDC=y CONFIG_USB_CONFIGFS=m CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_ACM=y @@ -917,31 +591,15 @@ CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_HD3SS3220=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_ARMMMCI=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ACPI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_OF_ARASAN=y -CONFIG_MMC_SDHCI_OF_ESDHC=y CONFIG_MMC_SDHCI_CADENCE=y -CONFIG_MMC_SDHCI_ESDHC_IMX=y -CONFIG_MMC_SDHCI_TEGRA=y CONFIG_MMC_SDHCI_F_SDH30=y -CONFIG_MMC_MESON_GX=y -CONFIG_MMC_SDHCI_MSM=y CONFIG_MMC_SPI=y -CONFIG_MMC_SDHI=y -CONFIG_MMC_UNIPHIER=y -CONFIG_MMC_DW=y -CONFIG_MMC_DW_EXYNOS=y -CONFIG_MMC_DW_HI3798CV200=y -CONFIG_MMC_DW_K3=y -CONFIG_MMC_DW_ROCKCHIP=y -CONFIG_MMC_SUNXI=y -CONFIG_MMC_BCM2835=y CONFIG_MMC_SDHCI_XENON=y CONFIG_MMC_SDHCI_AM654=y -CONFIG_MMC_OWL=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y @@ -965,155 +623,41 @@ CONFIG_RTC_DRV_RV8803=m CONFIG_RTC_DRV_S5M=y CONFIG_RTC_DRV_DS3232=y CONFIG_RTC_DRV_PCF2127=m -CONFIG_RTC_DRV_EFI=y CONFIG_RTC_DRV_CROS_EC=y -CONFIG_RTC_DRV_S3C=y -CONFIG_RTC_DRV_PL031=y -CONFIG_RTC_DRV_SUN6I=y -CONFIG_RTC_DRV_ARMADA38X=y -CONFIG_RTC_DRV_PM8XXX=m -CONFIG_RTC_DRV_TEGRA=y -CONFIG_RTC_DRV_SNVS=m -CONFIG_RTC_DRV_IMX_SC=m -CONFIG_RTC_DRV_XGENE=y CONFIG_DMADEVICES=y -CONFIG_DMA_BCM2835=y -CONFIG_DMA_SUN6I=m CONFIG_FSL_EDMA=y -CONFIG_IMX_SDMA=y -CONFIG_K3_DMA=y -CONFIG_MV_XOR=y -CONFIG_MV_XOR_V2=y -CONFIG_OWL_DMA=y -CONFIG_PL330_DMA=y -CONFIG_TEGRA20_APB_DMA=y -CONFIG_TEGRA210_ADMA=m -CONFIG_QCOM_BAM_DMA=y CONFIG_QCOM_HIDMA_MGMT=y CONFIG_QCOM_HIDMA=y -CONFIG_RCAR_DMAC=y -CONFIG_RENESAS_USB_DMAC=m -CONFIG_TI_K3_UDMA=y -CONFIG_TI_K3_UDMA_GLUE_LAYER=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=y CONFIG_VIRTIO_MMIO=y -CONFIG_XEN_GNTDEV=y -CONFIG_XEN_GRANT_DEV_ALLOC=y -CONFIG_MFD_CROS_EC_DEV=y CONFIG_CHROME_PLATFORMS=y CONFIG_CROS_EC=y CONFIG_CROS_EC_I2C=y CONFIG_CROS_EC_SPI=y CONFIG_CROS_EC_CHARDEV=m CONFIG_COMMON_CLK_RK808=y -CONFIG_COMMON_CLK_SCPI=y CONFIG_COMMON_CLK_CS2000_CP=y -CONFIG_COMMON_CLK_FSL_SAI=y CONFIG_COMMON_CLK_S2MPS11=y CONFIG_COMMON_CLK_PWM=y CONFIG_COMMON_CLK_VC5=y CONFIG_COMMON_CLK_BD718XX=m -CONFIG_CLK_RASPBERRYPI=m -CONFIG_CLK_IMX8MM=y -CONFIG_CLK_IMX8MN=y -CONFIG_CLK_IMX8MP=y -CONFIG_CLK_IMX8MQ=y -CONFIG_CLK_IMX8QXP=y -CONFIG_TI_SCI_CLK=y -CONFIG_COMMON_CLK_QCOM=y -CONFIG_QCOM_A53PLL=y -CONFIG_QCOM_CLK_APCS_MSM8916=y -CONFIG_QCOM_CLK_SMD_RPM=y -CONFIG_QCOM_CLK_RPMH=y -CONFIG_IPQ_GCC_8074=y -CONFIG_IPQ_GCC_6018=y -CONFIG_MSM_GCC_8916=y -CONFIG_MSM_GCC_8994=y -CONFIG_MSM_MMCC_8996=y -CONFIG_MSM_GCC_8998=y -CONFIG_QCS_GCC_404=y -CONFIG_SC_GCC_7180=y -CONFIG_SDM_CAMCC_845=m -CONFIG_SDM_GCC_845=y -CONFIG_SDM_GPUCC_845=y -CONFIG_SDM_VIDEOCC_845=y -CONFIG_SDM_DISPCC_845=y -CONFIG_SM_GCC_8150=y -CONFIG_SM_GCC_8250=y -CONFIG_SM_GPUCC_8150=y -CONFIG_SM_GPUCC_8250=y -CONFIG_QCOM_HFPLL=y CONFIG_HWSPINLOCK=y -CONFIG_HWSPINLOCK_QCOM=y -CONFIG_ARM_MHU=y -CONFIG_IMX_MBOX=y CONFIG_PLATFORM_MHU=y -CONFIG_BCM2835_MBOX=y -CONFIG_QCOM_APCS_IPC=y -CONFIG_QCOM_IPCC=y -CONFIG_ROCKCHIP_IOMMU=y -CONFIG_TEGRA_IOMMU_SMMU=y -CONFIG_ARM_SMMU=y -CONFIG_ARM_SMMU_V3=y -CONFIG_QCOM_IOMMU=y CONFIG_REMOTEPROC=y -CONFIG_QCOM_Q6V5_MSS=m -CONFIG_QCOM_Q6V5_PAS=m -CONFIG_QCOM_SYSMON=m CONFIG_RPMSG_QCOM_GLINK_RPM=y -CONFIG_RPMSG_QCOM_GLINK_SMEM=m -CONFIG_RPMSG_QCOM_SMD=y CONFIG_SOUNDWIRE=m CONFIG_SOUNDWIRE_QCOM=m -CONFIG_OWL_PM_DOMAINS=y -CONFIG_RASPBERRYPI_POWER=y -CONFIG_FSL_DPAA=y -CONFIG_FSL_MC_DPIO=y -CONFIG_QCOM_AOSS_QMP=y -CONFIG_QCOM_GENI_SE=y -CONFIG_QCOM_RMTFS_MEM=m -CONFIG_QCOM_RPMH=y -CONFIG_QCOM_RPMHPD=y -CONFIG_QCOM_RPMPD=y -CONFIG_QCOM_SMEM=y -CONFIG_QCOM_SMD_RPM=y -CONFIG_QCOM_SMP2P=y -CONFIG_QCOM_SMSM=y -CONFIG_QCOM_SOCINFO=m -CONFIG_QCOM_APR=m -CONFIG_ARCH_R8A774A1=y -CONFIG_ARCH_R8A774B1=y -CONFIG_ARCH_R8A774C0=y -CONFIG_ARCH_R8A774E1=y -CONFIG_ARCH_R8A77950=y -CONFIG_ARCH_R8A77951=y -CONFIG_ARCH_R8A77960=y -CONFIG_ARCH_R8A77961=y -CONFIG_ARCH_R8A77965=y -CONFIG_ARCH_R8A77970=y -CONFIG_ARCH_R8A77980=y -CONFIG_ARCH_R8A77990=y -CONFIG_ARCH_R8A77995=y -CONFIG_ROCKCHIP_PM_DOMAINS=y -CONFIG_ARCH_TEGRA_132_SOC=y -CONFIG_ARCH_TEGRA_210_SOC=y -CONFIG_ARCH_TEGRA_186_SOC=y -CONFIG_ARCH_TEGRA_194_SOC=y -CONFIG_ARCH_K3_AM6_SOC=y -CONFIG_ARCH_K3_J721E_SOC=y -CONFIG_TI_SCI_PM_DOMAINS=y +CONFIG_SOC_TI=y CONFIG_EXTCON_PTN5150=m CONFIG_EXTCON_USB_GPIO=y CONFIG_EXTCON_USBC_CROS_EC=y -CONFIG_RENESAS_RPCIF=m +CONFIG_MEMORY=y CONFIG_IIO=y -CONFIG_EXYNOS_ADC=y CONFIG_MAX9611=m CONFIG_QCOM_SPMI_ADC5=m -CONFIG_ROCKCHIP_SARADC=m CONFIG_IIO_CROS_EC_SENSORS_CORE=m CONFIG_IIO_CROS_EC_SENSORS=m CONFIG_IIO_CROS_EC_LIGHT_PROX=m @@ -1121,81 +665,27 @@ CONFIG_SENSORS_ISL29018=m CONFIG_IIO_CROS_EC_BARO=m CONFIG_MPL3115=m CONFIG_PWM=y -CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m -CONFIG_PWM_MESON=m -CONFIG_PWM_RCAR=m -CONFIG_PWM_ROCKCHIP=y -CONFIG_PWM_SAMSUNG=y -CONFIG_PWM_SL28CPLD=m -CONFIG_PWM_SUN4I=m -CONFIG_PWM_TEGRA=m -CONFIG_SL28CPLD_INTC=y -CONFIG_QCOM_PDC=y -CONFIG_RESET_IMX7=y -CONFIG_RESET_QCOM_AOSS=y -CONFIG_RESET_QCOM_PDC=m -CONFIG_RESET_TI_SCI=y -CONFIG_PHY_XGENE=y -CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_FSL_IMX8MQ_USB=y CONFIG_PHY_MIXEL_MIPI_DPHY=m -CONFIG_PHY_HI6220_USB=y -CONFIG_PHY_HISTB_COMBPHY=y -CONFIG_PHY_HISI_INNO_USB2=y -CONFIG_PHY_MVEBU_CP110_COMPHY=y -CONFIG_PHY_QCOM_QMP=m -CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_USB_HS=y -CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y -CONFIG_PHY_RCAR_GEN3_PCIE=y -CONFIG_PHY_RCAR_GEN3_USB2=y -CONFIG_PHY_RCAR_GEN3_USB3=m -CONFIG_PHY_ROCKCHIP_EMMC=y -CONFIG_PHY_ROCKCHIP_INNO_HDMI=m -CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_PCIE=m -CONFIG_PHY_ROCKCHIP_TYPEC=y -CONFIG_PHY_UNIPHIER_USB2=y -CONFIG_PHY_UNIPHIER_USB3=y -CONFIG_PHY_TEGRA_XUSB=y -CONFIG_ARM_SMMU_V3_PMU=m -CONFIG_FSL_IMX8_DDR_PMU=m -CONFIG_HISI_PMU=y -CONFIG_QCOM_L2_PMU=y -CONFIG_QCOM_L3_PMU=y -CONFIG_NVMEM_IMX_OCOTP=y -CONFIG_NVMEM_IMX_OCOTP_SCU=y -CONFIG_QCOM_QFPROM=y -CONFIG_ROCKCHIP_EFUSE=y -CONFIG_NVMEM_SUNXI_SID=y -CONFIG_UNIPHIER_EFUSE=y -CONFIG_MESON_EFUSE=m +CONFIG_PHY_SAMSUNG_USB2=y CONFIG_FPGA=y -CONFIG_FPGA_MGR_STRATIX10_SOC=m CONFIG_FPGA_BRIDGE=m CONFIG_ALTERA_FREEZE_BRIDGE=m CONFIG_FPGA_REGION=m CONFIG_OF_FPGA_REGION=m CONFIG_TEE=y -CONFIG_OPTEE=y -CONFIG_SLIMBUS=m -CONFIG_SLIM_QCOM_CTRL=m -CONFIG_SLIM_QCOM_NGD_CTRL=m CONFIG_MUX_MMIO=y +CONFIG_SLIM_QCOM_CTRL=m CONFIG_INTERCONNECT=y -CONFIG_INTERCONNECT_QCOM=y -CONFIG_INTERCONNECT_QCOM_MSM8916=m -CONFIG_INTERCONNECT_QCOM_SDM845=m -CONFIG_INTERCONNECT_QCOM_SM8150=m -CONFIG_INTERCONNECT_QCOM_SM8250=m -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=m -CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FS_ENCRYPTION=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y @@ -1205,8 +695,9 @@ CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m CONFIG_VFAT_FS=y +CONFIG_PROC_CHILDREN=y +CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y -CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=y CONFIG_SQUASHFS=y CONFIG_NFS_FS=y @@ -1214,73 +705,34 @@ CONFIG_NFS_V4=y CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_ROOT_NFS=y +CONFIG_NFSD=y +CONFIG_CEPH_FS=m +CONFIG_CEPH_FS_POSIX_ACL=y CONFIG_9P_FS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_SECURITY=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_DH=m +CONFIG_CRYPTO_SEQIV=m CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_SHA3=m +CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_RNG=m -CONFIG_CRYPTO_DEV_SUN8I_CE=m -CONFIG_CRYPTO_DEV_FSL_CAAM=m -CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m -CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_CCREE=m -CONFIG_CRYPTO_DEV_HISI_SEC2=m -CONFIG_CRYPTO_DEV_HISI_ZIP=m -CONFIG_CRYPTO_DEV_HISI_HPRE=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +CONFIG_CRC_CCITT=m +CONFIG_DMA_PERNUMA_CMA=y CONFIG_CMA_SIZE_MBYTES=32 CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_BTF=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set -# CONFIG_DEBUG_PREEMPT is not set -CONFIG_MEMTEST=y -CONFIG_CFS_BANDWIDTH=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_KVM=m -CONFIG_KVM_DEBUG_FS=y -CONFIG_KVM_ARM=m -CONFIG_PROC_CHILDREN=y -CONFIG_BINFMT_MISC=y -CONFIG_BPF=y -CONFIG_BPF_SYSCALL=y -CONFIG_NET_CLS_BPF=y -CONFIG_BPF_JIT=y -CONFIG_NET_CLS_ACT=y -CONFIG_NET_SCH_INGRESS=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CGROUPS=y -CONFIG_CGROUP_BPF=y -CONFIG_PERF_EVENTS=y CONFIG_SCHEDSTATS=y -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_XFRM=y -CONFIG_XFRM_OFFLOAD=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_ALGO=m -CONFIG_XFRM_USER=m -CONFIG_INET{,6}_ESP=m -CONFIG_INET{,6}_IPCOMP=m -CONFIG_INET{,6}_XFRM_TUNNEL=m -CONFIG_INET{,6}_TUNNEL=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_HMAC=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_AES=m -CONFIG_NET_SCH_FQ=m -CONFIG_NET_CORE=y # Needed for vxlan -CONFIG_VXLAN=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_EXT4_FS_SECURITY=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_MEMTEST=y diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg b/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg index 009b34553917..9f630e596e63 100644 --- a/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg @@ -1,5 +1,5 @@ set default="0" -set timeout="5" +set timeout="0" menuentry "Buildroot" { linux /boot/bzimage console=tty0 rw # kernel diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig index 118d161e434a..9b21a31d4325 100644 --- a/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig @@ -1,16 +1,3 @@ -CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y -CONFIG_KPROBE_EVENTS=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_INFO_BTF=y -CONFIG_IKHEADERS=y -CONFIG_BPF_LSM=y -CONFIG_VBOXGUEST=m -CONFIG_VBOXSF_FS=m -CONFIG_DRM_VBOXVIDEO=m -CONFIG_BRIDGE_NETFILTER=y -CONFIG_PCI=y -CONFIG_TMPFS=y # CONFIG_LOCALVERSION_AUTO is not set CONFIG_KERNEL_LZ4=y CONFIG_SYSVIPC=y @@ -18,20 +5,20 @@ CONFIG_POSIX_MQUEUE=y CONFIG_AUDIT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y +CONFIG_BPF_LSM=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_BSD_PROCESS_ACCT=y -CONFIG_TASK_XACCT=y -CONFIG_TASK_IO_ACCOUNTING=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y +CONFIG_IKHEADERS=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_CGROUPS=y CONFIG_MEMCG=y -CONFIG_MEMCG_SWAP=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y -CONFIG_RT_GROUP_SCHED=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y @@ -42,16 +29,13 @@ CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y CONFIG_USER_NS=y CONFIG_BLK_DEV_INITRD=y -CONFIG_BPF_SYSCALL=y -# CONFIG_COMPAT_BRK is not set CONFIG_PROFILING=y +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y CONFIG_SMP=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT_SPINLOCKS=y -CONFIG_KVM_DEBUG_FS=y -CONFIG_CALGARY_IOMMU=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y -CONFIG_MICROCODE_AMD=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_NUMA=y @@ -59,27 +43,17 @@ CONFIG_X86_CHECK_BIOS_CORRUPTION=y # CONFIG_MTRR_SANITIZER is not set CONFIG_EFI=y CONFIG_HZ_1000=y -CONFIG_KEXEC=y -CONFIG_CRASH_DUMP=y CONFIG_HIBERNATION=y CONFIG_PM_DEBUG=y CONFIG_PM_TRACE_RTC=y CONFIG_ACPI_DOCK=y CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_PCIEPORTBUS=y -CONFIG_HOTPLUG_PCI=y -CONFIG_PCCARD=y -CONFIG_YENTA=y CONFIG_IA32_EMULATION=y -CONFIG_EFI_VARS=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_VHOST_VSOCK=m CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y CONFIG_MODULES=y @@ -98,13 +72,12 @@ CONFIG_SGI_PARTITION=y CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_BINFMT_MISC=y +# CONFIG_COMPAT_BRK is not set CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_NET=y CONFIG_PACKET=y -CONFIG_UNIX=y CONFIG_XFRM_USER=y -CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTIPLE_TABLES=y @@ -119,9 +92,6 @@ CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BIC is not set @@ -133,6 +103,7 @@ CONFIG_INET6_ESP=y CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_NETLABEL=y CONFIG_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m CONFIG_NETFILTER_NETLINK_ACCT=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NF_CONNTRACK=m @@ -294,6 +265,7 @@ CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_NETEM=y +CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_INGRESS=m CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_FW=y @@ -311,7 +283,6 @@ CONFIG_OPENVSWITCH=m CONFIG_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_CGROUP_NET_PRIO=y -CONFIG_BPF_JIT=y CONFIG_HAMRADIO=y CONFIG_CFG80211=y CONFIG_MAC80211=y @@ -320,11 +291,16 @@ CONFIG_RFKILL=y CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m CONFIG_CEPH_LIB=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI=y +CONFIG_PCCARD=y +CONFIG_YENTA=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEBUG_DEVRES=y CONFIG_CONNECTOR=y +CONFIG_DMI_SYSFS=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_NBD=m CONFIG_VIRTIO_BLK=y @@ -395,14 +371,12 @@ CONFIG_8139TOO=y CONFIG_FDDI=y CONFIG_VMXNET3=y CONFIG_HYPERV_NET=m -CONFIG_INPUT_POLLDEV=y CONFIG_INPUT_EVDEV=y CONFIG_INPUT_JOYSTICK=y CONFIG_INPUT_TABLET=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_MISC=y # CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_NONSTANDARD=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_NR_UARTS=32 @@ -411,6 +385,7 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_NONSTANDARD=y CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_INTEL is not set # CONFIG_HW_RANDOM_AMD is not set @@ -426,13 +401,7 @@ CONFIG_AGP_INTEL=y CONFIG_DRM=y CONFIG_DRM_I915=y CONFIG_DRM_VIRTIO_GPU=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y -CONFIG_FB_EFI=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_DRM_VBOXVIDEO=m CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_HRTIMER=y @@ -462,12 +431,14 @@ CONFIG_USB_OHCI_HCD=y CONFIG_USB_UHCI_HCD=y CONFIG_USB_PRINTER=y CONFIG_USB_STORAGE=y -CONFIG_EDAC=y CONFIG_RTC_CLASS=y # CONFIG_RTC_HCTOSYS is not set CONFIG_DMADEVICES=y CONFIG_VIRT_DRIVERS=y +CONFIG_VBOXGUEST=m CONFIG_VIRTIO_PCI=y +CONFIG_VHOST_NET=m +CONFIG_VHOST_VSOCK=m CONFIG_HYPERV=m CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m @@ -475,9 +446,6 @@ CONFIG_EEEPC_LAPTOP=y CONFIG_AMD_IOMMU=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=m -CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y @@ -486,11 +454,13 @@ CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FS_ENCRYPTION=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -# CONFIG_PRINT_QUOTA_WARNING is not set CONFIG_QFMT_V2=y -CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=y CONFIG_OVERLAY_FS=m CONFIG_ISO9660_FS=y @@ -499,8 +469,10 @@ CONFIG_ZISOFS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_PROC_KCORE=y +CONFIG_PROC_CHILDREN=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y +CONFIG_VBOXSF_FS=m CONFIG_NFS_FS=y CONFIG_NFS_V4=y CONFIG_NFS_SWAP=y @@ -523,17 +495,13 @@ CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_DISABLE=y -CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_PRINTK_TIME=y -# CONFIG_UNUSED_SYMBOLS is not set -CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y +CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_STACK_USAGE=y -CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_SCHED_DEBUG is not set CONFIG_SCHEDSTATS=y CONFIG_FUNCTION_TRACER=y @@ -542,7 +510,3 @@ CONFIG_BLK_DEV_IO_TRACE=y CONFIG_PROVIDE_OHCI1394_DMA_INIT=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_DEBUG_BOOT_PARAMS=y -CONFIG_OPTIMIZE_INLINING=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_PROC_CHILDREN=y -CONFIG_BINFMT_MISC=y diff --git a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig index 3bc567b7f32f..c25d3f5f38c0 100644 --- a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig @@ -1,70 +1,30 @@ -# Architecture BR2_aarch64=y - -# Toolchain -BR2_TOOLCHAIN_BUILDROOT_WCHAR=y - -# System -BR2_SYSTEM_DHCP="eth0" -BR2_TARGET_GENERIC_GETTY_PORT="tty1" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y - -# Required tools to create bootable media -BR2_PACKAGE_HOST_DOSFSTOOLS=y -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_MTOOLS=y - -# Bootloader -BR2_TARGET_GRUB2=y -BR2_TARGET_GRUB2_ARM64_EFI=y -BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/grub-stub.cfg" -BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop udf iso9660 search search_fs_file search_fs_uuid search_label" - -# Filesystem / image -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_LZ4=y -# BR2_TARGET_ROOTFS_TAR is not set -BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-image.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/genimage.cfg" - - -# Linux headers same as kernel, a 5.10 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y - -# Kernel -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.207" -BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y -BR2_LINUX_KERNEL_INSTALL_TARGET=y - -BR2_CCACHE=y - -# Packages -BR2_PACKAGE_ACPID=y - -# Minikube - -BR2_PACKAGE_VBOX_GUEST=n - -BR2_OPTIMIZE_2=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/patches" BR2_TOOLCHAIN_BUILDROOT_VENDOR="minikube" -BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y BR2_TOOLCHAIN_BUILDROOT_CXX=y -BR2_GCC_ENABLE_LTO=y +BR2_CCACHE=y +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/patches" BR2_TARGET_GENERIC_HOSTNAME="minikube" BR2_TARGET_GENERIC_ISSUE="Welcome to minikube" BR2_TARGET_GENERIC_PASSWD_SHA512=y BR2_INIT_SYSTEMD=y BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/permissions" BR2_SYSTEM_BIN_SH_BASH=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/users" BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/rootfs-overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.92" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/linux_aarch64_defconfig" BR2_LINUX_KERNEL_LZ4=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE=y BR2_PACKAGE_GZIP=y @@ -77,6 +37,7 @@ BR2_PACKAGE_E2TOOLS=y BR2_PACKAGE_NFS_UTILS=y BR2_PACKAGE_SSHFS=y BR2_PACKAGE_XFSPROGS=y +BR2_PACKAGE_ACPID=y BR2_PACKAGE_PARTED=y BR2_PACKAGE_SYSSTAT=y BR2_PACKAGE_LUAJIT=y @@ -84,8 +45,10 @@ BR2_PACKAGE_LZ4=y BR2_PACKAGE_LZ4_PROGS=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBOPENSSL_BIN=y +BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_TBB=y BR2_PACKAGE_BRIDGE_UTILS=y BR2_PACKAGE_CONNTRACK_TOOLS=y BR2_PACKAGE_EBTABLES=y @@ -109,8 +72,13 @@ BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_LZ4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop udf iso9660 search search_fs_file search_fs_uuid search_label" +BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/grub-stub.cfg" +BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2TOOLS=y -BR2_PACKAGE_HOST_PYTHON=y -BR2_PACKAGE_LIBFUSE=y -BR2_PACKAGE_PAHOLE=y -BR2_PACKAGE_TBB=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig index 56219056f576..a54e2bef1c6d 100644 --- a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig @@ -1,70 +1,27 @@ -# Architecture BR2_x86_64=y - -# Toolchain -BR2_TOOLCHAIN_BUILDROOT_WCHAR=y - -# System -BR2_SYSTEM_DHCP="eth0" -BR2_TARGET_GENERIC_GETTY_PORT="tty1" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y - -# Required tools to create bootable media -BR2_PACKAGE_HOST_DOSFSTOOLS=y -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_MTOOLS=y - -# Bootloader -# To turn the x86_64 ISO from BIOS to EFI, uncomment the following 7 lines and comment out the 3 lines beneath it. -#BR2_TARGET_GRUB2=y -#BR2_TARGET_GRUB2_X86_64_EFI=y -#BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/grub-stub.cfg" -#BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop udf iso9660 search search_fs_file search_fs_uuid search_label" -#BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/post-build.sh" -#BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/post-image.sh" -#BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/genimage.cfg" -BR2_TARGET_ROOTFS_ISO9660=y -BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/isolinux.cfg" -BR2_TARGET_SYSLINUX=y - -# Filesystem / image -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_GZIP=y - -# Linux headers same as kernel, a 5.10 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y - -# Kernel -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.207" -BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y -BR2_LINUX_KERNEL_INSTALL_TARGET=y - -BR2_CCACHE=y - -# Packages -BR2_PACKAGE_ACPID=y - -# Minikube - -BR2_OPTIMIZE_2=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/patches" BR2_TOOLCHAIN_BUILDROOT_VENDOR="minikube" -BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y BR2_TOOLCHAIN_BUILDROOT_CXX=y -BR2_GCC_ENABLE_LTO=y +BR2_CCACHE=y +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/patches" BR2_TARGET_GENERIC_HOSTNAME="minikube" BR2_TARGET_GENERIC_ISSUE="Welcome to minikube" BR2_TARGET_GENERIC_PASSWD_SHA512=y BR2_INIT_SYSTEMD=y BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/permissions" BR2_SYSTEM_BIN_SH_BASH=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/users" BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/rootfs-overlay" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.92" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/linux_x86_64_defconfig" BR2_LINUX_KERNEL_LZ4=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE=y BR2_PACKAGE_GZIP=y @@ -77,6 +34,7 @@ BR2_PACKAGE_E2TOOLS=y BR2_PACKAGE_NFS_UTILS=y BR2_PACKAGE_SSHFS=y BR2_PACKAGE_XFSPROGS=y +BR2_PACKAGE_ACPID=y BR2_PACKAGE_PARTED=y BR2_PACKAGE_SYSSTAT=y BR2_PACKAGE_LUAJIT=y @@ -84,8 +42,10 @@ BR2_PACKAGE_LZ4=y BR2_PACKAGE_LZ4_PROGS=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBOPENSSL_BIN=y +BR2_PACKAGE_LIBFUSE=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_TBB=y BR2_PACKAGE_BRIDGE_UTILS=y BR2_PACKAGE_CONNTRACK_TOOLS=y BR2_PACKAGE_EBTABLES=y @@ -109,8 +69,11 @@ BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/isolinux.cfg" +BR2_TARGET_SYSLINUX=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2TOOLS=y -BR2_PACKAGE_HOST_PYTHON=y -BR2_PACKAGE_LIBFUSE=y -BR2_PACKAGE_PAHOLE=y -BR2_PACKAGE_TBB=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh index 1a50eea43099..a5f813fad71c 100755 --- a/hack/jenkins/common.sh +++ b/hack/jenkins/common.sh @@ -144,6 +144,9 @@ case "${DRIVER}" in vfkit) echo "vfkit: $(vfkit --version)" ;; + krunkit) + echo "krunkit: $(krunkit --version)" + ;; esac echo "" diff --git a/hack/jenkins/osx_integration_tests_krunkit.sh b/hack/jenkins/osx_integration_tests_krunkit.sh new file mode 100755 index 000000000000..8e34568a9a17 --- /dev/null +++ b/hack/jenkins/osx_integration_tests_krunkit.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright 2024 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +# This script runs the integration tests on an OSX machine for the Hyperkit Driver + +# The script expects the following env variables: +# MINIKUBE_LOCATION: GIT_COMMIT from upstream build. +# COMMIT: Actual commit ID from upstream build +# EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests +# access_token: The GitHub API access token. Injected by the Jenkins credential provider. + + +set -ex + +ARCH="arm64" +OS="darwin" +DRIVER="krunkit" +JOB_NAME="Krunkit_macOS" +EXTRA_TEST_ARGS="" +EXTERNAL="yes" + +brew tap slp/krunkit +brew install krunkit + +source common.sh diff --git a/pkg/drivers/krunkit/krunkit.go b/pkg/drivers/krunkit/krunkit.go new file mode 100644 index 000000000000..d1dc21e8ddd4 --- /dev/null +++ b/pkg/drivers/krunkit/krunkit.go @@ -0,0 +1,561 @@ +//go:build darwin + +/* +Copyright 2024 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package krunkit + +import ( + "archive/tar" + "bytes" + "encoding/json" + "fmt" + "io" + "net" + "net/http" + "os" + "os/exec" + "strings" + "syscall" + "time" + + "github.com/docker/machine/libmachine/drivers" + "github.com/docker/machine/libmachine/log" + "github.com/docker/machine/libmachine/mcnutils" + "github.com/docker/machine/libmachine/ssh" + "github.com/docker/machine/libmachine/state" + "github.com/pkg/errors" + + "k8s.io/klog/v2" + pkgdrivers "k8s.io/minikube/pkg/drivers" + "k8s.io/minikube/pkg/drivers/vmnet" + "k8s.io/minikube/pkg/minikube/exit" + "k8s.io/minikube/pkg/minikube/firewall" + "k8s.io/minikube/pkg/minikube/out" + "k8s.io/minikube/pkg/minikube/process" + "k8s.io/minikube/pkg/minikube/reason" + "k8s.io/minikube/pkg/minikube/style" +) + +const ( + driverName = "krunkit" + isoFileName = "boot2docker.iso" + pidFileName = "krunkit.pid" + logFileName = "krunkit.log" + serialFileName = "serial.log" + logLevelInfo = "3" + defaultSSHUser = "docker" +) + +// Driver is the machine driver for krunkit (Virtualization.framework) +type Driver struct { + *drivers.BaseDriver + *pkgdrivers.CommonDriver + Boot2DockerURL string + DiskSize int + CPU int + Memory int + ExtraDisks int + MACAddress string + VmnetHelper vmnet.Helper +} + +func NewDriver(hostName, storePath string) drivers.Driver { + return &Driver{ + BaseDriver: &drivers.BaseDriver{ + SSHUser: defaultSSHUser, + MachineName: hostName, + StorePath: storePath, + }, + CommonDriver: &pkgdrivers.CommonDriver{}, + } +} + +func (d *Driver) PreCreateCheck() error { + return nil +} + +func (d *Driver) GetMachineName() string { + return d.MachineName +} + +func (d *Driver) DriverName() string { + return driverName +} + +func (d *Driver) GetSSHHostname() (string, error) { + return d.IPAddress, nil +} + +func (d *Driver) GetSSHKeyPath() string { + return d.ResolveStorePath("id_rsa") +} + +func (d *Driver) GetSSHPort() (int, error) { + if d.SSHPort == 0 { + d.SSHPort = 22 + } + return d.SSHPort, nil +} + +func (d *Driver) GetSSHUsername() string { + if d.SSHUser == "" { + d.SSHUser = defaultSSHUser + } + + return d.SSHUser +} + +func (d *Driver) GetURL() (string, error) { + if _, err := os.Stat(d.pidfilePath()); err != nil { + return "", nil + } + ip, err := d.GetIP() + if err != nil { + log.Warnf("Failed to get IP: %v", err) + return "", err + } + if ip == "" { + return "", nil + } + return fmt.Sprintf("tcp://%s:2376", ip), nil +} + +func (d *Driver) GetIP() (string, error) { + return d.IPAddress, nil +} + +// GetState returns driver state. Since krunkit driver may use 2 processes +// (vmnet-helper, krunkit), this returns combined state of both processes. +func (d *Driver) GetState() (state.State, error) { + if krunkitState, err := d.getKrunkitState(); err != nil { + return state.Error, err + } else if krunkitState == state.Running { + return state.Running, nil + } + return d.VmnetHelper.GetState() +} + +func (d *Driver) Create() error { + var err error + if d.SSHPort, err = d.GetSSHPort(); err != nil { + return err + } + + b2dutils := mcnutils.NewB2dUtils(d.StorePath) + if err := b2dutils.CopyIsoToMachineDir(d.Boot2DockerURL, d.MachineName); err != nil { + return err + } + + log.Info("Creating SSH key...") + if err := ssh.GenerateSSHKey(d.GetSSHKeyPath()); err != nil { + return err + } + + log.Info("Creating disk image...") + if err := d.generateDiskImage(d.DiskSize); err != nil { + return err + } + + if d.ExtraDisks > 0 { + log.Info("Creating extra disk images...") + for i := 0; i < d.ExtraDisks; i++ { + path := pkgdrivers.ExtraDiskPath(d.BaseDriver, i) + if err := pkgdrivers.CreateRawDisk(path, d.DiskSize); err != nil { + return err + } + } + } + + log.Info("Starting krunkit VM...") + return d.Start() +} + +func (d *Driver) Start() error { + socketPath := d.VmnetHelper.SocketPath() + if err := d.VmnetHelper.Start(socketPath); err != nil { + return err + } + + d.MACAddress = d.VmnetHelper.GetMACAddress() + + if err := d.startkrunkit(socketPath); err != nil { + return err + } + + if err := d.setupIP(d.MACAddress); err != nil { + return err + } + + log.Infof("Waiting for VM to start (ssh -p %d docker@%s)...", d.SSHPort, d.IPAddress) + + return WaitForTCPWithDelay(fmt.Sprintf("%s:%d", d.IPAddress, d.SSHPort), time.Second) +} + +// startkrunkit starts the krunkit child process. +func (d *Driver) startkrunkit(socketPath string) error { + var args = []string{ + "--memory", fmt.Sprintf("%d", d.Memory), + "--cpus", fmt.Sprintf("%d", d.CPU), + "--restful-uri", d.restfulURI(), + "--device", fmt.Sprintf("virtio-net,unixSocketPath=%s,mac=%s", socketPath, d.MACAddress), + "--device", fmt.Sprintf("virtio-serial,logFilePath=%s", d.serialPath()), + "--krun-log-level", logLevelInfo, + + // The first device is the boot disk. + "--device", fmt.Sprintf("virtio-blk,path=%s", d.isoPath()), + "--device", fmt.Sprintf("virtio-blk,path=%s", d.diskPath()), + } + + for i := 0; i < d.ExtraDisks; i++ { + args = append(args, + "--device", fmt.Sprintf("virtio-blk,path=%s", pkgdrivers.ExtraDiskPath(d.BaseDriver, i))) + } + + log.Debugf("executing: krunkit %s", strings.Join(args, " ")) + cmd := exec.Command(driverName, args...) + + // Create krunkit in a new process group, so minikube caller can use killpg + // to terminate the entire process group without harming the krunkit process. + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + + logfile, err := d.openLogfile() + if err != nil { + return fmt.Errorf("failed to open krunkit logfile: %w", err) + } + defer logfile.Close() + cmd.Stderr = logfile + + if err := cmd.Start(); err != nil { + return err + } + return process.WritePidfile(d.pidfilePath(), cmd.Process.Pid) +} + +func (d *Driver) openLogfile() (*os.File, error) { + logfile := d.ResolveStorePath(logFileName) + return os.OpenFile(logfile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o600) +} + +func (d *Driver) setupIP(mac string) error { + var err error + getIP := func() error { + d.IPAddress, err = pkgdrivers.GetIPAddressByMACAddress(mac) + if err != nil { + return errors.Wrap(err, "failed to get IP address") + } + return nil + } + // Implement a retry loop because IP address isn't added to dhcp leases file immediately + for i := 0; i < 60; i++ { + log.Debugf("Attempt %d", i) + err = getIP() + if err == nil { + break + } + time.Sleep(2 * time.Second) + } + + if err == nil { + log.Debugf("IP: %s", d.IPAddress) + return nil + } + if !isBootpdError(err) { + return errors.Wrap(err, "IP address never found in dhcp leases file") + } + if unblockErr := firewall.UnblockBootpd(); unblockErr != nil { + klog.Errorf("failed unblocking bootpd from firewall: %v", unblockErr) + exit.Error(reason.IfBootpdFirewall, "ip not found", err) + } + out.Styled(style.Restarting, "Successfully unblocked bootpd process from firewall, retrying") + return fmt.Errorf("ip not found: %v", err) +} + +func isBootpdError(err error) bool { + return strings.Contains(err.Error(), "could not find an IP address") +} + +func (d *Driver) Stop() error { + if err := d.stopKrunkit(); err != nil { + return err + } + return d.VmnetHelper.Stop() +} + +func (d *Driver) Kill() error { + if err := d.killkrunkit(); err != nil { + return err + } + return d.VmnetHelper.Kill() +} + +func (d *Driver) Remove() error { + s, err := d.GetState() + if err != nil { + return errors.Wrap(err, "get state") + } + if s == state.Running { + if err := d.Kill(); err != nil { + return errors.Wrap(err, "kill") + } + } + return nil +} + +func (d *Driver) Restart() error { + s, err := d.GetState() + if err != nil { + return err + } + + if s == state.Running { + if err := d.Stop(); err != nil { + return err + } + } + return d.Start() +} + +func (d *Driver) StartDocker() error { + return fmt.Errorf("hosts without a driver cannot start docker") +} + +func (d *Driver) StopDocker() error { + return fmt.Errorf("hosts without a driver cannot stop docker") +} + +func (d *Driver) GetDockerConfigDir() string { + return "" +} + +func (d *Driver) Upgrade() error { + return fmt.Errorf("hosts without a driver cannot be upgraded") +} + +func (d *Driver) getKrunkitState() (state.State, error) { + pidfile := d.pidfilePath() + pid, err := process.ReadPidfile(pidfile) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + return state.Error, err + } + return state.Stopped, nil + } + exists, err := process.Exists(pid, driverName) + if err != nil { + return state.Error, err + } + if !exists { + // No process, stale pidfile. + if err := os.Remove(pidfile); err != nil { + log.Debugf("failed to remove %q: %s", pidfile, err) + } + return state.Stopped, nil + } + return state.Running, nil +} + +func (d *Driver) stopKrunkit() error { + if err := d.SetKrunkititState("Stop"); err != nil { + // krunkit may be already stopped, shutting down, or not listening. + log.Debugf("Failed to set krunkit state to 'Stop': %s", err) + pidfile := d.pidfilePath() + pid, err := process.ReadPidfile(pidfile) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + return err + } + // No pidfile. + return nil + } + if err := process.Terminate(pid, driverName); err != nil { + if err != os.ErrProcessDone { + return err + } + // No process, stale pidfile. + if err := os.Remove(pidfile); err != nil { + log.Debugf("failed to remove %q: %s", pidfile, err) + } + return nil + } + } + return nil +} + +func (d *Driver) killkrunkit() error { + if err := d.SetKrunkititState("HardStop"); err != nil { + // Typically fails with EOF due to https://github.com/crc-org/krunkit/issues/277. + log.Debugf("Failed to set krunkit state to 'HardStop': %s", err) + pidfile := d.pidfilePath() + pid, err := process.ReadPidfile(pidfile) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + return err + } + // No pidfile. + return nil + } + if err := process.Kill(pid, driverName); err != nil { + if err != os.ErrProcessDone { + return err + } + // No process, stale pidfile. + if err := os.Remove(pidfile); err != nil { + log.Debugf("failed to remove %q: %s", pidfile, err) + } + return nil + } + } + return nil +} + +func (d *Driver) publicSSHKeyPath() string { + return d.GetSSHKeyPath() + ".pub" +} + +func (d *Driver) diskPath() string { + return d.ResolveStorePath("disk.img") +} + +func (d *Driver) pidfilePath() string { + return d.ResolveStorePath(pidFileName) +} + +func (d *Driver) logfilePath() string { + return d.ResolveStorePath(logFileName) +} + +func (d *Driver) serialPath() string { + return d.ResolveStorePath(serialFileName) +} + +func (d *Driver) isoPath() string { + return d.ResolveStorePath(isoFileName) +} + +func (d *Driver) restfulURI() string { + // TODO: use unused port or a unix socket when supported. + // https://github.com/containers/krunkit/issues/47 + return "tcp://localhost:8081" +} + +func (d *Driver) vmStateURI() string { + return d.restfulURI() + "/vm/state" +} + +// Make a boot2docker VM disk image. +func (d *Driver) generateDiskImage(size int) error { + log.Debugf("Creating %d MB hard disk image...", size) + + magicString := "boot2docker, please format-me" + + buf := new(bytes.Buffer) + tw := tar.NewWriter(buf) + + // magicString first so the automount script knows to format the disk + file := &tar.Header{Name: magicString, Size: int64(len(magicString))} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write([]byte(magicString)); err != nil { + return err + } + // .ssh/key.pub => authorized_keys + file = &tar.Header{Name: ".ssh", Typeflag: tar.TypeDir, Mode: 0700} + if err := tw.WriteHeader(file); err != nil { + return err + } + pubKey, err := os.ReadFile(d.publicSSHKeyPath()) + if err != nil { + return err + } + file = &tar.Header{Name: ".ssh/authorized_keys", Size: int64(len(pubKey)), Mode: 0644} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write(pubKey); err != nil { + return err + } + file = &tar.Header{Name: ".ssh/authorized_keys2", Size: int64(len(pubKey)), Mode: 0644} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write(pubKey); err != nil { + return err + } + if err := tw.Close(); err != nil { + return err + } + rawFile := d.diskPath() + if err := os.WriteFile(rawFile, buf.Bytes(), 0644); err != nil { + return nil + } + if err := os.Truncate(rawFile, int64(size)*int64(1024*1024)); err != nil { + return nil + } + log.Debugf("DONE writing to %s and %s", rawFile, d.diskPath()) + return nil +} + +type VMState struct { + State string `json:"state"` +} + +func (d *Driver) GetkrunkitState() (string, error) { + var vmstate VMState + response, err := http.Get(d.vmStateURI()) + if err != nil { + return "", err + } + defer response.Body.Close() + err = json.NewDecoder(response.Body).Decode(&vmstate) + if err != nil { + return "", err + } + log.Debugf("get krunkit state: %+v", vmstate) + return vmstate.State, nil +} + +func (d *Driver) SetKrunkititState(state string) error { + var vmstate VMState + vmstate.State = state + data, err := json.Marshal(&vmstate) + if err != nil { + return err + } + _, err = http.Post(d.vmStateURI(), "application/json", bytes.NewReader(data)) + if err != nil { + return err + } + log.Infof("Set krunkit state: %+v", vmstate) + return nil +} + +func WaitForTCPWithDelay(addr string, duration time.Duration) error { + for { + conn, err := net.Dial("tcp", addr) + if err != nil { + continue + } + defer conn.Close() + if _, err := conn.Read(make([]byte, 1)); err != nil && err != io.EOF { + time.Sleep(duration) + continue + } + break + } + return nil +} diff --git a/pkg/drivers/vmnet/vmnet.go b/pkg/drivers/vmnet/vmnet.go index 0bfe65430467..eb0f8c44bc07 100644 --- a/pkg/drivers/vmnet/vmnet.go +++ b/pkg/drivers/vmnet/vmnet.go @@ -55,6 +55,11 @@ type Helper struct { // will obtain the same MAC address from vmnet. InterfaceID string + // Offloading is required for krunkit, doss not work with vfkit. + // We must use this until libkrun add support for disabling offloading: + // https://github.com/containers/libkrun/issues/264 + Offloading bool + // Set when vmnet interface is started. macAddress string } @@ -115,13 +120,18 @@ func ValidateHelper() error { // machine. The helper will create a unix datagram socket at the specfied path. // The client (e.g. vfkit) will connect to this socket. func (h *Helper) Start(socketPath string) error { - cmd := exec.Command( - "sudo", + args := []string{ "--non-interactive", executablePath, "--socket", socketPath, "--interface-id", h.InterfaceID, - ) + } + + if h.Offloading { + args = append(args, "--enable-tso", "--enable-checksum-offload") + } + + cmd := exec.Command("sudo", args...) // Create vmnet-helper in a new process group so it is not harmed when // terminating the minikube process group. diff --git a/pkg/minikube/cluster/ip.go b/pkg/minikube/cluster/ip.go index 0e64bae99102..ca4d048a986d 100644 --- a/pkg/minikube/cluster/ip.go +++ b/pkg/minikube/cluster/ip.go @@ -139,7 +139,11 @@ func HostIP(hostInfo *host.Host, clusterName string) (net.IP, error) { return []byte{}, errors.Wrap(err, "Error converting VM IP address to IPv4 address") } return net.IPv4(vmIP[0], vmIP[1], vmIP[2], byte(1)), nil - case driver.VFKit: + case driver.VFKit, driver.Krunkit: + // TODO: check why we need this and test with: + // - vfkkit+nat + // - vfkit+vmnet-shared + // - krunkit+vmnet-shared vmIPString, _ := hostInfo.Driver.GetIP() gatewayIPString := vmIPString[:strings.LastIndex(vmIPString, ".")+1] + "1" return net.ParseIP(gatewayIPString), nil diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index 19f4fe115288..4f9f25f43132 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -41,7 +41,7 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube/iso" + isoBucket := "minikube-builds/iso/20826" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH), diff --git a/pkg/minikube/driver/driver.go b/pkg/minikube/driver/driver.go index 7df9c359f882..3ad0d8db58f5 100644 --- a/pkg/minikube/driver/driver.go +++ b/pkg/minikube/driver/driver.go @@ -63,6 +63,8 @@ const ( Parallels = "parallels" // VFKit driver VFKit = "vfkit" + // Krunkit driver + Krunkit = "krunkit" // AliasKVM is driver name alias for kvm2 AliasKVM = "kvm" @@ -178,6 +180,11 @@ func IsVFKit(name string) bool { return name == VFKit } +// IsKrunkit checks if the driver is vfkit +func IsKrunkit(name string) bool { + return name == Krunkit +} + // IsVM checks if the driver is a VM func IsVM(name string) bool { if IsKIC(name) || BareMetal(name) { diff --git a/pkg/minikube/driver/driver_darwin.go b/pkg/minikube/driver/driver_darwin.go index 6bf5f20d7c5b..a0faf66a4f8d 100644 --- a/pkg/minikube/driver/driver_darwin.go +++ b/pkg/minikube/driver/driver_darwin.go @@ -29,6 +29,7 @@ var supportedDrivers = func() []string { return []string{ QEMU2, VFKit, + Krunkit, Parallels, Docker, Podman, diff --git a/pkg/minikube/driver/driver_test.go b/pkg/minikube/driver/driver_test.go index ff5b4519389b..42d7691ed7c0 100644 --- a/pkg/minikube/driver/driver_test.go +++ b/pkg/minikube/driver/driver_test.go @@ -69,6 +69,7 @@ func TestMachineType(t *testing.T) { QEMU2: "VM", QEMU: "VM", VFKit: "VM", + Krunkit: "VM", VirtualBox: "VM", HyperKit: "VM", VMware: "VM", diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index afbf1a4cabe0..13163b15e3ca 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -552,15 +552,11 @@ var ( NotFoundVmnetHelper = Kind{ ID: "NOT_FOUND_VMNET_HELPER", ExitCode: ExProgramNotFound, - Advice: translate.T(`vmnet-helper was not found on the system, resolve by: + Advice: translate.T(`vmnet-helper was not found on the system. - Option 1) Installing vmnet-helper: + Please install vmnet-helper using these instrunctions: - https://github.com/nirs/vmnet-helper#installation - - Option 2) Using the nat network: - - minikube start{{.profile}} --driver vfkit --network nat`), + https://github.com/nirs/vmnet-helper#installation`), Style: style.SeeNoEvil, } NotConfiguredVmnetHelper = Kind{ diff --git a/pkg/minikube/registry/drvs/init.go b/pkg/minikube/registry/drvs/init.go index d4276d23afc3..c38ed7d1714c 100644 --- a/pkg/minikube/registry/drvs/init.go +++ b/pkg/minikube/registry/drvs/init.go @@ -21,6 +21,7 @@ import ( _ "k8s.io/minikube/pkg/minikube/registry/drvs/docker" _ "k8s.io/minikube/pkg/minikube/registry/drvs/hyperkit" _ "k8s.io/minikube/pkg/minikube/registry/drvs/hyperv" + _ "k8s.io/minikube/pkg/minikube/registry/drvs/krunkit" _ "k8s.io/minikube/pkg/minikube/registry/drvs/kvm2" _ "k8s.io/minikube/pkg/minikube/registry/drvs/none" _ "k8s.io/minikube/pkg/minikube/registry/drvs/parallels" diff --git a/pkg/minikube/registry/drvs/krunkit/doc.go b/pkg/minikube/registry/drvs/krunkit/doc.go new file mode 100644 index 000000000000..5023cbddd084 --- /dev/null +++ b/pkg/minikube/registry/drvs/krunkit/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2024 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package krunkit diff --git a/pkg/minikube/registry/drvs/krunkit/krunkit.go b/pkg/minikube/registry/drvs/krunkit/krunkit.go new file mode 100644 index 000000000000..f008cf0aeb70 --- /dev/null +++ b/pkg/minikube/registry/drvs/krunkit/krunkit.go @@ -0,0 +1,92 @@ +//go:build darwin + +/* +Copyright 2024 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package krunkit + +import ( + "fmt" + "os/exec" + "path/filepath" + + "github.com/docker/machine/libmachine/drivers" + "github.com/google/uuid" + + "k8s.io/minikube/pkg/drivers/krunkit" + "k8s.io/minikube/pkg/drivers/vmnet" + "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/driver" + "k8s.io/minikube/pkg/minikube/localpath" + "k8s.io/minikube/pkg/minikube/registry" +) + +const ( + docURL = "https://minikube.sigs.k8s.io/docs/reference/drivers/krunkit/" +) + +func init() { + if err := registry.Register(registry.DriverDef{ + Name: driver.Krunkit, + Init: func() drivers.Driver { return krunkit.NewDriver("", "") }, + Config: configure, + Status: status, + Default: true, + Priority: registry.Experimental, + }); err != nil { + panic(fmt.Sprintf("register failed: %v", err)) + } +} + +func configure(cfg config.ClusterConfig, n config.Node) (interface{}, error) { + machineName := config.MachineName(cfg, n) + storePath := localpath.MiniPath() + + // We generate a random UUID (or use a user provided one). vment-helper will + // obtain a mac address from the vmnet framework using the UUID. + u := cfg.UUID + if u == "" { + u = uuid.NewString() + } + + return &krunkit.Driver{ + BaseDriver: &drivers.BaseDriver{ + MachineName: machineName, + StorePath: storePath, + SSHUser: "docker", + }, + Boot2DockerURL: download.LocalISOResource(cfg.MinikubeISO), + DiskSize: cfg.DiskSize, + Memory: cfg.Memory, + CPU: cfg.CPUs, + ExtraDisks: cfg.ExtraDisks, + VmnetHelper: vmnet.Helper{ + MachineDir: filepath.Join(storePath, "machines", machineName), + InterfaceID: u, + // Required Until https://github.com/containers/libkrun/issues/264 is fixed. + Offloading: true, + }, + }, nil +} + +func status() registry.State { + _, err := exec.LookPath("krunkit") + if err != nil { + return registry.State{Error: err, Fix: "Run 'brew tap slp/krunkit && brew install krunkit'", Doc: docURL} + } + return registry.State{Installed: true, Healthy: true, Running: true} +} diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 02a9215d4212..d8d6fbf3aa0e 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -53,7 +53,7 @@ minikube start [flags] The key should be '.' separated, and the first part before the dot is the component to apply the configuration to. Valid components are: kubelet, kubeadm, apiserver, controller-manager, etcd, proxy, scheduler Valid kubeadm parameters: ignore-preflight-errors, dry-run, kubeconfig, kubeconfig-dir, node-name, cri-socket, experimental-upload-certs, certificate-key, rootfs, skip-phases, pod-network-cidr - --extra-disks int Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit, kvm2, qemu2, and vfkit drivers) + --extra-disks int Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit, kvm2, qemu2, vfkit, and krunkit drivers) --feature-gates string A set of key=value pairs that describe feature gates for alpha/experimental features. --force Force minikube to perform possibly dangerous operations --force-systemd If set, force the container runtime to use systemd as cgroup manager. Defaults to false. diff --git a/site/content/en/docs/drivers/_index.md b/site/content/en/docs/drivers/_index.md index 59893f4f0ef7..65460b5219b3 100644 --- a/site/content/en/docs/drivers/_index.md +++ b/site/content/en/docs/drivers/_index.md @@ -33,6 +33,7 @@ To do so, we use the [Docker Machine](https://github.com/docker/machine) library * [QEMU]({{}}) - VM * [Podman]({{}}) - VM + Container (experimental) * [VFkit]({{}}) - VM (preferred) +* [Krunkit]({{}}) - VM (experimental) * [SSH]({{}}) - remote ssh ## Windows diff --git a/site/content/en/docs/drivers/krunkit.md b/site/content/en/docs/drivers/krunkit.md new file mode 100644 index 000000000000..e2a1f2bbc1bf --- /dev/null +++ b/site/content/en/docs/drivers/krunkit.md @@ -0,0 +1,92 @@ +--- +title: "krunkit" +weight: 2 +aliases: + - /docs/reference/drivers/krunkit +--- + +## Overview + +[krunkit](https://github.com/containers/krunkit) is an open-source program for +macOS virtualization, optimized for GPU accelerated virtual machines and AI +workloads. + +## Requirements + +- Available only on Apple silicon +- Requires macOS 10.15 or later +- Requires minikube version 1.37.0 or later. +- Requires [vmnet-helper](https://github.com/nirs/vmnet-helper). + +## Networking + +The krunkit driver requires [vmnet-helper](https://github.com/nirs/vmnet-helper), see +installation instructions bellow. + +### Install vment-helper + +```shell +tag="$(curl -fsSL https://api.github.com/repos/nirs/vmnet-helper/releases/latest | jq -r .tag_name)" +machine="$(uname -m)" +archive="vmnet-helper-$tag-$machine.tar.gz" +curl -LOf "https://github.com/nirs/vmnet-helper/releases/download/$tag/$archive" +sudo tar xvf "$archive" -C / opt/vmnet-helper +rm "$archive" +``` + +The command downloads the latest release from github and installs it to +`/opt/vmnet-helper`. + +**IMPORTANT**: The vmnet-helper executable and the directory where it is +installed must be owned by root and may not be modifiable by +unprivileged users. + +### Grant permission to run vmnet-helper + +The vment-helper process must run as root to create a vmnet interface. +To allow users in the `staff` group to run the vmnet helper without a +password, you can install the default sudoers rule: + +```shell +sudo install -m 0640 /opt/vmnet-helper/share/doc/vmnet-helper/sudoers.d/vmnet-helper /etc/sudoers.d/ +``` + +You can change the sudoers configuration to allow access to specific +users or other groups. + +### Usage + +```shell +minikube start --driver krunkit +``` + +## Issues + +### Other + +* [Full list of open 'krunkit' driver issues](https://github.com/kubernetes/minikube/labels/co%2Fkrunkit) + +## Troubleshooting + +### Run with logs + +Run `minikube start --driver vfkit --alsologtostderr -v=7` to debug crashes + +### Troubleshooting vmnet-helper + +Check for errors in vment-helper log: + +```shell +$MINIKUBE_HOME/.minikube/machines/MACHINE-NAME/vmnet-helper.log +``` + +Check that the `vmnet-helper` process is running: + +```shell +ps au | grep vmnet-helper | grep -v grep +``` + +If the helper is not running restart the minikube cluster. + +For help with vment-helper please use the +[discussions](https://github.com/nirs/vmnet-helper/discussions).