新しいカーネルドライバのコードのディレクトリとサブディレクトリ

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/Sophisticated_/article/details/88253749

我々はテストドライバーのディレクトリツリーとしてARMアーキテクチャ用のカーネルソースディレクトリにドライバを追加したいと仮定し
ここに画像を挿入説明
、カーネルにおける増加ディレクトリおよびサブディレクトリに、我々は、対応する新しいディレクトリを作成する必要があるKconfigMakefile、ファイルを新しいディレクトリながら、親ディレクトリkconfigをしても、メイクファイルするためにMakefileを変更する必要があり、新たなファイルがkconfigを参照することができます

新しいテストディレクトリで次の含まれている必要がありますKconfigファイル:

# 
# TEST driver configuration
#
menu "TEST Driver "
comment " TEST Driver"

config CONFIG_TEST
	bool "TEST support "

config CONFIG_TEST_USER
	tristate "TEST user-space interface"
	depends on CONFIG_TEST

endmenu

カーネルのテストドライバーが、新しい機能であるため、あなたが最初のメニューのテストドライバーを作成する必要があるので、;その後、「TESTサポート」を表示、ユーザが選択するのを待ち、次のことが(CONFIG_TEST = y)がある場合、ユーザーは、テストドライバーを選択したかどうかを判断します、さらなる機能を示す:CPUの機能を有するユーザインタフェースをサポートし、ユーザインタフェース機能がカーネルモジュールにコンパイルすることができるように、本明細書で使用されるクエリステートメントはトライステート

動作するように、このkconfigをファイルを作成するには、以下を追加し、アーチ/腕/ kconfigをファイルを変更する必要があります

source "drivers/test/Kconfig"

新しいファイルは、kconfigを参照するスクリプトソース手段

新しいテストディレクトリで次の含まれている必要がありますMakefileファイル:

# drivers/test/Makefile
#
# Makefile for the TEST.
#

obj-$(CONFIG_TEST) += test.o test_queue.o test_client.o
obj-$(CONFIG_TEST_USER) += test_ioctl.o
obj-$(CONFIG_PROC_FS) += test_proc.o

obj-$(CONFIG_TEST_CPU) += cpu/

スクリプトが値obj- *コンフィギュレーション変数に基づいてリストを作成します。CONFIG_TEST_CPU = yは、ディレクトリリストCPUに追加する必要がある場合、テストディレクトリは、サブディレクトリのCPUを含んでいるので

CPUテストディレクトリには、次のサブディレクトリにもMakefileを必要と含まれています

# drivers/test/test/Makefile
#
# Makefile for the TEST CPU
#

obj-$(CONFIG_TEST_CPU) += cpu.o

全体のテストカタログを作るためには、コマンドの役割にコンパイルすることができ、Makefileファイルのテストディレクトリの親ディレクトリは、次のスクリプトを追加する必要があります

obj-$(CONFIG_TEST) += test/

ユーザーがテストディレクトリ中にカーネルをコンパイルできるように、$(CONFIG_TEST)+ =テスト/ - objがでドライバー/ Makefileの追加しました

新しいテストディレクトリツリーは、kconfigをを追加し、Makefileの後に、次のとおりです。
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/Sophisticated_/article/details/88253749