752 Commits

Author SHA1 Message Date
Nathan Dautenhahn
4c73320c75 Fix spelling errors
inuxkit/kernel -> linuxkit/kernel

sourcs -> sources

Signed-off-by: Nathan Dautenhahn <ndd@cis.upenn.edu>
2017-06-20 05:54:26 -04:00
Bill Kerr
1e1afd77d2 Add PGP keys for 589DA6B1 (greg@kroah.com) and 6092693E (autosigner@kernel.org).
Verify kernel with GPG and sha256 checksum.

Signed-off-by: Bill Kerr <bill@generalbill.com>
2017-06-19 16:29:53 -04:00
Justin Cormack
fc5d707e97 Merge pull request #2043 from m4rcu5/feature/enable-usb-support
Enabling USB drivers on the 4.4.x, 4.9.x and 4.11.x kernels
2017-06-16 09:31:18 -07:00
Marcus van Dam
306b79de4c Switching the USB drivers to modules
Signed-off-by: Marcus van Dam <marcus@marcusvandam.nl>
2017-06-16 12:03:23 +02:00
Rolf Neugebauer
db2491cac3 kernel: Update to 4.11.5/4.9.32/4.4.72
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-15 13:14:54 -07:00
Rolf Neugebauer
ad3456d4d1 Merge pull request #2047 from rn/perf
Remove kernel-compile and add perf package
2017-06-15 11:42:27 -07:00
Tycho Andersen
a4e0a594b1 add a static usermode helper
The binary is used in tandem with CONFIG_STATIC_USERMODEHELPER=y in 4.11+,
see the big comment in the binary for the current whitelist of binaries.

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-06-15 10:39:52 -07:00
Rolf Neugebauer
0b6f1a72b6 kernel: Build a perf package for 4.11/4.9 kernels
Extract the perf binary from the kernel package and create
a new perf package for each kernel. The perf package uses the
same tags as the kernel package and only contains the perf
binary under /usr/bin. The perf package can be added to the
init section or included as a stage in a multi-stage build
for other packages.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-15 10:39:32 -07:00
Rolf Neugebauer
baf32846d8 kernel: Build the perf utility as part of the kernel build
The perf utility is somewhat kernel specific so might as well
compile it when we compile the kernel. The resulting binary
is statically linked (and stripped for size) and is added the
resulting kernel packages.

