-
Notifications
You must be signed in to change notification settings - Fork 226
Completely restructure & document the kernel image build #506
Conversation
ping @stealthybox @chanwit please merge this PR, so we can unblock #511 |
KERNEL_VERSION ?= 4.19.47 | ||
KERNEL_EXTRA ?= | ||
# Check https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/refs/ for updates | ||
KERNEL_VERSIONS ?= 4.14.166 4.19.97 5.4.13 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noting that these will not overwrite the old images @ https://hub.docker.com/r/weaveworks/ignite-kernel/tags since they are all version bumps 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies in advance ... I'm just getting my head around Ignite - by spec'ing and writing a Cheff Cookbook to install ignite and ignited
:
Is there a Linux kernel dependency to take into consideration when installing Ignite?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@taqtiqa-mark these kernel versions are for the VM guests that ignite runs. They're distributed as OCI images so you don't have to worry about installing them.
For installing ignite, you need a linux host capable of meeting Firecrackers minimum runtime dependencies.
Currently, that is a host with Linux Kernel 4.14 or newer and KVM enabled:
Please see our documented requirements:
$ make upgrade | ||
``` | ||
|
||
after you've upgraded the values in the Makefile. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
after you've upgraded the values in the Makefile. | |
after you've set new `KERNEL_VERSIONS` in the Makefile or changed `./config-patches`. | |
This will generate new patched configs for each version. | |
Older kernel versions should be deleted from `generated/` and `versioned/` when checking in new ones. |
for file in generated/*; do \ | ||
./upgrade-config.sh $$file $$file; done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you help me understand why this is here?
I'm reading that this runs
make clean && make mrproper && cp /tmp/.config . && \
make EXTRAVERSION="" LOCALVERSION= olddefconfig
on the patched config as the input.
That output then overwrites the input patched config.
Does this cleanup or do something to the generated/patched config that changes it?
Thanks 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This basically sanitizes, reorganizes and formats (overwrites) the kernel config for the final generated configs
done | ||
} | ||
|
||
for file in ./versioned/*; do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps this loop on all versioned configs should be moved to a loop in the Makefile
.
That loop could be written to only include files that are in the intended KERNEL_VERSIONS
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Future improvements IMO, let's get ARM support merged first
Thanks for building this -- it's really nicely done. |
Co-Authored-By: leigh capili <stealthybox@users.noreply.github.com>
Co-Authored-By: leigh capili <stealthybox@users.noreply.github.com>
Co-Authored-By: leigh capili <stealthybox@users.noreply.github.com>
Co-Authored-By: leigh capili <stealthybox@users.noreply.github.com>
Ready to merge! |
Also adding the latest LTS
cc @chanwit @stealthybox