Skip to content

Commit 9fd6673

Browse files
authored
Merge pull request #337 from WebPlatformForEmbedded/development/lxc-kernel-5.10
Container related kernel configuration changes for 5.10.
2 parents c6aaee2 + f10f540 commit 9fd6673

13 files changed

+1111
-166
lines changed

board/raspberrypi/rpi23-linux-5.10-container.config

Lines changed: 794 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
BR2_arm=y
2+
BR2_cortex_a53=y
3+
BR2_ARM_FPU_NEON_VFPV4=y
4+
BR2_ARM_INSTRUCTIONS_THUMB2=y
5+
BR2_CCACHE=y
6+
BR2_OPTIMIZE_2=y
7+
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
8+
BR2_BINUTILS_VERSION_2_33_X=y
9+
BR2_GCC_VERSION_9_X=y
10+
BR2_TOOLCHAIN_BUILDROOT_CXX=y
11+
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
12+
BR2_TARGET_GENERIC_ROOT_PASSWD="root"
13+
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi3/post-build.sh"
14+
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi3/post-image.sh"
15+
BR2_ROOTFS_POST_SCRIPT_ARGS="--rpi-wifi --add-miniuart-bt-overlay --overclock-pi3 --tvmode-720 --gpu_mem_1024=384 --silent --1w --i2c --spi"
16+
BR2_LINUX_KERNEL=y
17+
BR2_LINUX_KERNEL_CUSTOM_GIT=y
18+
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
19+
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-5.10.y"
20+
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
21+
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/raspberrypi/rpi23-linux-5.10-container.config"
22+
BR2_LINUX_KERNEL_LZ4=y
23+
BR2_LINUX_KERNEL_DTS_SUPPORT=y
24+
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3"
25+
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
26+
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP=y
27+
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT=y
28+
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO=y
29+
BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL=y
30+
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
31+
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS=y
32+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX=y
33+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS=y
34+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
35+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEINTERLACE=y
36+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ICYDEMUX=y
37+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX=y
38+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_INTERLEAVE=y
39+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y
40+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MPG123=y
41+
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC=y
42+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEGTSDEMUX=y
43+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC=y
44+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
45+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DASH=y
46+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD=y
47+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC=y
48+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS=y
49+
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS=y
50+
BR2_PACKAGE_GST_OMX=y
51+
BR2_PACKAGE_BITSTREAM_VERA=y
52+
BR2_PACKAGE_RPI_BT_FIRMWARE=y
53+
BR2_PACKAGE_RPI_FIRMWARE=y
54+
BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG=y
55+
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
56+
BR2_PACKAGE_RNG_TOOLS=y
57+
BR2_PACKAGE_CA_CERTIFICATES=y
58+
BR2_PACKAGE_WPEFRAMEWORK=y
59+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_CLEARKEY=y
60+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_PLAYREADY_MODULE=y
61+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_PLAYREADY_CERTIFICATE_LABEL="playready4"
62+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_WIDEVINE_MODULE=y
63+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_WIDEVINE_DEVICE_CERTIFICATE="Widevine/cert.bin"
64+
BR2_PACKAGE_WPEFRAMEWORK_CDMI_WIDEVINE_NEW_CENC_INTERFACE=y
65+
BR2_PACKAGE_WPEFRAMEWORK_COMPOSITOR=y
66+
BR2_PACKAGE_WPEFRAMEWORK_DHCPSERVER=y
67+
BR2_PACKAGE_WPEFRAMEWORK_LOCATIONSYNC=y
68+
BR2_PACKAGE_WPEFRAMEWORK_LOCATIONSYNC_URI="http://jsonip.metrological.com/?maf=true"
69+
BR2_PACKAGE_WPEFRAMEWORK_MONITOR=y
70+
BR2_PACKAGE_WPEFRAMEWORK_REMOTECONTROL=y
71+
BR2_PACKAGE_WPEFRAMEWORK_REMOTECONTROL_DEVINPUT=y
72+
BR2_PACKAGE_WPEFRAMEWORK_SNAPSHOT=y
73+
BR2_PACKAGE_WPEFRAMEWORK_TIMESYNC=y
74+
BR2_PACKAGE_WPEFRAMEWORK_TRACECONTROL=y
75+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER=y
76+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER_STARTURL="file:///www/index.html"
77+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER_MEMORYPRESSURE="databaseprocess:50m,networkprocess:80m,webprocess:250m,rpcprocess:80m"
78+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER_DISKCACHE="512m"
79+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER_XHRCACHE=y
80+
BR2_PACKAGE_WPEFRAMEWORK_YOUTUBE=y
81+
BR2_PACKAGE_WPEFRAMEWORK_UX=y
82+
BR2_PACKAGE_WPEFRAMEWORK_WEBKITBROWSER_THREADEDPAINTING="2"
83+
BR2_PACKAGE_WPEFRAMEWORK_WEBSERVER=y
84+
BR2_PACKAGE_WPEFRAMEWORK_WIFICONTROL=y
85+
BR2_PACKAGE_WPEWEBKIT2_22=y
86+
BR2_PACKAGE_ORC=y
87+
BR2_PACKAGE_SHARED_MIME_INFO=y
88+
BR2_PACKAGE_DROPBEAR=y
89+
BR2_PACKAGE_RDKSPLASHSCREEN=y
90+
BR2_PACKAGE_RDKSPLASHSCREEN_OPERATOR="metrological"
91+
BR2_PACKAGE_HOST_DOSFSTOOLS=y
92+
BR2_PACKAGE_HOST_GENIMAGE=y
93+
#BR2_PACKAGE_WPEFRAMEWORK_BUILD_TYPE_DEBUG=y
94+
#BR2_PACKAGE_WPEFRAMEWORK_APPS=y
95+
BR2_PACKAGE_LIBCGROUP=y
96+
BR2_PACKAGE_LIBCGROUP_TOOLS=y
97+
BR2_PACKAGE_COLLECTD=y
98+
BR2_PACKAGE_COLLECTD_CGROUPS=y
99+
BR2_PACKAGE_BRIDGE_UTILS=y
100+
BR2_PACKAGE_IPTABLES=y
101+
BR2_PACKAGE_CGROUPFS_MOUNT=y
102+
BR2_PACKAGE_LXC=y
103+
BR2_PACKAGE_HOST_MTOOLS=y

