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
注意打補丁前最好不要修改內核文件,否則可能會導致打補丁失敗