ロードされたカーネル用のiptablesカーネルモジュールを構築する方法は?

ロードされたカーネル用のiptablesカーネルモジュールを構築する方法は?

私はさまざまな理由でロード可能なモジュールをサポートするカーネルを構築しました。これは、カーネル構成でアクティブでないモジュールが必要な場合に便利です。

次に、nouveauなどのドライバを使用してソースディレクトリに移動します。カーネル全体をコンパイルして再起動することなく、どのようにmake M=drivers/gpu/drm/nouveau更新されたモジュールを構築できますか?iptables可能ですか?

答え1

カーネルソースディレクトリに移動して必要なものを変更しmakeますmake modules_install

それはすべてです。

特定のモジュールのみをビルドするには、次を使用します。

make M=path/to/module/directory

たとえば(カーネルの最上位ディレクトリから):

make M=fs/ext4
make M=fs/ext4 modules_install

変更されたモジュールを有効にするには、そのモジュールを取り外して再挿入する必要があります。モジュールが以前にロードされていない場合は、特別なアクションは必要ありません。

このように、組み込みからモジュールに何かを変更することはできず(再起動する必要があります)、一部のモジュールには組み込み設定を変更する必要がある依存関係があります。これを行うには、再起動する必要があります。

答え2

Mattの答えは要約されていますが、もう1つ追加したいと思います。

カーネルイメージの構築に使用したのと同じ GCC バージョンで外部モジュールをコンパイルすることをお勧めします。 「/proc/version」ファイルを読んで確認できます。

多くのツリーの外部および排他的なドライバモジュールは、一致しないコンパイラバージョンでビルドすることを拒否します。

関連情報