Merge pull request #2767 from rn/kern-up

Update kernels (multiple times) and add security related configs
This commit is contained in:
Rolf Neugebauer 2017-11-22 10:48:08 +00:00 committed by GitHub
commit 61ce897d72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
130 changed files with 531 additions and 139 deletions

View File

@ -1,6 +1,6 @@
# This is a blueprint for building the open source components of Docker for Mac
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/vpnkit-expose-port:15c56c57ac9a7adeec20b34f36f2bc165c347679 # install vpnkit-expose-port and vpnkit-iptables-wrapper on host

View File

@ -339,7 +339,7 @@ file:
```
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- <foo>/zfs-kmod:4.9.47

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS1 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,7 +1,7 @@
# Minimal YAML to run a redis server (used at DockerCon'17)
# connect: nc localhost 6379
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,4 +1,4 @@
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS kernel-build
FROM linuxkit/alpine:585174df463ba33e6c0e2050a29a0d9e942d56cb AS kernel-build
RUN apk add \
argp-standalone \
automake \
@ -18,6 +18,8 @@ RUN apk add \
libelf-dev \
libressl-dev \
linux-headers \
mpc1-dev \
mpfr-dev \
ncurses-dev \
sed \
squashfs-tools \
@ -140,7 +142,8 @@ RUN DVER=$(basename $(find /tmp/kernel-modules/lib/modules/ -mindepth 1 -maxdept
-path './arch/*/include' -prune -o \
-path './scripts/*' -prune -o \
-type f \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
-name '*.lds' -o -name '*.pl' -o -name '*.sh' \) | \
-name '*.lds' -o -name '*.pl' -o -name '*.sh' -o \
-name 'objtool' -o -name 'fixdep' -o -name 'randomize_layout_seed.h' \) | \
tar cf - -T - | (cd $dir; tar xf -) && \
( cd /tmp && tar cf /out/kernel-dev.tar usr/src )

View File

@ -1,4 +1,4 @@
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS kernel-build
FROM linuxkit/alpine:585174df463ba33e6c0e2050a29a0d9e942d56cb AS kernel-build
RUN apk add \
argp-standalone \
build-base \
@ -13,7 +13,8 @@ ARG KERNEL_VERSIONS
COPY / /
# Unpack kernels (download if not present)
RUN set -e && for VERSION in ${KERNEL_VERSIONS}; do \
RUN set -e && \
for VERSION in ${KERNEL_VERSIONS}; do \
echo "Downloading/Unpacking $VERSION" && \
KERNEL_SOURCE=https://www.kernel.org/pub/linux/kernel/v4.x/linux-${VERSION}.tar.xz && \
[ -f sources/linux-${VERSION}.tar.xz ] || curl -fSLo sources/linux-${VERSION}.tar.xz ${KERNEL_SOURCE} && \
@ -21,12 +22,12 @@ RUN set -e && for VERSION in ${KERNEL_VERSIONS}; do \
done
# Apply patches to all kernels and move config files into place
RUN for VERSION in ${KERNEL_VERSIONS}; do \
RUN set -e && \
for VERSION in ${KERNEL_VERSIONS}; do \
SERIES=${VERSION%.*}.x && \
echo "Patching $VERSION" && \
echo "Patching $VERSION $SERIES" && \
cd /linux-${VERSION} && \
set -e && \
if [ -d /patches-${KERNEL_SERIES} ]; then \
if [ -d /patches-${SERIES} ]; then \
for patch in /patches-${SERIES}/*.patch; do \
echo "Applying $patch" && \
patch -p1 < "$patch"; \

View File

@ -1,6 +1,6 @@
ARG IMAGE
FROM ${IMAGE} AS ksrc
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS build
FROM linuxkit/alpine:585174df463ba33e6c0e2050a29a0d9e942d56cb AS build
RUN apk add \
attr-dev \
autoconf \
@ -10,6 +10,8 @@ RUN apk add \
git \
libtirpc-dev \
libtool \
mpc1-dev \
mpfr-dev \
util-linux-dev \
zlib-dev

View File

@ -172,13 +172,12 @@ endef
# Build Targets
# Debug targets only for latest stable and LTS stable
#
$(eval $(call kernel,4.14,4.14.x,$(EXTRA)))
$(eval $(call kernel,4.14,4.14.x,-dbg))
$(eval $(call kernel,4.13.13,4.13.x,$(EXTRA)))
$(eval $(call kernel,4.13.13,4.13.x,-dbg))
$(eval $(call kernel,4.9.62,4.9.x,$(EXTRA)))
$(eval $(call kernel,4.9.62,4.9.x,-dbg))
$(eval $(call kernel,4.4.98,4.4.x,$(EXTRA)))
$(eval $(call kernel,4.14.1,4.14.x,$(EXTRA)))
$(eval $(call kernel,4.14.1,4.14.x,-dbg))
$(eval $(call kernel,4.13.15,4.13.x,$(EXTRA)))
$(eval $(call kernel,4.9.64,4.9.x,$(EXTRA)))
$(eval $(call kernel,4.9.64,4.9.x,-dbg))
$(eval $(call kernel,4.4.100,4.4.x,$(EXTRA)))
# Target for kernel config
kconfig: | sources

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.13.13 Kernel Configuration
# Linux/arm64 4.13.15 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@ -250,7 +250,13 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
CONFIG_GCC_PLUGIN_RANDSTRUCT=y
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
@ -278,7 +284,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
# CONFIG_REFCOUNT_FULL is not set
CONFIG_REFCOUNT_FULL=y
#
# GCOV-based kernel profiling
@ -293,7 +299,7 @@ CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.13.13 Kernel Configuration
# Linux/x86 4.13.15 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@ -294,7 +294,13 @@ CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
CONFIG_GCC_PLUGIN_RANDSTRUCT=y
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
@ -333,7 +339,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
# CONFIG_REFCOUNT_FULL is not set
CONFIG_REFCOUNT_FULL=y
#
# GCOV-based kernel profiling
@ -348,7 +354,7 @@ CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.14.0 Kernel Configuration
# Linux/arm64 4.14.1 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@ -253,7 +253,14 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
CONFIG_GCC_PLUGIN_RANDSTRUCT=y
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
@ -282,7 +289,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
# CONFIG_REFCOUNT_FULL is not set
CONFIG_REFCOUNT_FULL=y
#
# GCOV-based kernel profiling
@ -297,7 +304,7 @@ CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.14.0 Kernel Configuration
# Linux/x86 4.14.1 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@ -296,7 +296,14 @@ CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
CONFIG_GCC_PLUGIN_RANDSTRUCT=y
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
@ -336,7 +343,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
# CONFIG_REFCOUNT_FULL is not set
CONFIG_REFCOUNT_FULL=y
#
# GCOV-based kernel profiling
@ -351,7 +358,7 @@ CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.4.98 Kernel Configuration
# Linux/arm64 4.4.100 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.4.98 Kernel Configuration
# Linux/x86 4.4.100 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@ -704,7 +704,6 @@ CONFIG_IA32_EMULATION=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y
@ -3437,6 +3436,7 @@ CONFIG_X86_DEBUG_FPU=y
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_COMPAT=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_BIG_KEYS=y
# CONFIG_TRUSTED_KEYS is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.9.62 Kernel Configuration
# Linux/arm64 4.9.64 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@ -238,7 +238,9 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.9.62 Kernel Configuration
# Linux/x86 4.9.64 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@ -282,7 +282,9 @@ CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
@ -759,7 +761,6 @@ CONFIG_IA32_EMULATION=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y
@ -3629,6 +3630,7 @@ CONFIG_X86_DEBUG_FPU=y
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_COMPAT=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_BIG_KEYS=y
CONFIG_TRUSTED_KEYS=m

View File

@ -1,4 +1,4 @@
From d43464fb275afeba676d2402bd24305b2812c81d Mon Sep 17 00:00:00 2001
From e85ffd0a854df881c75a049824b848fff09a9085 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 16:57:12 -0600
Subject: [PATCH 01/12] vmbus: vmbus_open(): reset onchannel_callback on error

View File

@ -1,4 +1,4 @@
From 608ca133adfc444f5824e455ee5b92590e4110ed Mon Sep 17 00:00:00 2001
From a57450357991eb0f658e421dc641c2a9fd5d9110 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 16:57:20 -0600
Subject: [PATCH 02/12] vmbus: remove "goto error_clean_msglist" in

View File

@ -1,4 +1,4 @@
From 49aec551372d5b95714c54a8ac6e8e478f1f719d Mon Sep 17 00:00:00 2001
From 0f8303c91fea8c348f5ab93f184b88df242cde24 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 16:57:26 -0600
Subject: [PATCH 03/12] hv_sock: implements Hyper-V transport for Virtual

View File

@ -1,4 +1,4 @@
From 2ca5a13b8f72016d874876b884e1c2a8187927d4 Mon Sep 17 00:00:00 2001
From b39f12ccedb637382d102712b5b59ad989186db5 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 16:57:29 -0600
Subject: [PATCH 04/12] VMCI: only try to load on VMware hypervisor

View File

@ -1,4 +1,4 @@
From c7695e20566be27138e55893d5a23b997f04e425 Mon Sep 17 00:00:00 2001
From 70a30e3aede2c701fd954ab78a8fe170783c0cdc Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 16:57:35 -0600
Subject: [PATCH 05/12] hv_sock: add the support of auto-loading

View File

@ -1,4 +1,4 @@
From 23b672dd198b20112e33577f99f9371923377fac Mon Sep 17 00:00:00 2001
From b3803b16af15e6a1447864c44f8bb789e55593df Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 5 May 2017 18:52:02 -0600
Subject: [PATCH 06/12] tools: hv_sock: 2 simple test cases.

View File

@ -1,4 +1,4 @@
From e8eb16e6cd31bb62f933b59c31dda745b29cd3e7 Mon Sep 17 00:00:00 2001
From 3e3e352848d134366dc4ca047a1348c1f4e63c4f Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Tue, 16 May 2017 22:14:03 +0800
Subject: [PATCH 07/12] hvsock: fix a race in hvs_stream_dequeue()

View File

@ -1,4 +1,4 @@
From 5f039667d878b45eff799c432f0b5c7049b33981 Mon Sep 17 00:00:00 2001
From 37e8142153d367fee4253a2bfb88e6797a4ce097 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 19 May 2017 21:49:59 +0800
Subject: [PATCH 08/12] hvsock: fix vsock_dequeue/enqueue_accept race

View File

@ -1,4 +1,4 @@
From 7a0d26c3069406c6b862ffb48c9974cc147be766 Mon Sep 17 00:00:00 2001
From 24c31a6d9e3dd607e0f0a910a14e613aef9af91a Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Wed, 21 Jun 2017 22:30:42 +0800
Subject: [PATCH 09/12] hv-sock: a temporary workaround for the

View File

@ -1,4 +1,4 @@
From 57019e6ea3017c0ad0d78cbefa03994f3df93db1 Mon Sep 17 00:00:00 2001
From 685be0bb6a26f648f045606d435c96a220b57fde Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 7 Jul 2017 09:15:29 +0800
Subject: [PATCH 10/12] hv-sock: avoid double FINs if shutdown() is called

View File

@ -1,4 +1,4 @@
From 963aeff4efef364aceab72434c5b25cc13cbb5b4 Mon Sep 17 00:00:00 2001
From cc33e5ec02df7b139e0958586888d0a06518c806 Mon Sep 17 00:00:00 2001
From: Randy Dodgen <dodgen@google.com>
Date: Thu, 24 Aug 2017 15:26:01 -0400
Subject: [PATCH 11/12] ext4: fix fault handling when mounted with -o dax,ro

View File

@ -1,4 +1,4 @@
From 03ef1166593af9b9a9e36875ea2cab95076fe497 Mon Sep 17 00:00:00 2001
From 22cc975d9fef30079f16054e6157bf855633b22b Mon Sep 17 00:00:00 2001
From: Cheng-mean Liu <soccerl@microsoft.com>
Date: Tue, 11 Jul 2017 16:58:26 -0700
Subject: [PATCH 12/12] NVDIMM: reducded ND_MIN_NAMESPACE_SIZE from 4MB to 4KB

View File

@ -1,4 +1,4 @@
From 8bfd0bbc4cfde912748d3f808df5b4209104e0de Mon Sep 17 00:00:00 2001
From 180281ab2038a8adbbba807985da1cbfef05ce72 Mon Sep 17 00:00:00 2001
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Thu, 2 Mar 2017 12:55:49 -0300
Subject: [PATCH 01/12] tools build: Add test for sched_getcpu()

View File

@ -1,4 +1,4 @@
From d03af585a538dbf9ee9590e8642928c50da7cec9 Mon Sep 17 00:00:00 2001
From 96f10db8ab29cd542eb3975f527d3fa0d0d7caa6 Mon Sep 17 00:00:00 2001
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Thu, 13 Oct 2016 17:12:35 -0300
Subject: [PATCH 02/12] perf jit: Avoid returning garbage for a ret variable

View File

@ -1,4 +1,4 @@
From 17017600d2d9bbcfa7a0a03564e08be8b968c5a6 Mon Sep 17 00:00:00 2001
From fefee3d6da7f7af56db64a2234a9ba5c99cf42ca Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Sat, 23 Jul 2016 01:35:51 +0000
Subject: [PATCH 03/12] hv_sock: introduce Hyper-V Sockets

View File

@ -1,4 +1,4 @@
From e0a24f69fddb3a1400f2ad6c89641188008cc5ca Mon Sep 17 00:00:00 2001
From b3e690defe71198388ab2bf24a5cdfe2452c42d0 Mon Sep 17 00:00:00 2001
From: Rolf Neugebauer <rolf.neugebauer@gmail.com>
Date: Mon, 23 May 2016 18:55:45 +0100
Subject: [PATCH 04/12] vmbus: Don't spam the logs with unknown GUIDs

View File

@ -1,4 +1,4 @@
From 7193e0024dbfef76366a8c2a320b24388d0024ec Mon Sep 17 00:00:00 2001
From 4fef96da83ea834b5574b79d5eaf9acefcd76963 Mon Sep 17 00:00:00 2001
From: Alex Ng <alexng@messages.microsoft.com>
Date: Sun, 6 Nov 2016 13:14:07 -0800
Subject: [PATCH 05/12] Drivers: hv: utils: Fix the mapping between host

View File

@ -1,4 +1,4 @@
From 48569e58deb80292bc54df0f6b69ae5d00cbdb0c Mon Sep 17 00:00:00 2001
From 9c992923156012dcc21c199d8b95ab4a979dffc2 Mon Sep 17 00:00:00 2001
From: Alex Ng <alexng@messages.microsoft.com>
Date: Sun, 6 Nov 2016 13:14:10 -0800
Subject: [PATCH 06/12] Drivers: hv: vss: Improve log messages.

View File

@ -1,4 +1,4 @@
From fcbd72600dad702cfb38ac90697876fe3b659ce5 Mon Sep 17 00:00:00 2001
From 9a842de6843c9f52e82768f1ed793d7118508c51 Mon Sep 17 00:00:00 2001
From: Alex Ng <alexng@messages.microsoft.com>
Date: Sun, 6 Nov 2016 13:14:11 -0800
Subject: [PATCH 07/12] Drivers: hv: vss: Operation timeouts should match host

View File

@ -1,4 +1,4 @@
From d671eb3d9d0fa92f69e52866b8444866c9ed6ff6 Mon Sep 17 00:00:00 2001
From 9e343fbd30bfe4364b34690cfb77fd239dca9e75 Mon Sep 17 00:00:00 2001
From: Alex Ng <alexng@messages.microsoft.com>
Date: Sat, 28 Jan 2017 12:37:17 -0700
Subject: [PATCH 08/12] Drivers: hv: vmbus: Use all supported IC versions to

View File

@ -1,4 +1,4 @@
From 0a74d546a03ef026a234d65eacb3091a6928c9b1 Mon Sep 17 00:00:00 2001
From ecc1894ed5c4185c4faba7d72babd50a29d70a7d Mon Sep 17 00:00:00 2001
From: Alex Ng <alexng@messages.microsoft.com>
Date: Sat, 28 Jan 2017 12:37:18 -0700
Subject: [PATCH 09/12] Drivers: hv: Log the negotiated IC versions.

View File

@ -1,4 +1,4 @@
From b8c9e3b14cdb864c833081312202b6dd74d4167c Mon Sep 17 00:00:00 2001
From e3721fa8af25ff4e83c1e3ec9521717b6e99a8ce Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Sun, 26 Mar 2017 16:42:20 +0800
Subject: [PATCH 10/12] vmbus: fix missed ring events on boot

View File

@ -1,4 +1,4 @@
From 3e99b1aae367a0978feff895ea1745c27e942fb5 Mon Sep 17 00:00:00 2001
From fe1775ea70a5e90c5baed1ef64c08fbae494bd79 Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Wed, 29 Mar 2017 18:37:10 +0800
Subject: [PATCH 11/12] vmbus: remove "goto error_clean_msglist" in

View File

@ -1,4 +1,4 @@
From 8e5978d4c9416531d7d3de14da3aacf711114702 Mon Sep 17 00:00:00 2001
From 7ca528cc3fb9820c41fc6bd2e9c5c9b51f24d1bf Mon Sep 17 00:00:00 2001
From: Dexuan Cui <decui@microsoft.com>
Date: Fri, 24 Mar 2017 20:53:18 +0800
Subject: [PATCH 12/12] vmbus: dynamically enqueue/dequeue the channel on

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/init:6b3755e47f00d6027321d3fca99a19af6504be75

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/init:6b3755e47f00d6027321d3fca99a19af6504be75

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 console=tty0 page_poison=1"
init:
- linuxkit/init:6b3755e47f00d6027321d3fca99a19af6504be75

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 console=tty0 page_poison=1"
init:
- linuxkit/init:6b3755e47f00d6027321d3fca99a19af6504be75 # with runc, logwrite, startmemlogd

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/init:6b3755e47f00d6027321d3fca99a19af6504be75

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0 page_poison=1"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.4.98
image: linuxkit/kernel:4.4.100
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.13.13
image: linuxkit/kernel:4.13.15
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.14
image: linuxkit/kernel:4.14.1
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -0,0 +1,23 @@
# This Dockerfile extracts the kernel headers from the kernel image
# and then compiles a simple hello world kernel module against them.
# In the last stage, it creates a package, which can be used for
# testing.
FROM linuxkit/kernel:4.4.100 AS ksrc
# Extract headers and compile module
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS build
RUN apk add build-base libelf-dev
COPY --from=ksrc /kernel-dev.tar /
RUN tar xf kernel-dev.tar
WORKDIR /kmod
COPY ./src/* ./
RUN make all
# Package
FROM alpine:3.5
COPY --from=build /kmod/hello_world.ko /
COPY check.sh /check.sh
ENTRYPOINT ["/bin/sh", "/check.sh"]

View File

@ -19,7 +19,7 @@ clean_up() {
trap clean_up EXIT
# Make sure we have the latest kernel image
docker pull linuxkit/kernel:4.9.62
docker pull linuxkit/kernel:4.9.64
# Build a package
docker build -t ${IMAGE_NAME} .

View File

@ -0,0 +1,20 @@
kernel:
image: linuxkit/kernel:4.4.100
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558
- linuxkit/runc:1b0741d07949c0acc444cd6a04ee7f833443579d
onboot:
- name: check
image: kmod-test
binds:
- /dev:/dev
- /lib/modules:/lib/modules
capabilities:
- all
- name: poweroff
image: linuxkit/poweroff:280bd01daa8776fbe1f4d912977f1886b8374834
command: ["/bin/sh", "/poweroff.sh", "3"]
trust:
org:
- linuxkit

View File

@ -3,11 +3,11 @@
# In the last stage, it creates a package, which can be used for
# testing.
FROM linuxkit/kernel:4.9.62 AS ksrc
FROM linuxkit/kernel:4.9.64 AS ksrc
# Extract headers and compile module
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS build
RUN apk add build-base
RUN apk add build-base libelf-dev
COPY --from=ksrc /kernel-dev.tar /
RUN tar xf kernel-dev.tar

View File

@ -0,0 +1,15 @@
#!/bin/sh
function failed {
printf "Kernel module test suite FAILED\n"
/sbin/poweroff -f
}
uname -a
modinfo hello_world.ko || failed
insmod hello_world.ko || failed
[ -n "$(dmesg | grep -o 'Hello LinuxKit')" ] || failed
rmmod hello_world || failed
printf "Kernel module test suite PASSED\n"
/sbin/poweroff -f

View File

@ -0,0 +1,6 @@
obj-m += hello_world.o
KVER=$(shell basename /usr/src/linux-headers-*)
all:
make -C /usr/src/$(KVER) M=$(PWD) modules
clean:
make -C /usr/src/$(KVER) M=$(PWD) clean

View File

@ -0,0 +1,22 @@
/*
* A simple Hello World kernel module
*/
#include <linux/module.h>
#include <linux/kernel.h>
int init_hello(void)
{
printk(KERN_INFO "Hello LinuxKit\n");
return 0;
}
void exit_hello(void)
{
printk(KERN_INFO "Goodbye LinuxKit.\n");
}
module_init(init_hello);
module_exit(exit_hello);
MODULE_AUTHOR("Rolf Neugebauer <rolf.neugebauer@docker.com>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("A simple Hello World kernel module for testing");

View File

@ -0,0 +1,31 @@
#!/bin/sh
# SUMMARY: Test build and insertion of kernel modules
# LABELS:
# REPEAT:
set -e
# Source libraries. Uncomment if needed/defined
#. "${RT_LIB}"
. "${RT_PROJECT_ROOT}/_lib/lib.sh"
NAME=kmod
IMAGE_NAME=kmod-test
clean_up() {
docker rmi ${IMAGE_NAME} || true
rm -rf ${NAME}-*
}
trap clean_up EXIT
# Make sure we have the latest kernel image
docker pull linuxkit/kernel:4.9.64
# Build a package
docker build -t ${IMAGE_NAME} .
# Build and run a LinuxKit image with kernel module (and test script)
linuxkit build -format kernel+initrd -name "${NAME}" test.yml
RESULT="$(linuxkit run ${NAME})"
echo "${RESULT}" | grep -q "Hello LinuxKit"
exit 0

View File

@ -1,5 +1,5 @@
kernel:
image: linuxkit/kernel:4.9.62
image: linuxkit/kernel:4.9.64
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558

View File

@ -0,0 +1,23 @@
# This Dockerfile extracts the kernel headers from the kernel image
# and then compiles a simple hello world kernel module against them.
# In the last stage, it creates a package, which can be used for
# testing.
FROM linuxkit/kernel:4.13.15 AS ksrc
# Extract headers and compile module
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS build
RUN apk add build-base libelf-dev
COPY --from=ksrc /kernel-dev.tar /
RUN tar xf kernel-dev.tar
WORKDIR /kmod
COPY ./src/* ./
RUN make all
# Package
FROM alpine:3.5
COPY --from=build /kmod/hello_world.ko /
COPY check.sh /check.sh
ENTRYPOINT ["/bin/sh", "/check.sh"]

View File

@ -0,0 +1,15 @@
#!/bin/sh
function failed {
printf "Kernel module test suite FAILED\n"
/sbin/poweroff -f
}
uname -a
modinfo hello_world.ko || failed
insmod hello_world.ko || failed
[ -n "$(dmesg | grep -o 'Hello LinuxKit')" ] || failed
rmmod hello_world || failed
printf "Kernel module test suite PASSED\n"
/sbin/poweroff -f

View File

@ -0,0 +1,6 @@
obj-m += hello_world.o
KVER=$(shell basename /usr/src/linux-headers-*)
all:
make -C /usr/src/$(KVER) M=$(PWD) modules
clean:
make -C /usr/src/$(KVER) M=$(PWD) clean

View File

@ -0,0 +1,22 @@
/*
* A simple Hello World kernel module
*/
#include <linux/module.h>
#include <linux/kernel.h>
int init_hello(void)
{
printk(KERN_INFO "Hello LinuxKit\n");
return 0;
}
void exit_hello(void)
{
printk(KERN_INFO "Goodbye LinuxKit.\n");
}
module_init(init_hello);
module_exit(exit_hello);
MODULE_AUTHOR("Rolf Neugebauer <rolf.neugebauer@docker.com>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("A simple Hello World kernel module for testing");

View File

@ -0,0 +1,31 @@
#!/bin/sh
# SUMMARY: Test build and insertion of kernel modules
# LABELS:
# REPEAT:
set -e
# Source libraries. Uncomment if needed/defined
#. "${RT_LIB}"
. "${RT_PROJECT_ROOT}/_lib/lib.sh"
NAME=kmod
IMAGE_NAME=kmod-test
clean_up() {
docker rmi ${IMAGE_NAME} || true
rm -rf ${NAME}-*
}
trap clean_up EXIT
# Make sure we have the latest kernel image
docker pull linuxkit/kernel:4.9.64
# Build a package
docker build -t ${IMAGE_NAME} .
# Build and run a LinuxKit image with kernel module (and test script)
linuxkit build -format kernel+initrd -name "${NAME}" test.yml
RESULT="$(linuxkit run ${NAME})"
echo "${RESULT}" | grep -q "Hello LinuxKit"
exit 0

View File

@ -0,0 +1,20 @@
kernel:
image: linuxkit/kernel:4.13.15
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558
- linuxkit/runc:1b0741d07949c0acc444cd6a04ee7f833443579d
onboot:
- name: check
image: kmod-test
binds:
- /dev:/dev
- /lib/modules:/lib/modules
capabilities:
- all
- name: poweroff
image: linuxkit/poweroff:280bd01daa8776fbe1f4d912977f1886b8374834
command: ["/bin/sh", "/poweroff.sh", "3"]
trust:
org:
- linuxkit

View File

@ -0,0 +1,23 @@
# This Dockerfile extracts the kernel headers from the kernel image
# and then compiles a simple hello world kernel module against them.
# In the last stage, it creates a package, which can be used for
# testing.
FROM linuxkit/kernel:4.14.1 AS ksrc
# Extract headers and compile module
FROM linuxkit/alpine:07f7d136e427dc68154cd5edbb2b9576f9ac5213 AS build
RUN apk add build-base libelf-dev
COPY --from=ksrc /kernel-dev.tar /
RUN tar xf kernel-dev.tar
WORKDIR /kmod
COPY ./src/* ./
RUN make all
# Package
FROM alpine:3.5
COPY --from=build /kmod/hello_world.ko /
COPY check.sh /check.sh
ENTRYPOINT ["/bin/sh", "/check.sh"]

View File

@ -0,0 +1,15 @@
#!/bin/sh
function failed {
printf "Kernel module test suite FAILED\n"
/sbin/poweroff -f
}
uname -a
modinfo hello_world.ko || failed
insmod hello_world.ko || failed
[ -n "$(dmesg | grep -o 'Hello LinuxKit')" ] || failed
rmmod hello_world || failed
printf "Kernel module test suite PASSED\n"
/sbin/poweroff -f

View File

@ -0,0 +1,6 @@
obj-m += hello_world.o
KVER=$(shell basename /usr/src/linux-headers-*)
all:
make -C /usr/src/$(KVER) M=$(PWD) modules
clean:
make -C /usr/src/$(KVER) M=$(PWD) clean

View File

@ -0,0 +1,22 @@
/*
* A simple Hello World kernel module
*/
#include <linux/module.h>
#include <linux/kernel.h>
int init_hello(void)
{
printk(KERN_INFO "Hello LinuxKit\n");
return 0;
}
void exit_hello(void)
{
printk(KERN_INFO "Goodbye LinuxKit.\n");
}
module_init(init_hello);
module_exit(exit_hello);
MODULE_AUTHOR("Rolf Neugebauer <rolf.neugebauer@docker.com>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("A simple Hello World kernel module for testing");

View File

@ -0,0 +1,31 @@
#!/bin/sh
# SUMMARY: Test build and insertion of kernel modules
# LABELS:
# REPEAT:
set -e
# Source libraries. Uncomment if needed/defined
#. "${RT_LIB}"
. "${RT_PROJECT_ROOT}/_lib/lib.sh"
NAME=kmod
IMAGE_NAME=kmod-test
clean_up() {
docker rmi ${IMAGE_NAME} || true
rm -rf ${NAME}-*
}
trap clean_up EXIT
# Make sure we have the latest kernel image
docker pull linuxkit/kernel:4.9.64
# Build a package
docker build -t ${IMAGE_NAME} .
# Build and run a LinuxKit image with kernel module (and test script)
linuxkit build -format kernel+initrd -name "${NAME}" test.yml
RESULT="$(linuxkit run ${NAME})"
echo "${RESULT}" | grep -q "Hello LinuxKit"
exit 0

View File

@ -0,0 +1,20 @@
kernel:
image: linuxkit/kernel:4.14.1
cmdline: "console=ttyS0"
init:
- linuxkit/init:42a92119e1ca10380e0d33e26c0cbcf85b9b3558
- linuxkit/runc:1b0741d07949c0acc444cd6a04ee7f833443579d
onboot:
- name: check
image: kmod-test
binds:
- /dev:/dev
- /lib/modules:/lib/modules
capabilities:
- all
- name: poweroff
image: linuxkit/poweroff:280bd01daa8776fbe1f4d912977f1886b8374834
command: ["/bin/sh", "/poweroff.sh", "3"]
trust:
org:
- linuxkit

Some files were not shown because too many files have changed in this diff Show More