Ksplice
Patch kernel without rebooting
Install / Use
/learn @jirislaby/KspliceREADME
Ksplice
This set of tools serves the purpose of creating from a standard patch a binary patch that can be applied to a running Linux kernel without a need of rebooting.
It stops the kernel, performs neccessary checks and applies the binary patch. The kernel is then resumed with a new code running.
WHAT DO I NEED?
- System.map and .config from your running kernel (a build dir at best)
- sources of your running kernel
- toolkit used to build your running kernel (or as much akin as possible)
- and finally: the patch to be applied
STEP BY STEP HOWTO
-
create a configuration dir to prepare the build a) put there System.map b) put there a build dir named "build" (or a link if you have one already) c) create flags file there with flags passed to make during the normal kernel build, like O=path, typically the "build" dir [optional]
-
run ksplice-create to create a binary patch $ ksplice-create --patch=patch --config=confdir -j X kernel_source_dir where patch is a diff to be applied (and create a binary patch for) confdir is a dir from step 1. kernel_source_dir is a dir with kernel sources -j means how many jobs (X) to run in parallel [optional] Additionally --description may be supplied. It is shown by ksplice-view later.
-
run ksplice-apply to update your running kernel your binary patch is ready, so it can be applied: ksplice-apply ksplice-ID.tar.gz
-
check the applied patches by ksplice-view
