現在Linuxにインストールされているカーネルにパッチファイルを適用するには?

現在Linuxにインストールされているカーネルにパッチファイルを適用するには?

私は現在Ubuntuインストールにパッチファイルを適用したいです(パッチファイルの例)。 Linuxカーネルにパッチファイルを正しく適用するプロセスは何ですか?

ディスクイメージファイルにパッチを適用してUSBにフラッシュした後、新しいLinuxコピーをインストールするプロセス全体を実行する必要がありますか?現在のインストールにパッチを適用できますか?または、ディスクイメージにパッチを適用してから、現在のインストールをアップグレードできますか?

私が試したこと:

  1. 私が実行しているカーネルのバージョンを確認してください。

    $ uname -srm
    Linux 5.11.0-25-generic x86_64
    
  2. 私のカーネルディレクトリに移動します(私の考えでは):

    cd /lib/modules/5.11.0-25-generic/kernel
    
  3. パッチファイルの適用

    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に保存されます。

おすすめ記事