2012-03-28 29 views
2

/proc/devicesファイルから、デバイスドライバのメジャー番号を確認することができます。 デバイスドライバでサポートされているマイナー番号を一覧表示する方法はありますか? ソースがありません。実行中のLinuxから情報を取得する方法が必要です。Linuxデバイスドライバで使用されるマイナー番号

答えて

-1

Linuxはそれを追跡しません。
openがマイナー番号で呼び出されると、この番号がデバイスドライバに渡されます。運転手はそれが望むものなら何でもそれを行うことができます。

与えられたドライバは、それぞれが状態構造を指すマイナー番号の表を実装することができます。しかしそれはそうでなければそれを扱うかもしれません。

0

Linux は、特定のドライバが割り当てた領域を追跡します。それ以外の場合は、vc、serial(maj 4)およびttyaux(maj 5)リージョンで発生するメジャー番号の共有は、追加のディスパッチモジュールまたはそのようなものがなければ実行できません。 fs/char_dev.cでは、あなたは

kobj = kobj_lookup(cdev_map, inode->i_rdev, &idx); 

が見つかりますので、確かに、Linuxは(メジャー、マイナー)によりCDEVオブジェクトを探しているだけではなく、(メジャー)。

は、例えば/sys/dev/char/を参照してください:

lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:62 -> ../../devices/virtual/tty/tty62 
lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:63 -> ../../devices/virtual/tty/tty63 
lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:64 -> ../../devices/pnp0/00:06/tty/ttyS0 
lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:65 -> ../../devices/platform/serial8250/tty/ttyS1 
lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:66 -> ../../devices/platform/serial8250/tty/ttyS2 
... 
lrwxrwxrwx 1 root root 0 Mar 27 17:34 4:79 -> ../../devices/platform/serial8250/tty/ttyS15 

私はCONFIG_SERIAL_8250_NR_UARTS=16と私のカーネルを構成しているので、CONFIG_SERIAL_8250_RUNTIME_UARTS=16を、私はのsysfsディレクトリにttyS15までのエントリが表示されます。これはデバイスドライバが私の設定アクションの結果としてを登録したものです。これはDocumentation/devices.txtに従って予約されているものより少なくなることがあります。

関連する問題