Although we add alpine packages such as libunwind and other,
it seems that the config detection code for perf/tools does
not detect them.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-15 10:39:32 -07:00
Rolf Neugebauer
06c857fb16 kernel: Fix perf compile on 4.11.x/4.9.x kernels
This cherry-picks 120010cb1eea151d38a3e66f5ffc79a0c3110292 ("tools build:
Add test for sched_getcpu()") which replaces a #ifdef based test with
a proper test for the sched_getcpu() function. The macro based condition
does not work on Alpine as it is conditional on GLIBC.

For 4.9 the cherry-pick needed some manual adjustment and also required
commit ef2c3e76d98dfb69a46d870b47656e8e5bac6e2b ("perf jit: Avoid returning
garbage for a ret variable")

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-15 10:39:32 -07:00
Rolf Neugebauer
45938186df kernel: Use the alpine base image to compile the kernel
Also add additional tools and libraries useful/needed for
compiling some of the ./tools in the kernel source.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-15 10:39:32 -07:00
Marcus van Dam
6df0fd616c Enabling USB drivers on the 4.4.x, 4.9.x and 4.11.x kernels
Signed-off-by: Marcus van Dam <marcus@marcusvandam.nl>
2017-06-15 08:24:28 +02:00
Justin Cormack
d5ee981a0a re-enable CONFIG_BUG_ON_DATA_CORRUPTION on 4.11 kernel
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-06-12 14:44:20 +02:00
Rolf Neugebauer
477435f42b kernel: Update to 4.11.4/4.9.31./4.4.71
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-06-07 22:27:16 +01:00
Nico Di Rocco
f9da106c46 Add tg3 module for Broadcom NIC support
Signed-off-by: Nico Di Rocco <dirocco.nico@gmail.com>
2017-06-06 20:55:36 +02:00
Rolf Neugebauer
8d0182e17c kernel: Update to 4.11.3/4.9.30/4.4.70, remove 4.10.x
4.10.x has been EOLed. Remove it from the build and tests.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-30 12:32:09 +01:00
Rolf Neugebauer
6f394920a7 kernel: Update to 4.11.2/4.10.17/4.9.29/4.4.69
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-22 13:59:03 +01:00
Rolf Neugebauer
fbea0d9fd0 kernel: Remove toybox from kernel Dockerfile
You cna extract/inspect the contents with 'docker save' + 'tar'

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-18 18:55:22 +01:00
Rolf Neugebauer
e6f2b68419 kernel: Add vmlinux to debug builds
The vmlinux image is the un-stripped kernel image containing
full debug information which is useful for kernel debugging.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-17 11:40:56 +01:00
Rolf Neugebauer
4b50134bde kernel: Make the Docker Hub organisation configurable
For local testinf it is useful to store packages under a different
organisation on the hub (or indeed to select a different registry).
This is enabled by making the ORG configurable when calling make.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-16 16:28:16 +01:00
Rolf Neugebauer
0f9ec7f1d2 kernel: Update Hyper-V socket patches for 4.11
While testing the patches on Windows we found some issues
which commit d0e6020dd2b25f8880 ("hvsock: fix a race in
hvs_stream_dequeue()") (cherry-picked as 0009) attempts to
fix.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-16 16:24:50 +01:00
Rolf Neugebauer
5f5c27cbba kernel: Update to 4.11.1/4.10.16/4.9.28/4.4.68
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-15 10:34:02 +01:00
Rolf Neugebauer
5d88623faf kernel: Fix Hyper-V socket support in 4.11 kernels
In order to enable Hyper-V sockets, the CONFIG_HYPERV_VSOCKETS
option must be set. This is different to the older kernel patches.

In order for the Hyper-V socket code to compile, f3dd3f4797652c311df
("vmbus: introduce in-place packet iterator") needed cherry-picking.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-09 20:49:24 +01:00
Rolf Neugebauer
a4c95be30a Merge pull request #1785 from rneugeba/kern-v4.11
kernel: Add initial support for the 4.11 kernel
2017-05-08 17:31:52 +01:00
Rolf Neugebauer
d633913c92 kernel: Add initial support for the 4.11 kernel
This add a new version of the Hyper-V socket support based on
https://github.com/dcui/linux/commits/decui/hv_sock/next-20170504

Note, this changes the Linux side API to Hyper-V sockets as the
support is now based on the VMware/virtio socket implementation.
This means that the Address Family and the addressing changes.

Other patches from the 4.10 kernel are no longer needed as they
were already upstream.

The new Hyper-V socket code has not been tested, but the kernel
boots fine on HyperKit and Hyper-V.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 17:12:00 +01:00
Rolf Neugebauer
f0e289439f kernel: Update to use new toybox image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
0a3cb6d8ce kernel: Update to 4.4.67/4.9.27/4.10.15
Note, the bugfix for the memory leak on a missing disk on Hyper-V
has been incorporated into 4.9 and 4.10 so has been removed from
our patch queue.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 10:39:09 +01:00
Rolf Neugebauer
566bb2a1f0 kernel: Update to 4.4.66/4.9.26/4.10.14
This also adds the cherry-picked commit f1c635b439a5c017 ("scsi: storvsc: Workaround
for virtual DVD SCSI version") from 4.11 for the 4.9 and 4.10 kernels. This commit
fixes a crash/memory leak on Hyper-V when no disk drives are attached and if one
boots of a CD-ROM drive.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 10:58:32 +01:00
Rolf Neugebauer
ffc0ed6a7c kernel: Fix kernel header build
Add more files to 'kernel-dev.tar' to enable building kernel
modules against the kernel.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-03 16:46:12 +01:00
Rolf Neugebauer
c9a123ba54 kernel: Update to 4.4.65
The 4.9 and 4.10 series did not get updates

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-02 15:20:04 +01:00
Rolf Neugebauer
f44421042e kernel: Fix DEBUG builds and add default debug targets/images
Building debug kernels (with additional run time checks and debugging)
was broken a few commits back. This adds back support for building debug
kernels.

In addition, it builds and uploads debug kernels for selected kernel
series (4.9.x LTS and latest stable). The tag for these kernels has
a "_dbg" suffix.

Update documentation.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-02 14:17:01 +01:00
Rolf Neugebauer
5ab5f31e14 kernel: Simplify/restructure Dockerfile
- Use a RUN command per artefact created
- Use WORKDIR to avoid "cd /linux" on every RUN command
- Copy all relevant build artefacts to /out
- Only create one additional layer in final stage
- Add System.map to output image

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-02 10:33:45 +01:00
Justin Cormack
6155e8c8bc Change to use kernel not bzImage everywhere
Previously we hardcoded `bzImage` which is not used for all
use cases or architectures.

fix #1630

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-28 16:24:15 +01:00
Rolf Neugebauer
14b92b363a kernel: Update to 4.4.64/4.9.25/4.10.13
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-27 08:54:17 +01:00
Rolf Neugebauer
6dcb0c1c97 kernel: Update to 4.4.63/4.9.24/4.10.12
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-27 00:43:02 +01:00
Rolf Neugebauer
c2dbeaa932 kernel: Update to 4.4.62/4.9.23/4.10.11
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-26 23:38:59 +01:00
Rolf Neugebauer
35045cdb6b docs: Update kernel documentation
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-26 22:29:47 +01:00
Rolf Neugebauer
6336022fca kernel: Change the kernel suffix to -linuxkit
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-26 22:29:47 +01:00
Rolf Neugebauer
43d981094d kernel: Rework the kernel build
- Use multi-stage builds
- Use a single Dockerfile for all kernels
  Kernel version and series are passed in as arguments
- Use a separate kernel config per kernel version
  These have been copied from kernel_config and ran
  through oldconfig to tidy them up
- Rename patch directories
- Refactor the Makefile to use a template
  - Allows building of all kernels without arguments to make
  - Use git tree hash as the image tag
  - Don't build the image if the tag already exists

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-26 22:29:47 +01:00
Justin Cormack
8e71b5624c Merge pull request #1707 from linuxkit/new-kernel-opts
Add additional kernel options
2017-04-26 14:09:43 +01:00
Justin Cormack
8687ade204 Add additional kernel options
- XFS filesystem support, as we plan to support this
- Quota support, as XFS has good support
- NVMe PCI support
- Per file encryption
- Device Mapper support, with main options
- BTRFS support (as a module, as it slows boot otherwise by several seconds).

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-26 13:57:45 +01:00
Ian Campbell
20cfa2af2c Switch fallback hostname to linuxkit-* from moby-*
This was missed when things were renamed.

The intention with this code was (apparently) to provide a (pseudo)unique
hostname in the case where something more specific was not provided (e.g. by
DHCP). Make this a little clearer by using '(none)' rather than 'linuxkit' as
the default, in the normal case this will be overwritten by something more
specific and if it isn't we will change it to something somewhat unique derived
from the MAC address (as before). nb: '(none)' is already used by Debian so I
think it is a safe choice as the sentinel value.

The use of both CONFIG_DEFAULT_HOSTNAME and the explicit /etc/hostname from
mkimage.sh is likely to be redundant in some cases, but neither seems to
completely cover all cases so keep both.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-04-25 14:09:38 +01:00
Thomas Shaw
e5f929a344 Fix link. Cosmetic. 2017-04-21 20:56:18 -05:00
Rolf Neugebauer
648b6a8a57 kernel: Update to 4.10.10/4.9.22/4.4.61
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-13 23:32:39 -05:00
Rolf Neugebauer
b8b8307725 kernel: Push kernels to the linuxkit org
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-13 18:19:58 -05:00
Tycho Andersen
98666053fa kernel: remove unused makefile line
Going through some unrelated stuff and noticed this.

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-04-13 15:26:40 -06:00
Rolf Neugebauer
85d6492d5d kernel: Use linuxkit images for compilingi/packaging the kernel
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-12 21:28:17 +01:00
Rolf Neugebauer
201f89de74 kernel: Update to 4.10.9/4.9.21/4.4.60
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-09 22:50:18 +01:00
Riyaz Faizullabhoy
53a7e096dd Sign and verify kernel image on make push
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-04 08:33:48 -07:00
Justin Cormack
7cb524029c Add support for AWS ENA network driver
This is a new PV style high performance network driver, added to
4.9 kernel, supporting 20Gb, see
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-03 11:14:34 +01:00