私は現在Ubuntuインストールにパッチファイルを適用したいです(パッチファイルの例)。 Linuxカーネルにパッチファイルを正しく適用するプロセスは何ですか?
ディスクイメージファイルにパッチを適用してUSBにフラッシュした後、新しいLinuxコピーをインストールするプロセス全体を実行する必要がありますか?現在のインストールにパッチを適用できますか?または、ディスクイメージにパッチを適用してから、現在のインストールをアップグレードできますか?
私が試したこと:
私が実行しているカーネルのバージョンを確認してください。
$ uname -srm Linux 5.11.0-25-generic x86_64
私のカーネルディレクトリに移動します(私の考えでは):
cd /lib/modules/5.11.0-25-generic/kernel
パッチファイルの適用
patch -p1 < ~/my-patch-file.patch
ちなみにパッチは適用されませんでした。出力は次のとおりです
can't find file to patch at input line 23
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
...
File to patch:
これを行う正しい方法は何ですか?
注:この質問は、任意のファイルをパッチする方法と同じではありません。私は何をすべきかを知っています。問題は特にパッチ方法に関する。現在インストールされているカーネル。
答え1
パッチはバイナリモジュールではなくソースファイルに適用されます。
適切なカーネルソースをインストールし、パッチを適用してから再構築する必要があります。機能している場合は、再構築されたモジュールを/lib/modulesの下の任意の場所にコピーして再起動できます。
カーネルソースコードは通常/usr/srcに保存されます。