2010年1月21日 星期四

Patching Kernel Sample

Patching kernel 的例子
# cd /usr/src/linux
# bzip2 -dc ../patch-2.6.15.bz2 | patch -s -p1 (將 patch.bz2 解壓後,餵給 patch 吃)
# gunzip < ../patch-2.6.15.gz | patch -s -p1
(將 patch.gz 解壓後,餵給 patch 吃)
# patch -s -p1 < ../patch-2.6.15
(也可以在解壓縮後,直接使用 patch 指令)


如果只是要測試 patch 的效果(test dirve)
可在 patch 加上『--dry-run』 參數
# cd /usr/src/linux
# bzip2 -dc ../patch-2.6.15.bz2 | patch -s -p1 --dry-run
# gunzip < ../patch-2.6.15.gz | patch -s -p1 --dry-run
# patch -s -p1 --dry-run < ../patch-2.6.15


另外也可以透過 『kernel source』 裡的 『scripts』 來 patch kernel
# /usr/src/linux/scripts/patch-kernel


移除 kernel Patch 的例子
一樣的方式,只需要加上『-R』 參數
# cd /usr/src/linux
# bzip2 -dc ../patch-2.6.15.bz2 | patch -s -p1 -R
# gunzip < ../patch-2.6.15.gz | patch -s -p1 -R
# patch -s -p1 -R < ../patch-2.6.15


或者不加『-R』 直接再執行一次 patch kernel 的指令
# cd /usr/src/linux
# bzip2 -dc ../patch-2.6.15.bz2 | patch -s -p1
patching file linux/Documentation/Configure.help
Reversed (or previously applied) patch detected! Assume -R? [n] y
(畫面會詢問你是否要執行 -R 移除 kernel patch 的動作)


---END---