package/Config.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2330,6 +2330,7 @@ menu "System tools"
23302330
source "package/kvmtool/Config.in"
23312331
source "package/libostree/Config.in"
23322332
source "package/lxc/Config.in"
2333+
source "package/crun/Config.in"
23332334
source "package/mender/Config.in"
23342335
source "package/mender-grubenv/Config.in"
23352336
source "package/mfoc/Config.in"
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
From 5edb3adc3a5d64113d056da46db634ecc2871e75 Mon Sep 17 00:00:00 2001
2+
From: Michal Pogoda <[email protected]>
3+
Date: Tue, 17 Mar 2020 16:55:20 +0100
4+
Subject: [PATCH 1/2] Preparing for library build
5+
6+
---
7+
Makefile.am | 19 +++++++++++++++++++
8+
configure.ac | 5 ++++-
9+
libcrun.pc.in | 11 +++++++++++
10+
libocispec/Makefile.am | 13 +++----------
11+
src/libcrun/container.c | 2 +-
12+
src/libcrun/error.c | 2 +-
13+
6 files changed, 39 insertions(+), 13 deletions(-)
14+
create mode 100644 libcrun.pc.in
15+
16+
diff --git a/Makefile.am b/Makefile.am
17+
index 8f96a4f..5e86199 100644
18+
--- a/Makefile.am
19+
+++ b/Makefile.am
20+
@@ -38,6 +38,25 @@ libcrun_la_SOURCES = src/libcrun/utils.c \
21+
libcrun_la_CFLAGS = -I $(abs_top_builddir)/libocispec/src -I $(abs_top_srcdir)/libocispec/src
22+
libcrun_la_LIBADD = libocispec/libocispec.la
23+
24+
+pkginclude_HEADERS = src/libcrun/container.h \
25+
+ config.h \
26+
+ src/libcrun/error.h \
27+
+ src/libcrun/status.h \
28+
+ src/libcrun/utils.h \
29+
+ libocispec/src/runtime_spec_schema_config_schema.h \
30+
+ libocispec/src/runtime_spec_schema_config_linux.h \
31+
+ libocispec/src/runtime_spec_schema_config_solaris.h \
32+
+ libocispec/src/runtime_spec_schema_config_windows.h \
33+
+ libocispec/src/runtime_spec_schema_config_vm.h \
34+
+ libocispec/src/runtime_spec_schema_defs.h \
35+
+ libocispec/src/runtime_spec_schema_defs_linux.h \
36+
+ libocispec/src/runtime_spec_schema_defs_windows.h \
37+
+ libocispec/src/runtime_spec_schema_defs_vm.h \
38+
+ libocispec/src/json_common.h
39+
+
40+
+pkgconfigdir = @pkgconfigdir@
41+
+pkgconfig_DATA = libcrun.pc
42+
+
43+
if PYTHON_BINDINGS
44+
pyexec_LTLIBRARIES = python_crun.la
45+
python_crun_la_SOURCES = python/crun_python.c
46+
diff --git a/configure.ac b/configure.ac
47+
index ea6ed11..cab11ec 100644
48+
--- a/configure.ac
49+
+++ b/configure.ac
50+
@@ -123,7 +123,10 @@ AC_SEARCH_LIBS([argp_parse], [argp], [], [AC_MSG_ERROR([*** argp functions not f
51+
AM_CONDITIONAL([PYTHON_BINDINGS], [test "x$with_python_bindings" = "xyes"])
52+
AM_CONDITIONAL([CRIU_SUPPORT], [test "x$have_criu" = "xyes"])
53+
54+
-AC_CONFIG_FILES([Makefile rpm/crun.spec])
55+
+PKG_INSTALLDIR
56+
+AC_SUBST(pkgconfigdir)
57+
+
58+
+AC_CONFIG_FILES([Makefile rpm/crun.spec libcrun.pc])
59+
60+
AC_CONFIG_SUBDIRS([libocispec])
61+
AC_OUTPUT
62+
diff --git a/libcrun.pc.in b/libcrun.pc.in
63+
new file mode 100644
64+
index 0000000..54ee2eb
65+
--- /dev/null
66+
+++ b/libcrun.pc.in
67+
@@ -0,0 +1,11 @@
68+
+prefix=@prefix@
69+
+exec_prefix=@exec_prefix@
70+
+libdir=@libdir@
71+
+includedir=@includedir@
72+
+
73+
+Name: LibCRun
74+
+Description: Library for running the OCI containers
75+
+Version: 0.1.13
76+
+Requires: libseccomp libcap yajl
77+
+Cflags: -I${includedir}/crun -I${includedir}
78+
+Libs: -L${libdir} -lseccomp -lcap -lyajl -lcrun
79+
\ No newline at end of file
80+
diff --git a/libocispec/Makefile.am b/libocispec/Makefile.am
81+
index 65bed45..53a8b32 100644
82+
--- a/libocispec/Makefile.am
83+
+++ b/libocispec/Makefile.am
84+
@@ -4,8 +4,7 @@ AM_CFLAGS = $(WARN_CFLAGS) -I$(top_srcdir)/src -I$(top_builddir)/src
85+
86+
GITIGNOREFILES = build-aux/ gtk-doc.make config.h.in aclocal.m4
87+
88+
-noinst_LTLIBRARIES = libocispec.la
89+
-noinst_LIBRARIES = libocispec.a
90+
+lib_LTLIBRARIES = libocispec.la
91+
92+
SOURCE_FILES = src/json_common.c \
93+
src/image_spec_schema_config_schema.c \
94+
@@ -25,9 +24,8 @@ SOURCE_FILES = src/json_common.c \
95+
src/runtime_spec_schema_defs_vm.c \
96+
src/runtime_spec_schema_defs_windows.c \
97+
src/runtime_spec_schema_state_schema.c \
98+
- src/image_manifest_items_image_manifest_items_schema.c \
99+
- src/json_common.c
100+
-
101+
+ src/image_manifest_items_image_manifest_items_schema.c
102+
+
103+
HEADER_FILES = $(SOURCE_FILES:.c=.h)
104+
105+
src/json_common.h src/json_common.c:
106+
@@ -61,15 +59,10 @@ BUILT_SOURCES = $(HEADER_FILES) $(SOURCE_FILES)
107+
libocispec_la_SOURCES = $(SOURCE_FILES) \
108+
src/read-file.c
109+
110+
-libocispec_a_SOURCES =
111+
-
112+
CLEANFILES += $(HEADER_FILES) $(SOURCE_FILES)
113+
114+
TESTS_LDADD = libocispec.la $(SELINUX_LIBS) $(YAJL_LIBS)
115+
116+
-libocispec.a: libocispec.la
117+
- $(LIBTOOL) --mode=link $(GCC) libocispec.la -o libocispec.a
118+
-
119+
tests_test_1_SOURCES = tests/test-1.c
120+
tests_test_1_LDADD = $(TESTS_LDADD)
121+
122+
diff --git a/src/libcrun/container.c b/src/libcrun/container.c
123+
index 22cb41f..7f7dafc 100644
124+
--- a/src/libcrun/container.c
125+
+++ b/src/libcrun/container.c
126+
@@ -1778,7 +1778,7 @@ libcrun_container_run (libcrun_context_t *context, libcrun_container_t *containe
127+
crun_set_output_handler (log_write_to_stderr, NULL, false);
128+
libcrun_fail_with_error ((*err)->status, "%s", (*err)->msg);
129+
}
130+
- exit (ret);
131+
+ _exit (ret);
132+
}
133+
134+
int
135+
diff --git a/src/libcrun/error.c b/src/libcrun/error.c
136+
index cb49b0d..56ea309 100644
137+
--- a/src/libcrun/error.c
138+
+++ b/src/libcrun/error.c
139+
@@ -386,7 +386,7 @@ libcrun_fail_with_error (int errno_, const char *msg, ...)
140+
va_start (args_list, msg);
141+
write_log (errno_, false, msg, args_list);
142+
va_end (args_list);
143+
- exit (EXIT_FAILURE);
144+
+ _exit (EXIT_FAILURE);
145+
}
146+
147+
int
148+
--
149+
2.20.1
150+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
From 0679805f6105d6b226fda00d265bdb3690eeeda2 Mon Sep 17 00:00:00 2001
2+
From: Michal Pogoda <[email protected]>
3+
Date: Thu, 9 Apr 2020 16:07:43 +0200
4+
Subject: [PATCH 2/2] Fix cpuacct not beeing created
5+
6+
---
7+
src/libcrun/cgroup.c | 2 +-
8+
1 file changed, 1 insertion(+), 1 deletion(-)
9+
10+
diff --git a/src/libcrun/cgroup.c b/src/libcrun/cgroup.c
11+
index 6947eaf..9a5d34d 100644
12+
--- a/src/libcrun/cgroup.c
13+
+++ b/src/libcrun/cgroup.c
14+
@@ -39,7 +39,7 @@
15+
16+
static const cgroups_subsystem_t cgroups_subsystems[] = { "cpuset", "cpu", "devices", "pids", "memory",
17+
"net_cls,net_prio", "freezer", "blkio",
18+
- "hugetlb", "cpu,cpuacct", "perf_event",
19+
+ "hugetlb", "cpu", "cpuacct", "perf_event",
20+
"unified", NULL};
21+
22+
const cgroups_subsystem_t *
23+
--
24+
2.20.1
25+

package/crun/Config.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
config BR2_PACKAGE_CRUN
2+
bool "crun"
3+
select BR2_PACKAGE_YAJL
4+
select BR2_PACKAGE_LIBSECCOMP
5+
select BR2_PACKAGE_LIBCAP
6+
help
7+
this package installs 'crun', which is a
8+
runc reimplementation in C

package/crun/crun.mk

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
################################################################################
2+
#
3+
# crun
4+
#
5+
################################################################################
6+
7+
CRUN_VERSION = 0.13
8+
CRUN_SITE = https://github.com/containers/crun/releases/download/$(CRUN_VERSION)
9+
CRUN_LICENSE = GPLv2+
10+
CRUN_LICENSE_FILES = COPYING
11+
CRUN_INSTALL_STAGING = YES
12+
CRUN_AUTORECONF = YES
13+
CRUN_DEPENDENCIES = host-python3 yajl libcap libseccomp
14+
15+
CRUN_CONF_OPTS = --disable-systemd --enable-shared
16+
CRUN_CONF_ENV = PYTHON=python3
17+
18+
$(eval $(autotools-package))

package/lxc/0001-syscall_wrappers-rename-internal-memfd_create-to-mem.patch

Lines changed: 0 additions & 43 deletions
This file was deleted.

package/lxc/0002-configure.ac-fix-build-on-toolchain-without-SSP.patch

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)