私はアップスクエアコンピュータを使用しています。 HATコネクタのi2cポートを介してデバイスを接続します。使用すると、i2cdetect
異なるポートで同じデバイス(アドレスで識別)を検出します。再起動の間に変更が発生します。
私が知っているのは、 にルールを設定すれば、この問題を解決できると思いますが、etc/udev/rules.d
どうすればいいのか分かりません。特に、センサーをフィルタリングしてルールを作成する方法がわかりません。私が見たことkernel
はありますが、i2c-2
次回の再起動時にこれが変わるかどうか疑問に思います。
答え1
私はSeed ODYSSEYボードであなたと同じ問題を経験しました。ルールファイル71-i2c.rulesを/etc/udev/rules.d/に追加してこの問題を解決しました。
71 - i2c.rulesの詳細コード
SUBSYSTEM=="i2c-dev", KERNELS=="i2c_designware.1", SYMLINK+="i2c-10"
私はこのコードを使用して、私が望む特定のi2cへのシンボリックリンクを作成します。そして、/dev/i2c-10で作業すると、常に正しいデータを取得できます。
希望のi2cバスの特定のデータを取得するには?次のコマンドを使用して取得できます。
udevadm info -a /dev/i2c-1
このコマンドの出力で、i2cバスに含めたい特定のデータを見つける必要があります。
答え2
私が知っている限り、i2c番号は動的に割り当てられているため、変更される可能性があります。したがって、静的に使用することはできないと思います。