You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reflow prose paragraphs and bullet items to ≤80 columns. No content
changes; code blocks and URLs are left intact (the markdown link to
model.go remains on a single line).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Nikita Kalyazin <nikita.kalyazin@e2b.dev>
Copy file name to clipboardExpand all lines: README.md
+26-10Lines changed: 26 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,10 @@
2
2
3
3
## Overview
4
4
5
-
This project automates the building of custom Linux kernels for Firecracker microVMs, using the same kernel sources as official Firecracker repo and custom configuration files. It supports building specific kernel versions and uploading the resulting binaries to a Google Cloud Storage (GCS) bucket.
5
+
This project automates the building of custom Linux kernels for Firecracker
6
+
microVMs, using the same kernel sources as official Firecracker repo and
7
+
custom configuration files. It supports building specific kernel versions
8
+
and uploading the resulting binaries to a Google Cloud Storage (GCS) bucket.
6
9
7
10
## Prerequisites
8
11
@@ -11,31 +14,44 @@ This project automates the building of custom Linux kernels for Firecracker micr
11
14
## Building Kernels
12
15
13
16
1.**Configure kernel versions:**
14
-
- Edit `kernel_versions.txt` to specify which kernel versions to build (one per line, e.g., `6.1.102`).
15
-
- Place the corresponding config file in `configs/` (e.g., `configs/6.1.102.config`).
17
+
- Edit `kernel_versions.txt` to specify which kernel versions to build
18
+
(one per line, e.g., `6.1.102`).
19
+
- Place the corresponding config file in `configs/` (e.g.,
20
+
`configs/6.1.102.config`).
16
21
17
22
2.**Build:**
18
23
```sh
19
24
make build
20
25
# or directly
21
26
./build.sh
22
27
```
23
-
The built kernels will be placed in `builds/vmlinux-<version>/<arch>/vmlinux.bin` where `<arch>` is `amd64` or `arm64` (Go/OCI convention). For x86_64 backward compatibility, a legacy copy is also placed at `builds/vmlinux-<version>/vmlinux.bin`.
28
+
The built kernels will be placed in
29
+
`builds/vmlinux-<version>/<arch>/vmlinux.bin` where `<arch>` is `amd64`
30
+
or `arm64` (Go/OCI convention). For x86_64 backward compatibility, a
31
+
legacy copy is also placed at `builds/vmlinux-<version>/vmlinux.bin`.
24
32
25
33
## Development Workflow
26
-
- On every push, GitHub Actions will automatically build the kernels and save it as an artifact.
34
+
- On every push, GitHub Actions will automatically build the kernels and
35
+
save it as an artifact.
27
36
28
37
## Architecture naming
29
38
30
-
Output directories use Go's `runtime.GOARCH` convention (`amd64`, `arm64`) so they match the infra orchestrator's `TargetArch()` path resolution. The build-time variable `TARGET_ARCH` (`x86_64`, `arm64`) is only used internally for config paths and cross-compilation flags.
39
+
Output directories use Go's `runtime.GOARCH` convention (`amd64`, `arm64`)
40
+
so they match the infra orchestrator's `TargetArch()` path resolution. The
41
+
build-time variable `TARGET_ARCH` (`x86_64`, `arm64`) is only used
42
+
internally for config paths and cross-compilation flags.
31
43
32
44
## New Kernel in E2B's infra
33
-
_Note: these steps should give you new kernel on your self-hosted E2B using https://github.com/e2b-dev/infra_
45
+
_Note: these steps should give you new kernel on your self-hosted E2B using
46
+
https://github.com/e2b-dev/infra_
34
47
35
-
- Copy the kernel build in your project's object storage under `e2b-*-fc-kernels`
36
-
- In [packages/api/internal/cfg/model.go](https://github.com/e2b-dev/infra/blob/main/packages/api/internal/cfg/model.go) update `DefaultKernelVersion`
48
+
- Copy the kernel build in your project's object storage under
49
+
`e2b-*-fc-kernels`
50
+
- In [packages/api/internal/cfg/model.go](https://github.com/e2b-dev/infra/blob/main/packages/api/internal/cfg/model.go)
51
+
update `DefaultKernelVersion`
37
52
- Build and deploy `api`
38
53
39
54
## License
40
55
41
-
This project is licensed under the Apache License 2.0. See [LICENSE](LICENSE) for details.
56
+
This project is licensed under the Apache License 2.0.
0 commit comments