web-dev-qa-db-ja.com

Ubuntu 12.04、i801 I2Cドライバーのロード

私は次のバスに接続されたデバイスを持っています(達成しようとしていることを説明したら説明します)、ドライバー自体をデバッグしようとしています(一般的には以前の仕様とubuntuバージョンで機能していましたが、 m最新の仕様で動作するようにドライバを更新しようとすると、それを行うために新しいバージョンのubuntuで動作し、インフラストラクチャができたら開発を開始する必要があります)-i2cバスドライバをロードしようとしていますi801は成功しません。使用可能な/ dev/i2c-xがありません。組み込みモジュールとしてもモジュールとしてもコンパイルしようとしました-使用できるようにするものはないようです。 「何か」、つまり/ sys/modules/i2c_i801/drivers/pci:i801_smbusが表示されます。

私が使用するマザーボードはIntelのDB75ENです。スコープでバスを確認すると、44秒で数秒に1回デバイスへのアクセスを確認できます。 Torvaldsの最新カーネル(3.14)を使用しています。

ドライバのロード方法、およびバスドライバの選択およびロード方法に関するアドバイスはありますか?

ありがとうございました!

4
Shahal

まあ、私の主な問題は、私が調べなかったアドレス間に衝突があったことのようです。 osl.cのacpi_check_address_range()が衝突を検出しました。これにより、i2c-i801プローブからのacpi_check_resource_conflict()の呼び出しが失敗しました。私はそれをコメントしてコンパイルし、うまくいきました。ドライバーを登録するには、次の方法でアドレスを明示的に送信する必要がありました:Sudo su echo>/sys/bus/i2c/devices/i2c-0/new_device(i2c0はi801)

それを解決する別の方法は、osl.cのacpi_check_resource_conflict()が失敗する前にチェックするENFORCE_RESOURCES_STRICTをundefすることだと思います。

追伸

I2cdetectを実行すると、デバイス44hが表示されます。

3
Shahal