プラットフォームドライバのインストール

プラットフォームドライバのインストール

私は最近、最小限のLinuxシステムを実行しているx86ボードに監視タイマーを組み込んだデバイスドライバを得ました。カーネルは3.6.11でありbuildroot

インストールが機能しないため、必要なドライバをudev手動でインストールしてインポートするinsmod必要があります。mknodCANドライバではこれを正常に実行しましたが、このウォッチドッグドライバではターゲットのソースコードをクロスコンパイルでき、結果のinsmod.koファイルを正常に生成できました。その後、エラーは生成されず、モジュールがlsmodロードされたことを報告する呼び出しが行われます。

私が経験している問題は、/devこのドライバのデバイスノードを作成する必要がありますが、進行方法がわからないことです。文字デバイスを取得するのと同じ方法で、デバイスのメジャー番号とマイナー番号を取得する方法がわかりません。

ドライバソースにはプラットフォームデバイスドライバと呼ばれていますが、それが何を意味するのかはわかりません。キャラクターデバイス、ブロックデバイスという言葉だけ聞いたのですが、メジャーとマイナー数字の概念がプラットフォームデバイスと関連があるのでしょうか?では、この情報をどのように取得できますか?デバイスドライバ名にエントリがなく、どのように/proc進むべきかわかりません。

答え1

一般的なカーネル監視インターフェイスを使用している場合、/dev/watchdogここでは10、130です。

他のものをエクスポートすることもできます(/dev/watchdog0など)。 sysfsを照会して見つけることができます。

$ cat /sys/class/watchdog/watchdog0/dev
253:0
$ cat /sys/class/watchdog/watchdog0/uevent 
MAJOR=253
MINOR=0
DEVNAME=watchdog0

本当に:

$ ls -l /dev/watchdog0 
crw------- 1 root root 253, 0 May 17 18:26 /dev/watchdog0

番号は動的に割り当てることができるため、(不明)コンピュータによって異なる場合があります。

(プラットフォームデバイスには/sys/devices/platformさまざまなパラメータを設定する機能があるかもしれません)

編集する:次のようにmknodルートとして文字デバイスを作成できます。

mknod -m 0600 /dev/watchdog c 10 130

-m設定モード(ここではファイル権限、8進数を使用する必要があります)は/dev/watchdog名前cの1つを意味します。キャラクターデバイス(第二ロック) 10 はプライマリ番号、130 はセカンダリ番号です。

関連情報