0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOS カーネルパッチ適用の仕方(2/2)

Posted at

前回の続き
「CentOS カーネルパッチ適用の仕方(1/2)」

今回適用するパッチの修正は既にLinuxツリーのgitにマージされており、
commit ID:ddea368c78ff9acf45261a7c82635b98e9c1fcd6
修正ソース:drivers/net/bonding/bond_main.c  
と分かっている時の例です。

###1. パッチを作成する

Linuxカーネルのgitレポジトリをローカルマシンにcloneにします。

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

clone後、commit IDから今回のパッチ内容が正しいか確認します。
git show [commit ID]で、修正前後の内容が見れます。

# cd linux
# git show ddea368c78ff9acf45261a7c82635b98e9c1fcd6

問題なければ、パッチを作成します。
パッチファイル名は自動生成されますので、必要に応じてリネームしてください。

# git format-patch -1 ddea368c78ff9acf45261a7c82635b98e9c1fcd6

###2. パッチを適用する

作成したパッチを使って、パッチ適用とビルドを一緒に実施します。
作成したパッチは /root/rpmbuild/SOURCES 配下に置きます。

今回のバッチをRPMのSPECファイルに追加します。

# cd /root/rpmbuild/SPECS
vi kernel.spec

(略)

Patch needed for building this packages
Patch999998: 0001.patch   ★追加
empty final patch to facilitate testing of kernerl patches
Patch999999: linux-kernel-test.patch

(略)

ApplyOptionalPatch debrand-rh-i686-cpu.patch
ApplyOptionalPatch 0001.path    ★追加

もう一度ビルドをしてみる。

cd /root/rpmbuild/SPECS
rpmbuild -bb kernel.spec 2>&1 │ tee build.log

2>&1 │ tee build.log を付けることでビルドログが出るため、
パッチが適用されているか、ログで確認をする。

ビルド完了後、`/root/rpmbuild/RPMS/RPMS/に作られたrpmをインストールして、reboot。
これでカーネルパッチの適用は完了。

cd /root/rpmbuild/RPMS/x86̠ 64
rpm -ivh xxx.rpm
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?