mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-19 09:16:29 +00:00
docs: Add a section on how to compile kernel modules
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This commit is contained in:
parent
6cfadcd26e
commit
c9c0c16490
@ -36,6 +36,35 @@ In summary, LinuxKit offers a choice of the following kernels:
|
||||
- [linuxkit/kernel-fedora](https://hub.docker.com/r/linuxkit/kernel-fedora/): Selected Fedora kernels.
|
||||
|
||||
|
||||
## Compiling kernel modules
|
||||
|
||||
The LinuxKit kernel packages include `kernel-dev.tar` which contains
|
||||
the headers and other files required to compile kernel modules against
|
||||
the specific version of the kernel. Currently, the headers are not
|
||||
included in the initial RAM disk, but it is possible to compile custom
|
||||
modules offline and include then include the modules in the initial
|
||||
RAM disk.
|
||||
|
||||
There is a [example](../tests/kmod), but basically one can use a
|
||||
multi-stage build to compile the kernel modules:
|
||||
```
|
||||
FROM linuxkit/kernel:4.9.x AS ksrc
|
||||
# Extract headers and compile module
|
||||
FROM linuxkit/kernel-compile:1b396c221af673757703258159ddc8539843b02b@sha256:6b32d205bfc6407568324337b707d195d027328dbfec554428ea93e7b0a8299b AS build
|
||||
COPY --from=ksrc /kernel-dev.tar /
|
||||
RUN tar xf kernel-dev.tar
|
||||
|
||||
# copy module source code and compile
|
||||
```
|
||||
|
||||
To use the kernel module, we recommend adding a final stage to the
|
||||
Dockerfile above, which copies the kernel module from the `build`
|
||||
stage and performs a `insmod` as the entry point. You can add this
|
||||
package to the `onboot` section in your YAML
|
||||
file. [kmod.yml](../tests/kmod/kmod.yml) contains an example for the
|
||||
configuration.
|
||||
|
||||
|
||||
## Working with Linux kernel patches for LinuxKit
|
||||
|
||||
We may apply patches to the Linux kernel used in LinuxKit, primarily to
|
||||
|
Loading…
Reference in New Issue
Block a user