私のカスタムカーネルがモジュールサポートで構築されていることを確認できますか?

私のカスタムカーネルがモジュールサポートで構築されていることを確認できますか?

ベンダーから最小のLinuxインストールを受け取りました。以前の質問に答えて、モジュールがサポートされているかどうかにかかわらず、カーネルを構築することが可能であることがわかりました。接続する必要があるCANBUSデバイスがあり、このデバイスには.koファイル形式のドライバが付属しています。提供されたインストールスクリプトを使用してインストールしたいのですが、まずカーネルがモジュールサポートとして構築されていることを知っておく必要があります。コマンドラインでこれを検出できますか?

私は実行してもlsmod何も返さないので、私は現在.koファイルがないことを知っています。しかし、これはカーネルが.koファイルをインストールすることを許可しないという意味ですか?

答え1

ファイルシステムが存在する場合、/procカーネルがモジュールサポートにコンパイルされている場合にのみファイルが存在します。/proc/modulesファイルが存在するが空の場合、カーネルはモジュールをサポートしていますが、現在ロードされているモジュールはありません。このファイルがないと、カーネルはどのモジュールもロードできません。

技術的には必要ありません。/procカーネルバイナリの存在init_moduleとシステムコールを確認できます。圧縮されたバイナリ(例えば、または)delete_moduleのみがある場合、それは容易ではないかもしれません。バラよりvmlinuzuImagevmlinuzをvmlinuxに解凍するには?のためのvmlinuz。ほとんどのカーネル圧縮を正常に解凍すると、文字列を検索できますsys_init_module

モジュールがサポートされている場合、独自のモジュールをコンパイルするには追加のファイルが必要です。カーネルヘッダファイル。これらはCヘッダーファイル(*.h)であり、その一部はカーネルがコンパイルされたときに生成されます(カーネルソースからのみインポートすることはできません)。バラよりカーネルソースツリーには何が含まれていますか?これはLinuxカーネルヘッダファイルに関連していますか?

答え2

ほとんどのディストリビューションは、どこかにカーネル構成を含むテキストファイルを保存します。 Debianシステムでは/boot/config-<kernel_version>

grepその後、単にファイルを実行できます。

grep CONFIG_MODULES /boot/config-<kernel_version>

関連情報