web-dev-qa-db-ja.com

radeon.hw_i2c = 1は温度測定値と関係がありますか?

可能であれば、Advanced Micro Devices [AMD] nee ATI RS880 [Radeon HD4290]カードから温度を読み取りたい。 ASUS M4A89GTDPRO/USB3マザーボードに統合されています。

sensor-detectは以下を報告します:

Do you want to probe the I2C/SMBus adapters now? (YES/no):
Using driver `i2c-piix4' for device 0000:00:14.0: ATI Technologies Inc SB600/SB700/SB800 SMBus
Module i2c-dev loaded successfully.

Next adapter: Radeon i2c bit bus 0x90 (i2c-0)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: Radeon i2c bit bus 0x91 (i2c-1)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: Radeon i2c bit bus 0x92 (i2c-2)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: Radeon i2c bit bus 0x93 (i2c-3)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: Radeon i2c bit bus 0x14 (i2c-4)
Do you want to scan it? (yes/NO/selectively): yes

sensorsコマンドの出力には何の関係もありません。

x.org Webサイト この情報を提供します:

熱センサーは、外部i2cチップまたは内部熱センサー(rv6xx-常緑樹のみ。2.6.36以降でサポート)を介して実装されます。すべてのOEMが熱センサーを実装しているわけではありません。 i2cチップを使用するアシックスの温度を取得するには、ボードで使用されているセンサー(lm63、lm64など)に適切なhwmonドライバーをロードする必要があります。 drmは、適切なhwmonドライバーを読み込もうとします。内部温度センサーを使用するボードでは、drmはhwmonインターフェースを自動的にセットアップします。適切なドライバーがロードされると、温度はlm_sensorsツールまたは/ sys/class/hwmonのsysfsを介してアクセスできます。

Hw.i2cモジュールパラメータはデフォルトで0です。モジュールの説明から(modinfo radeon)それが正確に何をするのか私にはわかりません。それを有効にすると、温度を取得するのに役立ちますか?

2
dash17291

Ubuntu14.04とカーネル3.14を使用して、AMD Radeon HD 8670/R7 250カード(OLANDチップセットファミリー)から温度を読み取ることができます。

$ sensors
[…]    
radeon-pci-0100
Adapter: PCI adapter
temp1:        +50.0°C  (crit = +120.0°C, hyst = +90.0°C)
[…]

ただし、sensors-detectはRadeonカードの温度センサーを検出しません。 sensorsは、カーネルのhwmonインターフェイスを介してアクセスできるため、センサーを「認識」します。つまり、radeondriverは、センサーをシステムにアクティブに「公開」します。

ディレクトリ/sys/class/hwmonには、すべてのhwmonインターフェイスのリストがあります。

$ ls -l /sys/class/hwmon/
total 0
drwxr-xr-x  2 root root 0 Jun 28 15:02 ./
drwxr-xr-x 56 root root 0 Jun 28 15:02 ../
lrwxrwxrwx  1 root root 0 Jun 28 15:02 hwmon0 -> ../../devices/virtual/hwmon/hwmon0/
lrwxrwxrwx  1 root root 0 Jun 28 15:02 hwmon1 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/
lrwxrwxrwx  1 root root 0 Jun 28 15:02 hwmon2 -> ../../devices/platform/coretemp.0/hwmon/hwmon2/
lrwxrwxrwx  1 root root 0 Jun 28 15:02 hwmon3 -> ../../devices/platform/nct6775.2560/hwmon/hwmon3/

中間結論:Radeonカードの温度を読み取るために、I²Cが機能するかどうかは問題ではありません。

http://xorg.freedesktop.org/wiki/RadeonFeature/ によると、温度センサーは私のカード(HD8670)と同じようにHD4290カードでもサポートされています。ただし、ドキュメントには「i2cチップまたは内部センサー」と記載されています(脚注28)。

同じサイトで、次の引用を見つけることができます:

熱センサーは、外部i2cチップまたは内部熱センサー(rv6xx-常緑樹のみ。2.6.36以降でサポート)を介して実装されます。すべてのOEMが熱センサーを実装しているわけではありません。 i2cチップを使用するアシックスの温度を取得するには、ボードで使用されているセンサー(lm63、lm64など)に適切なhwmonドライバーをロードする必要があります。 drmは、適切なhwmonドライバーを読み込もうとします。内部温度センサーを使用するボードでは、drmはhwmonインターフェースを自動的にセットアップします。適切なドライバーがロードされると、温度はlm_sensorsツールまたは/ sys/class/hwmonのsysfsを介してアクセスできます。

結論:ボード上の温度センサーがI²Cを介して接続されている可能性があります可能性があります。この場合、sensors-detectはそれを見つけることができるはずです。それでも、グラフィックカードに温度センサーがない可能性もあります。

追記

私には、hw_i2cパラメーターのセマンティクスは0 =無効および1 =有効のように見えます。

$ modinfo -p radeon
[…]
hw_i2c:hw i2c engine enable (0 = disable) (int)
[…]

私のシステムでは、cat /sys/module/radeon/parameters/hw_i2c0を提供しますが、それでも、すべてRadeonドライバーから発信される8つのI²Cバスがあります。

$ ls -l /sys/bus/i2c/devices/
total 0
drwxr-xr-x 2 root root 0 Jun 28 14:31 ./
drwxr-xr-x 4 root root 0 Jun 28 14:31 ../
lrwxrwxrwx 1 root root 0 Jun 28 14:31 i2c-0 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-0/
lrwxrwxrwx 1 root root 0 Jun 28 14:31 i2c-1 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-1/
lrwxrwxrwx 1 root root 0 Jun 28 14:31 i2c-2 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-2/
[…]
lrwxrwxrwx 1 root root 0 Jun 28 14:31 i2c-7 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-7/

$ grep . /sys/bus/i2c/devices/i2c-*/name
/sys/bus/i2c/devices/i2c-0/name:Radeon i2c bit bus 0x90
/sys/bus/i2c/devices/i2c-1/name:Radeon i2c bit bus 0x91
/sys/bus/i2c/devices/i2c-2/name:Radeon i2c bit bus 0x92
/sys/bus/i2c/devices/i2c-3/name:Radeon i2c bit bus 0x93
/sys/bus/i2c/devices/i2c-4/name:Radeon i2c bit bus 0x94
/sys/bus/i2c/devices/i2c-5/name:Radeon i2c bit bus 0x95
/sys/bus/i2c/devices/i2c-6/name:Radeon i2c bit bus 0x96
/sys/bus/i2c/devices/i2c-7/name:Radeon i2c bit bus 0x97

ddccontrolツールを使用して、I²Cを介してHDMI接続ディスプレイと「通信」できます。バックライトの明るさを調整します。したがって、I²Cは間違いなく機能します。

3
dasup