kpatch/README.md
Zhipeng Xie 853de469b3 add README.md
Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
2021-01-04 21:00:56 -05:00

98 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

使用指南
----------
## 制作内核热补丁
### 环境准备
安装依赖软件包
```bash
yum install -y make gcc patch bison flex openssl-devel kpatch kpatch-runtime
```
安装当前内核源码和开发包
```bash
yum install -y kernel-source-`uname -r` kernel-debuginfo-`uname -r` kernel-devel-`uname -r`
```
进入热补丁制作目录并准备环境
```bash
cd /opt/patch_workspace
rm -rf kernel-source .config
ln -s /usr/src/linux-`uname -r`/ kernel-source
ln -s /usr/src/linux-`uname -r`/.config .config
ln -s /usr/lib/debug/lib/modules/`uname -r`/vmlinux vmlinux
```
支持两种方式制作内核热补丁
### 方法1直接修改源代码的方式
进入内核源码目录(下面以修改fs/proc/cmdline.c文件为例)
```bash
cd kernel-source
cd fs/proc/
cp cmdline.c cmdline.c.new
```
修改cmdline.c.new中的函数
开始制作热补丁
```bash
./make_hotpatch -d .new -i cmdline
```
参数说明:
-d 后面跟上前面cp操作时的唯一后缀名。
-i 后跟补丁ID可包括字母和数字。
### 方法2通过patch文件的方式
```bash
./make_hotpatch -i cmdline -p cmdline.patch
```
参数说明:
-p patch文件路径
补丁制作完成,补丁文件以压缩包的格式存放于/opt/patch_workspace/hotpatch目录下
## 管理热补丁
### 加载热补丁
```bash
livepatch -l klp_cmdline.tar.gz
```
### 激活热补丁
```bash
livepatch -a cmdline
```
此时热补丁已生效,缺陷函数已被修复。
### 回退热补丁
```bash
livepatch -d cmdline
```
### 卸载热补丁
```bash
livepatch -r cmdline
```