このKconfig Wifiドライバファイル全体をモジュールにコンパイルするにはどのような変更が必要ですか? Cmakeを使用すると、Koファイルは生成されません。

このKconfig Wifiドライバファイル全体をモジュールにコンパイルするにはどのような変更が必要ですか? Cmakeを使用すると、Koファイルは生成されません。

ここに画像の説明を入力してください。

現在のKconfigファイルとmakeファイルは次のとおりです。

答え1

カーネルバージョンが5.12以降であると仮定すると、Linuxカーネルソースパッケージでパス名を持つファイルが表示されているようです<kernel source root>/drivers/net/wireless/mediatek/mt76/mt7921/Kconfig。プロセスに情報を提供するファイルです。生産する実際のカーネル構成ファイル。このファイルを変更しても、実際にカーネル構成は変更されません。

「このドライバをモジュールにコンパイルするには、ここでMを選択してください」テキストは、対応するカーネル設定メニューオプションのヘルプテキストです。たとえば、ディレクトリで次のコマンドを実行してカーネル設定メニューを表示できますmake menuconfig<kernel source root>このmake menuconfigコマンドは、カーネルソースツリーのさまざまな部分にあるすべてのファイルを処理し、Kconfigデータを使用してカーネル設定メニューを構築して表示します。

カーネル構成ファイルは<kernel source root>/.configそれぞれ配置されます。

このドライバをモジュールにコンパイルするには、<kernel source root>/.configその中に次の行が必要です。

# CONFIG_MT7921E is not set

または:

CONFIG_MT7921E=y

行を次のように変更します。

CONFIG_MT7921E=m

CONFIG_MT7921Eその行がファイルにない場合は追加.configできます。

しかし、「Cmakeを使用すると、.koファイルは生成されません」という言葉の意味を理解していません。通常、ディレクトリまたは他のMakefileターゲットの1つにmake modules入るときにそれを実行する必要があります。make allcd<kernel source root>

(というコマンドがありますが、cmakeまったく異なるビルドツールであり、Linuxカーネルのビルドプロセスでは使用されません。通常は、実際のMakefileを生成する「プリプロセッサ」だけなので、使用するアプリケーションをビルドするcmakeときに主に実行されます。cmakeまずcmake、次にmakemake installしかしこれはLinuxカーネルとは関係ありません)。

関連情報