私はさまざまな理由でロード可能なモジュールをサポートするカーネルを構築しました。これは、カーネル構成でアクティブでないモジュールが必要な場合に便利です。
次に、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」ファイルを読んで確認できます。
多くのツリーの外部および排他的なドライバモジュールは、一致しないコンパイラバージョンでビルドすることを拒否します。