linux 内核版本及如何打补丁

Linux内核下载地址 仅自己可见

 

长期稳定的版本:

 

 

最新的版本:

https://www.kernel.org/

 旧版本:

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

 

Linux下patch打补丁命令
patch [  -b [ -B Prefix ] ] [  -f ] [ -l ] [ -N ] [ -R ] [  -s ] [  -v ] [  -c | -e | -n ] [  -d Directory ] [  -D Define ] [  -F Number ] [  -i PatchFile ] [  -o OutFile ] [  -p Number ] [  -r RejectFile ] [  -x Number ] originalfile < patchfile
常使用的 patch 参数:

-pnum指定目录级别(从路径全称中除去几层目录)比如patchfile路径为 /u/howard/src/blurfl/blurfl.c,setting -p0 gives the entire file name unmodified,  -p1 gives u/howard/src/blurfl/blurfl.c without the leading slash, -p4 gives blurfl/blurfl.c and  not  specifying  -p  at all just gives you blurfl.c。

-d Directory 打补丁前,更改当前目录到指定目录。

-i PatchFile 从指定文件,而不是从标准输入中读取补丁信息。

-R 逆向补丁,这个选项在防止打错补丁很有用处。

Linux内核官方下载中的patch文件patch-x.y.z是通过使用diff命令与源文件linux-x.0.0比较生成的patch,在某些场合下我们可能需要主版本号和次版本号相同但修补版本号不同的内核,我们没有必要都下载下来,可以通过打补丁的方式获取。
比如我们常用的内核版本有3.2.4, 3.2.6,3.6.12。
1.首先我们从linux内核官网下载l文件inux-3.2.tar.gz。,patch-3.2.4.gz, patch-3.2.6.gz, patch-3.2.12.gz
2.解压文件linux-3.2.tar.gz
tar -xzf linux-3.2.tar.gz
3.将文件linux-3.2更改为需要的内核版本号,如linux-3.2.4,
mv linux-3.2 linux-3.2.4
4.解压patch-3.2.4.gz
gunzip -d patch-3.2.4.gz
5.给内核打补丁
patch -d linux-3.2.4 -p1 < patch-3.2.4
使用zcat命令可以在不解压的情况下给内核打补丁
zcat patch-3.2.4 | patch -d linux-3.2.4 -p1
查看linux-3.2.4目录下的Makefile文件,如果VERSION = 3,PATCHLEVEL = 2,SUBLEVEL = 4则表明打补丁成功。
内核版本回退到3.2.0
patch -R -d linux-3.2.4 -p1 < patch-3.2.4
或者
zcat patch-3.2.4.gz | patch -R -d linux-3.2.4 -p1
注意打补丁前最好不要修改内核文件,否则可能会导致打补丁失败

posted @ 2021-04-16 10:03  DMCF  阅读(4207)  评论(0编辑  收藏  举报