1

状況 1:

Linux カーネルの一部として i2c チップ ドライバーがあります。i2c チップ ドライバーがカーネル ブート メッセージからカーネル内にあることを確認できます (私のチップ ドライバーは mma8450 です)。

dmesg:

mma8450 0-001c: uevent

このドライバーも表示されます(0x1cはチップのi2cアドレスです)

cat /sys/bus/i2c/devices/0-001c/name
mma8450

/dev インターフェイスにこのドライバー ノードが表示されません。私の質問は、ユーザー プログラムでこのデバイスにアクセスできるように、/dev にこのデバイスのノードを作成する方法です。

状況 2:

同じチップ ドライバのモジュールを作成し、カーネルの一部にはしません。insmod mma8450 を使用してこのモジュールをロードできます。メジャー/マイナー番号がないため、このデバイスのノードを作成するにはどうすればよいですか? (mma8450 のソース コードで、このドライバーに割り当てられたメジャー番号とマイナー番号を確認できません)

どんな助けでも大歓迎です

よろしく

4

3 に答える 3

3

デバイスのメジャー/マイナー番号を見つけます。

cat /proc/devices

i2c バス用のデバイスと i2c デバイス自体用のデバイスが表示されます。

i2c デバイス ドライバーのデバイス ノードを作成します。

mknod /dev/[device name] [type] [major] [minor]
于 2011-06-02T21:52:11.373 に答える