From f20b7ecf73f089d9a7d7ee497b540212ca317620 Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Tue, 31 May 2022 11:03:17 +0100 Subject: [PATCH 1/7] Fix minikube.iso target when not running inside docker. Fixes: d92f42a6e459 ("fix the minikube.iso make target") Signed-off-by: Francis Laniel --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 346dfd061459..48bdd5c41456 100644 --- a/Makefile +++ b/Makefile @@ -322,7 +322,7 @@ ifeq ($(IN_DOCKER),1) else docker run --rm --workdir /mnt --volume $(CURDIR):/mnt $(ISO_DOCKER_EXTRA_ARGS) \ --user $(shell id -u):$(shell id -g) --env HOME=/tmp --env IN_DOCKER=1 \ - $(ISO_BUILD_IMAGE) /bin/bash -lc '/usr/bin/make out/minikube.iso' + $(ISO_BUILD_IMAGE) /bin/bash -lc '/usr/bin/make minikube-iso-$*' endif iso_in_docker: From 4f03ea51cbee4049e9e2b7741a1ed8bd1f40650d Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Fri, 8 Apr 2022 10:44:18 +0100 Subject: [PATCH 2/7] Add tbb package. This is needed by sysdig 0.27.1. It is based on the following patch: https://lore.kernel.org/buildroot/20220407182425.194001-2-flaniel@linux.microsoft.com/T/#u Signed-off-by: Francis Laniel --- deploy/iso/minikube-iso/package/Config.in | 1 + .../0001-tbb-Enable-cross-compilation.patch | 55 +++++++++++++++++++ deploy/iso/minikube-iso/package/tbb/Config.in | 16 ++++++ deploy/iso/minikube-iso/package/tbb/tbb.hash | 2 + deploy/iso/minikube-iso/package/tbb/tbb.mk | 39 +++++++++++++ 5 files changed, 113 insertions(+) create mode 100644 deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch create mode 100644 deploy/iso/minikube-iso/package/tbb/Config.in create mode 100644 deploy/iso/minikube-iso/package/tbb/tbb.hash create mode 100644 deploy/iso/minikube-iso/package/tbb/tbb.mk diff --git a/deploy/iso/minikube-iso/package/Config.in b/deploy/iso/minikube-iso/package/Config.in index 3cb958fae672..fb09317e73e8 100644 --- a/deploy/iso/minikube-iso/package/Config.in +++ b/deploy/iso/minikube-iso/package/Config.in @@ -1,4 +1,5 @@ menu "System tools" + source "$BR2_EXTERNAL_MINIKUBE_PATH/package/tbb/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crun/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/automount/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/gluster/Config.in" diff --git a/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch b/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch new file mode 100644 index 000000000000..652d59c47be2 --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch @@ -0,0 +1,55 @@ +From 42c3faff14917f687aab405d8f571e352ffdf3f5 Mon Sep 17 00:00:00 2001 +From: Francis Laniel +Date: Wed, 6 Apr 2022 15:58:02 +0100 +Subject: [PATCH] tbb: Enable cross-compilation. + +This patch replaces hardcoded value for CPLUS and CONLY with $(CXX) and $(CC). +So, by defining CC= it is possible to cross compile this library using a +cross-compiler. + +This patch was originally written by: +Marcin Juszkiewicz +and taken from: +https://github.com/intel/luv-yocto/blob/3b0688bc9a5e8d52b6ca461b15fb4abd3eaaf7a8/meta-oe/recipes-support/tbb/tbb/cross-compile.patch + +Signed-off-by: Francis Laniel +--- + build/linux.clang.inc | 5 +++-- + build/linux.gcc.inc | 5 +++-- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/build/linux.clang.inc b/build/linux.clang.inc +index 5a459ef5..a0777db5 100644 +--- a/build/linux.clang.inc ++++ b/build/linux.clang.inc +@@ -31,8 +31,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = clang++ +-CONLY = clang ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc +index 786c4153..30242a82 100644 +--- a/build/linux.gcc.inc ++++ b/build/linux.gcc.inc +@@ -32,8 +32,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = g++ +-CONLY = gcc ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +-- +2.25.1 + diff --git a/deploy/iso/minikube-iso/package/tbb/Config.in b/deploy/iso/minikube-iso/package/tbb/Config.in new file mode 100644 index 000000000000..0f40b74d31f9 --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_TBB + bool "tbb" + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + help + Intel(R) Threading Building Blocks (Intel(R) TBB) lets you + easily write parallel C++ programs that take full advantage + of multicore performance, that are portable, composable and + have future-proof scalability. + + https://www.threadingbuildingblocks.org/ + +comment "tbb needs a glibc toolchain w/ dynamic library, threads, C++" + depends on !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/deploy/iso/minikube-iso/package/tbb/tbb.hash b/deploy/iso/minikube-iso/package/tbb/tbb.hash new file mode 100644 index 000000000000..e9fb7511b85e --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/tbb.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b8dbab5aea2b70cf07844f86fa413e549e099aa3205b6a04059ca92ead93a372 tbb-2018_U5.tar.gz diff --git a/deploy/iso/minikube-iso/package/tbb/tbb.mk b/deploy/iso/minikube-iso/package/tbb/tbb.mk new file mode 100644 index 000000000000..cf06579b988b --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/tbb.mk @@ -0,0 +1,39 @@ +################################################################################ +# +# tbb +# +################################################################################ + +TBB_VERSION = 2018_U5 +TBB_SITE = $(call github,01org,tbb,$(TBB_VERSION)) +TBB_INSTALL_STAGING = YES +TBB_LICENSE = Apache-2.0 +TBB_LICENSE_FILES = LICENSE + +TBB_SO_VERSION = 2 +TBB_LIBS = libtbb libtbbmalloc libtbbmalloc_proxy +TBB_BIN_PATH = $(@D)/build/linux_* + +define TBB_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) arch=$(BR2_ARCH) -C $(@D) +endef + +define TBB_INSTALL_LIBS + $(foreach lib,$(TBB_LIBS), + $(INSTALL) -D -m 0755 $(TBB_BIN_PATH)/$(lib).so.$(TBB_SO_VERSION) \ + $(1)/usr/lib/$(lib).so.$(TBB_SO_VERSION) ; + ln -sf $(lib).so.$(TBB_SO_VERSION) $(1)/usr/lib/$(lib).so + ) +endef + +define TBB_INSTALL_STAGING_CMDS + mkdir -p $(STAGING_DIR)/usr/include/ + cp -a $(@D)/include/* $(STAGING_DIR)/usr/include/ + $(call TBB_INSTALL_LIBS,$(STAGING_DIR)) +endef + +define TBB_INSTALL_TARGET_CMDS + $(call TBB_INSTALL_LIBS,$(TARGET_DIR)) +endef + +$(eval $(generic-package)) From f0ccf77945bea213b9e45f2ef1a340b05d47cf4b Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Fri, 8 Apr 2022 10:44:58 +0100 Subject: [PATCH 3/7] Add sysdig 0.27.1 package. This package is used in place of sysdig 0.23.1 which comes with buildroot. Indeed, sysdig 0.23.1 does not compile with recent kernel. It is based on the following patch: https://lore.kernel.org/buildroot/20220407182425.194001-3-flaniel@linux.microsoft.com/T/#u Signed-off-by: Francis Laniel --- Makefile | 2 + deploy/iso/minikube-iso/package/Config.in | 1 + ...ATCH_COMMAND-to-fix-lua-types-and-fu.patch | 82 +++++++++++++++++++ .../iso/minikube-iso/package/sysdig/Config.in | 38 +++++++++ .../minikube-iso/package/sysdig/sysdig.hash | 4 + .../iso/minikube-iso/package/sysdig/sysdig.mk | 52 ++++++++++++ 6 files changed, 179 insertions(+) create mode 100644 deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch create mode 100644 deploy/iso/minikube-iso/package/sysdig/Config.in create mode 100644 deploy/iso/minikube-iso/package/sysdig/sysdig.hash create mode 100644 deploy/iso/minikube-iso/package/sysdig/sysdig.mk diff --git a/Makefile b/Makefile index 48bdd5c41456..d83eb5a7f602 100644 --- a/Makefile +++ b/Makefile @@ -292,6 +292,8 @@ minikube-iso-%: deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/ if [ ! -d $(BUILD_DIR)/buildroot ]; then \ mkdir -p $(BUILD_DIR); \ git clone --depth=1 --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ + perl -pi -e 's@\s+source "package/sysdig/Config\.in"\n@@;' $(BUILD_DIR)/buildroot/package/Config.in; \ + rm -r $(BUILD_DIR)/buildroot/package/sysdig; \ cp deploy/iso/minikube-iso/go.hash $(BUILD_DIR)/buildroot/package/go/go.hash; \ fi; $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) O=$(BUILD_DIR)/buildroot/output-$* minikube_$*_defconfig diff --git a/deploy/iso/minikube-iso/package/Config.in b/deploy/iso/minikube-iso/package/Config.in index fb09317e73e8..8fbd6c82f289 100644 --- a/deploy/iso/minikube-iso/package/Config.in +++ b/deploy/iso/minikube-iso/package/Config.in @@ -1,5 +1,6 @@ menu "System tools" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/tbb/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/package/sysdig/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crun/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/automount/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/gluster/Config.in" diff --git a/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch b/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch new file mode 100644 index 000000000000..78732102813b --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch @@ -0,0 +1,82 @@ +From cc8bccc3ebb90103900a7f0f2b085ddb723b8792 Mon Sep 17 00:00:00 2001 +From: Francis Laniel +Date: Wed, 6 Apr 2022 16:54:37 +0100 +Subject: [PATCH] libsinsp: Apply PATCH_COMMAND to fix lua types and function. + +Buildroot luajit 5.1 seems to not have compatibility between luaL_reg and +luaL_Reg. +So, we apply sysdig CMakeLists.txt PATCH_COMMAND to fix this and lua function +call as well. +Note that, this PATCH_COMMAND was added in sysdig in: +a064440394c9 ("Adding power support to Travis builds (#1566)") + +This patch is also present in kubernetes/minikube in: +f036c279bc59 ("Add patch for compiling sysdig with system luajit") + +Signed-off-by: Francis Laniel +--- + userspace/libsinsp/chisel.cpp | 6 +++--- + userspace/libsinsp/lua_parser.cpp | 2 +- + userspace/libsinsp/lua_parser_api.cpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp +index 0a6e3cf8..0c2e255a 100644 +--- a/userspace/libsinsp/chisel.cpp ++++ b/userspace/libsinsp/chisel.cpp +@@ -98,7 +98,7 @@ void lua_stackdump(lua_State *L) + // Lua callbacks + /////////////////////////////////////////////////////////////////////////////// + #ifdef HAS_LUA_CHISELS +-const static struct luaL_reg ll_sysdig [] = ++const static struct luaL_Reg ll_sysdig [] = + { + {"set_filter", &lua_cbacks::set_global_filter}, + {"set_snaplen", &lua_cbacks::set_snaplen}, +@@ -134,7 +134,7 @@ const static struct luaL_reg ll_sysdig [] = + {NULL,NULL} + }; + +-const static struct luaL_reg ll_chisel [] = ++const static struct luaL_Reg ll_chisel [] = + { + {"request_field", &lua_cbacks::request_field}, + {"set_filter", &lua_cbacks::set_filter}, +@@ -146,7 +146,7 @@ const static struct luaL_reg ll_chisel [] = + {NULL,NULL} + }; + +-const static struct luaL_reg ll_evt [] = ++const static struct luaL_Reg ll_evt [] = + { + {"field", &lua_cbacks::field}, + {"get_num", &lua_cbacks::get_num}, +diff --git a/userspace/libsinsp/lua_parser.cpp b/userspace/libsinsp/lua_parser.cpp +index 0e26617d..78810d96 100644 +--- a/userspace/libsinsp/lua_parser.cpp ++++ b/userspace/libsinsp/lua_parser.cpp +@@ -32,7 +32,7 @@ extern "C" { + #include "lauxlib.h" + } + +-const static struct luaL_reg ll_filter [] = ++const static struct luaL_Reg ll_filter [] = + { + {"rel_expr", &lua_parser_cbacks::rel_expr}, + {"bool_op", &lua_parser_cbacks::bool_op}, +diff --git a/userspace/libsinsp/lua_parser_api.cpp b/userspace/libsinsp/lua_parser_api.cpp +index c89e9126..c3d8008a 100644 +--- a/userspace/libsinsp/lua_parser_api.cpp ++++ b/userspace/libsinsp/lua_parser_api.cpp +@@ -266,7 +266,7 @@ int lua_parser_cbacks::rel_expr(lua_State *ls) + string err = "Got non-table as in-expression operand\n"; + throw sinsp_exception("parser API error"); + } +- int n = luaL_getn(ls, 4); /* get size of table */ ++ int n = lua_objlen (ls, 4); /* get size of table */ + for (i=1; i<=n; i++) + { + lua_rawgeti(ls, 4, i); +-- +2.25.1 + diff --git a/deploy/iso/minikube-iso/package/sysdig/Config.in b/deploy/iso/minikube-iso/package/sysdig/Config.in new file mode 100644 index 000000000000..5a7fbb50e05d --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/Config.in @@ -0,0 +1,38 @@ +config BR2_PACKAGE_SYSDIG + bool "sysdig" + depends on BR2_LINUX_KERNEL + depends on BR2_INSTALL_LIBSTDCPP # jsoncpp + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils, jq + depends on !BR2_STATIC_LIBS # elfutils + depends on BR2_USE_WCHAR # elfutils + depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils + depends on BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 + select BR2_PACKAGE_C_ARES + select BR2_PACKAGE_ELFUTILS + select BR2_PACKAGE_GRPC + select BR2_PACKAGE_GTEST + select BR2_PACKAGE_JQ + select BR2_PACKAGE_JSONCPP + select BR2_PACKAGE_LIBB64 + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PROTOBUF + select BR2_PACKAGE_TBB + select BR2_PACKAGE_ZLIB + help + Sysdig is open source, system-level exploration: + capture system state and activity from a running Linux + instance, then save, filter and analyze. + Think of it as strace + tcpdump + lsof + awesome sauce. + With a little Lua cherry on top. + + https://github.com/draios/sysdig/wiki + +comment "sysdig needs a glibc or uclibc toolchain w/ C++, threads, gcc >= 4.8, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built" + depends on !BR2_LINUX_KERNEL || !BR2_INSTALL_LIBSTDCPP \ + || !BR2_TOOLCHAIN_HAS_THREADS \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || BR2_STATIC_LIBS \ + || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) \ + || !BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 diff --git a/deploy/iso/minikube-iso/package/sysdig/sysdig.hash b/deploy/iso/minikube-iso/package/sysdig/sysdig.hash new file mode 100644 index 000000000000..4bce674f3e06 --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/sysdig.hash @@ -0,0 +1,4 @@ +# sha256 locally computed +sha256 b9d05854493d245a7a7e75f77fc654508f720aab5e5e8a3a932bd8eb54e49bda sysdig-0.27.1.tar.gz +sha256 57d5b713b875eba35546a1408bf3f20c2703904a17d956be115ee55272db4cfa sysdig-0.23.1.tar.gz +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING diff --git a/deploy/iso/minikube-iso/package/sysdig/sysdig.mk b/deploy/iso/minikube-iso/package/sysdig/sysdig.mk new file mode 100644 index 000000000000..d497c7c381f1 --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/sysdig.mk @@ -0,0 +1,52 @@ +################################################################################ +# +# sysdig +# +################################################################################ + +SYSDIG_VERSION = 0.27.1 +SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION)) +SYSDIG_LICENSE = GPL-2.0 +SYSDIG_LICENSE_FILES = COPYING +SYSDIG_CPE_ID_VENDOR = sysdig +SYSDIG_CONF_OPTS = -DENABLE_DKMS=OFF -DUSE_BUNDLED_DEPS=OFF +SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO + +SYSDIG_DEPENDENCIES = \ + c-ares \ + elfutils \ + gtest \ + grpc \ + jq \ + jsoncpp \ + libb64 \ + libcurl \ + luainterpreter \ + ncurses \ + openssl \ + protobuf \ + tbb \ + zlib + +# sysdig creates the module Makefile from a template, which contains a +# single place-holder, KBUILD_FLAGS, wich is only replaced with two +# things: +# - debug flags, which we don't care about here, +# - 'sysdig-feature' flags, which are never set, so always empty +# So, just replace the place-holder with the only meaningful value: nothing. +define SYSDIG_MODULE_GEN_MAKEFILE + $(INSTALL) -m 0644 $(@D)/driver/Makefile.in $(@D)/driver/Makefile + $(SED) 's/@KBUILD_FLAGS@//;' $(@D)/driver/Makefile + $(SED) 's/@PROBE_NAME@/sysdig-probe/;' $(@D)/driver/Makefile +endef +SYSDIG_POST_PATCH_HOOKS += SYSDIG_MODULE_GEN_MAKEFILE + +# Don't build the driver as part of the 'standard' procedure, we'll +# build it on our own with the kernel-module infra. +SYSDIG_CONF_OPTS += -DBUILD_DRIVER=OFF + +SYSDIG_MODULE_SUBDIRS = driver +SYSDIG_MODULE_MAKE_OPTS = KERNELDIR=$(LINUX_DIR) + +$(eval $(kernel-module)) +$(eval $(cmake-package)) From 770d41f21b42b037fbf4386b1817e3a3d3370aaf Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Wed, 13 Oct 2021 19:28:51 +0200 Subject: [PATCH 4/7] Use kernel 5.10 for minikube.iso. This commit jumps kernel version used in minikube.iso to 5.10. To do so, the following kernel configuration options were added to linux_*_defconfig: - CONFIG_TMPFS to be able to use mount -t tmpfs in init. - CONFIG_PCI to have network. - CONFIG_BRIDGE_NETFILTER to have /proc/sys/net/bridge/bridge-nf-call-iptables which is needed by kubeadm. CONFIG_* relaed to vbox were added to linux_x86_64_defconfig and as consequence vbox related packages were removed since vbox modules are available in upstream kernel. To compile falco module, CONFIG_FTRACE_* were added to linux_aarch64_defconfig. Signed-off-by: Francis Laniel --- Makefile | 2 +- .../arch/x86_64/package/Config.in | 1 - .../package/hyperv-daemons/hyperv-daemons.mk | 2 +- .../arch/x86_64/package/vbox-guest/Config.in | 5 -- .../x86_64/package/vbox-guest/vbox-guest.hash | 9 --- .../x86_64/package/vbox-guest/vbox-guest.mk | 67 ------------------- .../package/vbox-guest/vboxservice.service | 17 ----- .../minikube/aarch64/linux_aarch64_defconfig | 7 +- .../minikube/x86_64/linux_x86_64_defconfig | 6 ++ .../configs/minikube_aarch64_defconfig | 6 +- .../configs/minikube_x86_64_defconfig | 6 +- 11 files changed, 20 insertions(+), 108 deletions(-) delete mode 100644 deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in delete mode 100644 deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash delete mode 100644 deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk delete mode 100644 deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service diff --git a/Makefile b/Makefile index d83eb5a7f602..b4ee75eaeb2d 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ MINIKUBE_BUCKET ?= minikube/releases MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET} MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download -KERNEL_VERSION ?= 4.19.235 +KERNEL_VERSION ?= 5.10.57 # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` GOLINT_VERSION ?= v1.46.2 diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in index 1766727bf76c..25e88687a5e9 100644 --- a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in +++ b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in @@ -10,6 +10,5 @@ menu "System tools x86_64" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni-plugins/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/containerd-bin/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/podman/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/vbox-guest/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/hyperv-daemons/Config.in" endmenu 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 3ea36bbbb00c..dcc26010ee0b 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/v4.x +HYPERV_DAEMONS_SITE = https://www.kernel.org/pub/linux/kernel/v5.x HYPERV_DAEMONS_SOURCE = linux-$(HYPERV_DAEMONS_VERSION).tar.xz define HYPERV_DAEMONS_BUILD_CMDS diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in deleted file mode 100644 index 2147deb04ac9..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in +++ /dev/null @@ -1,5 +0,0 @@ -config BR2_PACKAGE_VBOX_GUEST - bool "vbox-guest" - depends on BR2_x86_64 - depends on BR2_LINUX_KERNEL - diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash deleted file mode 100644 index 8d7c01127bfb..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash +++ /dev/null @@ -1,9 +0,0 @@ -# From http://download.virtualbox.org/virtualbox/5.1.30/SHA256SUMS -sha256 96cab2296fb014ce0a16b7b9603b52208b9403c10c1524b44201d3c274e8a821 VirtualBox-5.1.38.tar.bz2 -sha256 0e7ee2c78ebf7cd0d3a933d51148bef04a64f64fb27ccf70d59cddf9ca1e517a VBoxGuestAdditions_5.1.38.iso -# From http://download.virtualbox.org/virtualbox/5.2.32/SHA256SUMS -sha256 ff6390e50cb03718cd3f5779627910999c12279b465e340c80d7175778a33958 VirtualBox-5.2.32.tar.bz2 -sha256 4311c7408a3410e6a33264a9062347d9eec04f58339a49f0a60488c0cabc8996 VBoxGuestAdditions_5.2.32.iso -# From http://download.virtualbox.org/virtualbox/5.2.42/SHA256SUMS -sha256 e5bee2e34f349aac115ee93974febfe3213ad5e94045fa36b9f04b5f8caa3720 VirtualBox-5.2.42.tar.bz2 -sha256 ff784417295e48e3cee80a596faf05e3b0976e1b94d3b88427939912b0c1fc45 VBoxGuestAdditions_5.2.42.iso diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk deleted file mode 100644 index 2b1eeca93f58..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk +++ /dev/null @@ -1,67 +0,0 @@ -################################################################################ -# -# VirtualBox Linux Guest Drivers -# -################################################################################ - -VBOX_GUEST_VERSION = 5.2.42 -VBOX_GUEST_SITE = http://download.virtualbox.org/virtualbox/$(VBOX_GUEST_VERSION) -VBOX_GUEST_LICENSE = GPLv2 -VBOX_GUEST_LICENSE_FILES = COPYING -VBOX_GUEST_SOURCE = VirtualBox-$(VBOX_GUEST_VERSION).tar.bz2 -VBOX_GUEST_EXTRA_DOWNLOADS = http://download.virtualbox.org/virtualbox/${VBOX_GUEST_VERSION}/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso - -define VBOX_GUEST_EXPORT_MODULES - ( cd $(@D)/src/VBox/Additions/linux; ./export_modules.sh modules.tar.gz ) - mkdir -p $(@D)/vbox-modules - tar -C $(@D)/vbox-modules -xzf $(@D)/src/VBox/Additions/linux/modules.tar.gz -endef - -VBOX_GUEST_POST_EXTRACT_HOOKS += VBOX_GUEST_EXPORT_MODULES - -VBOX_GUEST_MODULE_SUBDIRS = vbox-modules/ -VBOX_GUEST_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED) KERN_DIR=$(LINUX_DIR) - -define VBOX_GUEST_USERS - - -1 vboxsf -1 - - - - - -endef - -define VBOX_GUEST_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 644 \ - $(VBOX_GUEST_PKGDIR)/vboxservice.service \ - $(TARGET_DIR)/usr/lib/systemd/system/vboxservice.service - - ln -fs /usr/lib/systemd/system/vboxservice.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/vboxservice.service -endef - -define VBOX_GUEST_BUILD_CMDS - 7z x -aoa $(BR2_DL_DIR)/vbox-guest/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso -ir'!VBoxLinuxAdditions.run' -o"$(@D)" - sh $(@D)/VBoxLinuxAdditions.run --noexec --target $(@D) - tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 sbin/VBoxService - tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 bin/VBoxControl - - $(TARGET_CC) -Wall -O2 -D_GNU_SOURCE -DIN_RING3 \ - -I$(@D)/vbox-modules/vboxsf/include \ - -I$(@D)/vbox-modules/vboxsf \ - -o $(@D)/vbox-modules/mount.vboxsf \ - $(@D)/src/VBox/Additions/linux/sharedfolders/vbsfmount.c \ - $(@D)/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c -endef - -define VBOX_GUEST_INSTALL_TARGET_CMDS - $(INSTALL) -Dm755 \ - $(@D)/vbox-modules/mount.vboxsf \ - $(TARGET_DIR)/sbin - - $(INSTALL) -Dm755 \ - $(@D)/sbin/VBoxService \ - $(TARGET_DIR)/sbin - - $(INSTALL) -Dm755 \ - $(@D)/bin/VBoxControl \ - $(TARGET_DIR)/bin -endef - -$(eval $(kernel-module)) -$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service deleted file mode 100644 index 5f05bd3d20d1..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=VirtualBox Guest Service -ConditionVirtualization=oracle - -[Service] -ExecStartPre=-/usr/sbin/modprobe vboxguest - -# Broken and probably unused: Unknown symbol ttm_bo_del_sub_from_lru -# ExecStartPre=-/usr/sbin/modprobe vboxvideo - -ExecStartPre=-/usr/sbin/modprobe vboxsf -# Normally, VirtualBox only syncs every 20 minutes. This syncs on start, and -# forces an immediate sync if VM time is over 5 seconds off. -ExecStart=/usr/sbin/VBoxService -f --disable-automount --timesync-set-start --timesync-set-threshold 5000 - -[Install] -WantedBy=multi-user.target 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 2d0a35299955..6580b3eb0979 100644 --- a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig @@ -1,3 +1,9 @@ +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 @@ -1213,5 +1219,4 @@ CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_FTRACE is not set CONFIG_MEMTEST=y 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 2c5364616d26..d1ffd4c0d3b5 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,3 +1,9 @@ +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 diff --git a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig index 2ab5989e6a61..4d2b25421f21 100644 --- a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig @@ -29,13 +29,13 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/genimage.cfg" -# Linux headers same as kernel, a 4.19 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=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="4.19.235" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.57" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_INSTALL_TARGET=y diff --git a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig index 2623be409175..2ad7c3ceec2f 100644 --- a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig @@ -31,13 +31,13 @@ BR2_TARGET_SYSLINUX=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y -# Linux headers same as kernel, a 4.19 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=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="4.19.235" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.57" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_INSTALL_TARGET=y From 06022e80174fd5fa65d9d702546846a0e95ead99 Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Tue, 31 May 2022 11:01:52 +0100 Subject: [PATCH 5/7] For prototyping purpose: Remove CHANGELOG. CHANGELOG file is created by a jenkins related script which I do not run when building the image myself outside of CI Signed-off-by: Francis Laniel --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index b4ee75eaeb2d..31f066685172 100644 --- a/Makefile +++ b/Makefile @@ -287,7 +287,6 @@ minikube-iso-arm64: minikube-iso-aarch64 minikube-iso-%: deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/auto-pause # build minikube iso echo $(ISO_VERSION) > deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/VERSION - cp deploy/iso/minikube-iso/CHANGELOG deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/CHANGELOG cp deploy/iso/minikube-iso/arch/$*/Config.in.tmpl deploy/iso/minikube-iso/Config.in if [ ! -d $(BUILD_DIR)/buildroot ]; then \ mkdir -p $(BUILD_DIR); \ From 9f21f1e4a62ba6cff2d455c23f9919f7dd8d4676 Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Tue, 31 May 2022 15:46:12 +0100 Subject: [PATCH 6/7] Fix linux-menuconfig Makefile target. It now uses the output-* directory corresponding to the target architecture under out/buildroot. Fixes: d1829f24ec6d ("small fixes") Signed-off-by: Francis Laniel --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 31f066685172..397ae2734c82 100644 --- a/Makefile +++ b/Makefile @@ -313,9 +313,9 @@ iso-menuconfig: ## Configure buildroot configuration # Change the kernel configuration for the minikube ISO linux-menuconfig-%: ## Configure Linux kernel configuration - $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ menuconfig - $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ savedefconfig - cp $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/minikube/$*/linux_$*_defconfig + $(MAKE) -C $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/ menuconfig + $(MAKE) -C $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/ savedefconfig + cp $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/minikube/$*/linux_$*_defconfig out/minikube-%.iso: $(shell find "deploy/iso/minikube-iso" -type f) ifeq ($(IN_DOCKER),1) From c0a0f4542d9178b8f00fb57fdaeceaae57e2313c Mon Sep 17 00:00:00 2001 From: Francis Laniel Date: Tue, 7 Jun 2022 10:30:33 +0100 Subject: [PATCH 7/7] For test purpose only: permits the CI running test with this ISO. Signed-off-by: Francis Laniel --- Makefile | 2 +- pkg/minikube/download/iso.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 397ae2734c82..24bf8a3842ca 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.26.0-1653677468-13807 +ISO_VERSION ?= v1.26.0-1654280115-12707 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index dcbe6c90892e..6a9a6e85f1b1 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-builds/iso/13807" + isoBucket := "minikube-builds/iso/12707" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s-%s.iso", v, v, runtime.GOARCH),