さて、1回目のビルド・インストールが終わったので残課題を回収していきます。今回は残課題①。patchを調べます。


【関連記事】


【キーワード】
patch
  • 2019/7/10
①patchとinc.patchの違い

【PC-Linuxビルド】(2019/07/07:ビルド前編)で私はこんなことを書いている。
次にpatchinc.patch。両方落としてみたが、どっちも普通のパッチだった。patchのリンクにマウスを持っていくと「Download to previous mainline」と表示される。inc.patchのリンクにマウスを持っていくと「Download incremental patch」と表示される。まだ違いが分かってない。いつか調べよう。
違いを理解せず、先に進んだのだった。

そもそも、私はパッチを使いこなせていないので、そこから始めたい。しかしパッチのことを調べ始めると、それだけでこの記事が埋まってしまいそうなので、別の記事(Linuxの【パッチ】を使いこなしたい)にまとめた。

ここでは「Download to previous mainline」と「Download incremental patch」の違いについてのみ調査する。

The Linux Kernel Archivesを開いた。確か3日前ぐらいは5.1.16がstableだったのに今日見たら5.2がstableになってる。
1

patchをダウンロードしてみるとpatch-5.1.16.xzというファイルだった。
inc.patchをダウンロードしてみるとpatch-5.1.15-16.xzいうファイルだった。

xzファイルをWindowsで解凍するには7-zipが要るみたい(Windows環境でtar.xzを解凍(展開)する方法)。まだこのPCには7-zipを入れてないのでTeraTerm経由でパッチをLinuxパソコンにscp転送した(なんとなく5.2のパッチもダウンロードした)。
1

【 xz 】コマンド/【 unxz 】コマンド――ファイルを圧縮/伸張するを読み、unxzというコマンドで解凍できることを知る。

1

無事解凍できた。

patchは「Download to previous mainline」。これは古いメインラインへのパッチと読み取れる。patch-5.1.16を開きMakefileのdiffを見た。これは5.1.0から5.1.16への差分だ。
diff --git a/Makefile b/Makefile
index 26c92f892d24..46a0ae537182 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 1
-SUBLEVEL = 0
+SUBLEVEL = 16
 EXTRAVERSION =
 NAME = Shy Crocodile

@@ -636,7 +636,7 @@ ifeq ($(may-sync-config),1)
 # Read in dependencies to all Kconfig* files, make sure to run syncconfig if
 # changes are detected. This should be included after arch/$(SRCARCH)/Makefile
 # because some architectures define CROSS_COMPILE there.
--include include/config/auto.conf.cmd
+include include/config/auto.conf.cmd

 $(KCONFIG_CONFIG):
    @echo >&2 '***'
inc.patchは「Download incremental patch」。これは増分パッチと読み取れる。patch-5.1.15-16を開きMakefileのdiffを見た。これは5.1.15から5.1.16への差分だ。
diff --git a/Makefile b/Makefile
index d7b3c8e3ff3e..46a0ae537182 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 1
-SUBLEVEL = 15
+SUBLEVEL = 16
 EXTRAVERSION =
 NAME = Shy Crocodile
patch-5.2のMakefileのdiffも見てみた。これは5.1.0から5.2.0への差分だ。
diff --git a/Makefile b/Makefile
index 26c92f892d24..3e4868a6498b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
-PATCHLEVEL = 1
+PATCHLEVEL = 2
 SUBLEVEL = 0
 EXTRAVERSION =
-NAME = Shy Crocodile
+NAME = Bobtail Squid
(以下省略)
なんか法則が分かってきた。
patch-5.1.15-16  5.1.15→5.1.16の差分
patch-5.1.16  5.1.0→5.1.16の差分
patch-5.2  5.1.0→5.2.0の差分
サイズを見てもそんな感じ。
-rw-r--r--  1 pavement1234 pavement1234   100804  7月 10 01:31 patch-5.1.15-16
-rw-r--r--  1 pavement1234 pavement1234  1997684  7月 10 01:31 patch-5.1.16
-rw-r--r--  1 pavement1234 pavement1234 64241504  7月 10 01:26 patch-5.2

The Linux Kernel HOWTO5. カーネルへのパッチあてを読む。更にLinuxのバージョンを確認する方法を読む。今後トラブったらこの辺を参考にしよう。

続く
IMG_20190709_110800


詳解 Linuxカーネル 第3版
Daniel P. Bovet
オライリー・ジャパン
2007-02-26


組み込みLinuxシステム構築 第2版
Karim Yaghmour
オライリージャパン
2009-10-26


Linuxデバイスドライバ 第3版
Jonathan Corbet
オライリージャパン
2005-10-22



スポンサードリンク