Announcement

Collapse
No announcement yet.

How to monitor the GPU temperature?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    It's on my todo list, but I'm not sure when I'll get to it. The i2c bus handling in the driver would need to be changed. Rather than adding i2c buses as needed, the plan would be to walk the i2c gpio table and add all the potential buses then point users of those buses (connectors, thermal chip drivers, etc.) back to the bus they need.

    Comment


    • #22
      Great, I'm looking forward to it!

      Thanks for answering all my questions, it's much appreciated

      Comment


      • #23
        I'm having no reading temperatures on lm_sensors (AGP X1600pro)

        01:00.0 VGA compatible controller: ATI Technologies Inc RV530 [Radeon X1600]

        HTML Code:
        $ lsb_release -a
        No LSB modules are available.
        Distributor ID:	Ubuntu
        Description:	Ubuntu natty (development branch)
        Release:	11.04
        Codename:	natty
        Code:
        uname -a
        Linux desktop 2.6.38-999-generic #201102210905 SMP Mon Feb 21 09:08:37 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
        here's the output:

        Code:
        Next adapter: Radeon i2c bit bus 0x92 (i2c-3)
        Do you want to scan it? (YES/no/selectively): 
        Client found at address 0x4c
        Probing for `National Semiconductor LM75'...                No
        Probing for `Dallas Semiconductor DS75'...                  No
        Probing for `Analog Devices ADT7466'...                     No
        Probing for `Andigilog aSC7511'...                          No
        Probing for `Dallas Semiconductor DS1621/DS1631'...         No
        Probing for `Analog Devices ADM1021'...                     No
        Probing for `Analog Devices ADM1021A/ADM1023'...            No
        Probing for `Maxim MAX1617'...                              No
        Probing for `Maxim MAX1617A'...                             No
        Probing for `Maxim MAX1668'...                              No
        Probing for `Maxim MAX1805'...                              No
        Probing for `Maxim MAX1989'...                              No
        Probing for `Maxim MAX6655/MAX6656'...                      No
        Probing for `TI THMC10'...                                  No
        Probing for `National Semiconductor LM84'...                No
        Probing for `Genesys Logic GL523SM'...                      No
        Probing for `Onsemi MC1066'...                              No
        Probing for `Maxim MAX1618'...                              No
        Probing for `Maxim MAX1619'...                              No
        Probing for `National Semiconductor LM82/LM83'...           No
        Probing for `National Semiconductor LM90'...                No
        Probing for `National Semiconductor LM89/LM99'...           No
        Probing for `National Semiconductor LM86'...                No
        Probing for `Analog Devices ADM1032'...                     No
        Probing for `Maxim MAX6654'...                              No
        Probing for `Maxim MAX6690'...                              No
        Probing for `Maxim MAX6657/MAX6658/MAX6659'...              No
        Probing for `Maxim MAX6648/MAX6649/MAX6692'...              No
        Probing for `Maxim MAX6680/MAX6681'...                      No
        Probing for `Maxim MAX6695/MAX6696'...                      No
        Probing for `Winbond W83L771W/G'...                         No
        Probing for `Winbond W83L771AWG/ASG'...                     No
        Probing for `Texas Instruments TMP401'...                   No
        Probing for `Texas Instruments TMP411'...                   No
        Probing for `Texas Instruments TMP421'...                   No
        Probing for `Texas Instruments TMP422'...                   No
        Probing for `Texas Instruments TMP423'...                   No
        Probing for `Texas Instruments AMC6821'...                  No
        Probing for `National Semiconductor LM63'...                Success!
            (confidence 6, driver `lm63')
        Probing for `Fintek F75363SG'...                            No
        Probing for `National Semiconductor LM73'...                No
        Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
        Probing for `Analog Devices ADT7461'...                     No
        Probing for `Analog Devices ADT7481'...                     No
        Probing for `Fintek F75383S/M'...                           No
        Probing for `SMSC EMC1403'...                               No
        Probing for `SMSC EMC1404'...                               No

        Code:
        $ sudo i2cdetect 3
        WARNING! This program can confuse your I2C bus, cause data loss and worse!
        I will probe file /dev/i2c-3.
        I will probe address range 0x03-0x77.
        Continue? [Y/n] 
             0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
        00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
        10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- -- 
        50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        70: -- -- -- -- -- -- -- --
        I wonder if the additional buses will still be added?

        Comment


        • #24
          Originally posted by hobbes View Post
          I'm having no reading temperatures on lm_sensors (AGP X1600pro)

          Code:
          Next adapter: Radeon i2c bit bus 0x92 (i2c-3)
          Do you want to scan it? (YES/no/selectively): 
          Client found at address 0x4c
          Probing for `National Semiconductor LM63'...                Success!
              (confidence 6, driver `lm63')
          Support for all the i2c buses was added several kernels ago. According to your post there is an lm63 thermal sensor detected which seems right as lm63 or lm64 chips are often used on radeon boards for thermal sensors. The lm63/lm64 chips are handled by the lm63 hwmon driver. You'll need to load the module manually if it's not loaded automatically. The thermal info is available via sysfs in /sys/class/hwmon/

          Comment


          • #25
            Code:
            $ lsmod 
            
            ...
            
            parport_pc             37530  1 
            emu10k1_gp             12606  0 
            it87                   43611  0 
            hwmon_vid              12779  1 it87
            i2c_viapro             13153  0 
            soundcore              12680  1 snd
            lm63                   14385  0 
            gameport               20069  2 emu10k1_gp
            shpchp                 37397  0 
            lp                     17868  0 
            parport                42788  3 ppdev,parport_pc,lp
            
            ...
            the module is loaded, but inside the hwmon0 directory apparently is missing data about my GPU. I can only see data related to my motherboard/CPU. I'm assuming that it should be a lm63 file or indication somewhere.

            $ pwd
            /sys/class/hwmon/hwmon0/device


            Code:
            $ :/sys/class/hwmon/hwmon0/device$ ls
            alarms      in6_alarm                   pwm2_auto_point4_pwm
            driver      in6_input                   pwm2_auto_point4_temp
            fan1_alarm  in6_max                     pwm2_enable
            fan1_div    in6_min                     pwm2_freq
            fan1_input  in7_alarm                   pwm3
            fan1_min    in7_input                   pwm3_auto_channels_temp
            fan2_alarm  in7_max                     pwm3_auto_point1_pwm
            fan2_div    in7_min                     pwm3_auto_point1_temp
            fan2_input  in8_input                   pwm3_auto_point1_temp_hyst
            fan2_min    in8_label                   pwm3_auto_point2_pwm
            hwmon       modalias                    pwm3_auto_point2_temp
            in0_alarm   name                        pwm3_auto_point3_pwm
            in0_input   power                       pwm3_auto_point3_temp
            in0_max     pwm1                        pwm3_auto_point4_pwm
            in0_min     pwm1_auto_channels_temp     pwm3_auto_point4_temp
            in1_alarm   pwm1_auto_point1_pwm        pwm3_enable
            in1_input   pwm1_auto_point1_temp       pwm3_freq
            in1_max     pwm1_auto_point1_temp_hyst  subsystem
            in1_min     pwm1_auto_point2_pwm        temp1_alarm
            in2_alarm   pwm1_auto_point2_temp       temp1_input
            in2_input   pwm1_auto_point3_pwm        temp1_max
            in2_max     pwm1_auto_point3_temp       temp1_min
            in2_min     pwm1_auto_point4_pwm        temp1_type
            in3_alarm   pwm1_auto_point4_temp       temp2_alarm
            in3_input   pwm1_enable                 temp2_input
            in3_max     pwm1_freq                   temp2_max
            in3_min     pwm2                        temp2_min
            in4_alarm   pwm2_auto_channels_temp     temp2_type
            in4_input   pwm2_auto_point1_pwm        temp3_alarm
            in4_max     pwm2_auto_point1_temp       temp3_input
            in4_min     pwm2_auto_point1_temp_hyst  temp3_max
            in5_alarm   pwm2_auto_point2_pwm        temp3_min
            in5_input   pwm2_auto_point2_temp       temp3_type
            in5_max     pwm2_auto_point3_pwm        uevent
            in5_min     pwm2_auto_point3_temp
            Code:
            $ sensors
            it87-isa-0290
            Adapter: ISA adapter
            in0:         +1.22 V  (min =  +0.00 V, max =  +4.08 V)   
            in1:         +2.69 V  (min =  +0.00 V, max =  +4.08 V)   
            in2:         +3.31 V  (min =  +0.00 V, max =  +4.08 V)   
            in3:         +3.01 V  (min =  +0.00 V, max =  +4.08 V)   
            in4:         +3.04 V  (min =  +0.00 V, max =  +4.08 V)   
            in5:         +2.66 V  (min =  +0.00 V, max =  +4.08 V)   
            in6:         +1.01 V  (min =  +0.00 V, max =  +4.08 V)   
            in7:         +1.68 V  (min =  +0.00 V, max =  +4.08 V)   
            Vbat:        +0.00 V
            fan1:       1814 RPM  (min =    0 RPM, div = 8)
            fan2:          0 RPM  (min =    0 RPM, div = 8)
            temp1:       +25.0C  (low  = +127.0C, high = +127.0C)  sensor = thermistor
            temp2:       -55.0C  (low  = +127.0C, high = +127.0C)  sensor = thermistor
            temp3:       +29.0C  (low  = +127.0C, high = +127.0C)  sensor = thermal diode
            Any ideas?

            Comment


            • #26
              Make sure i2c_dev and i2c_core are loaded. Also check your dmesg output for any messages about lm63.

              Comment


              • #27
                Just for the record I ran lm-sensors and it found the temps and such for my 5770.

                here is the output that I get:

                radeon-pci-0100
                Adapter: PCI adapter
                temp1: +56.0C

                The sensors-detect script did a good job probing my card and finding every little i2c bus and fingering it. The thing found this as a 'battery sensor' or something like that.

                Weird, but it appears to work.

                Comment


                • #28
                  r6xx and newer radeons (like your 5770) have an internal thermal sensor that is exposed by the driver on most cards that utilize it so there's no need to probe for it. On pre-r6xx hardware, the thermal sensor was an external i2c chip, so you need to load the appropriate i2c hwmon driver.

                  Comment


                  • #29
                    Originally posted by agd5f View Post
                    Make sure i2c_dev and i2c_core are loaded. Also check your dmesg output for any messages about lm63.
                    Code:
                    $ cat /etc/modules 
                    # /etc/modules: kernel modules to load at boot time.
                    #
                    # This file contains the names of kernel modules that should be loaded
                    # at boot time, one per line. Lines beginning with "#" are ignored.
                    
                    lp
                    rtc
                    
                    
                    # Generated by sensors-detect on Wed Feb 23 01:15:05 2011
                    # Chip drivers
                    lm63
                    it87
                    i2c_dev
                    i2c_core

                    lsmod

                    Code:
                    Module                  Size  Used by
                    binfmt_misc            17646  1 
                    snd_emu10k1_synth      17256  0 
                    snd_emux_synth         39664  1 snd_emu10k1_synth
                    snd_seq_virmidi        13623  1 snd_emux_synth
                    snd_seq_midi_emul      13939  1 snd_emux_synth
                    snd_emu10k1           161999  3 snd_emu10k1_synth
                    snd_ac97_codec        130553  1 snd_emu10k1
                    ac97_bus               12730  1 snd_ac97_codec
                    snd_pcm                98540  2 snd_emu10k1,snd_ac97_codec
                    snd_page_alloc         18572  2 snd_emu10k1,snd_pcm
                    snd_util_mem           14074  2 snd_emux_synth,snd_emu10k1
                    snd_hwdep              13782  2 snd_emux_synth,snd_emu10k1
                    snd_seq_midi           13370  0 
                    snd_rawmidi            30488  3 snd_seq_virmidi,snd_emu10k1,snd_seq_midi
                    snd_seq_midi_event     14899  2 snd_seq_virmidi,snd_seq_midi
                    i2c_dev                13399  0 
                    snd_seq                62088  5 snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_midi,snd_seq_midi_event
                    radeon                990187  3 
                    ttm                    77625  1 radeon
                    it87                   43611  0 
                    hwmon_vid              12779  1 it87
                    drm_kms_helper         42980  1 radeon
                    snd_timer              30240  3 snd_emu10k1,snd_pcm,snd_seq
                    snd_seq_device         14528  5 snd_emu10k1_synth,snd_emu10k1,snd_seq_midi,snd_rawmidi,snd_seq
                    drm                   232889  5 radeon,ttm,drm_kms_helper
                    i2c_algo_bit           13436  1 radeon
                    lm63                   14385  0 
                    gspca_zc3xx            52538  0 
                    gspca_main             33076  1 gspca_zc3xx
                    videodev               78123  1 gspca_main
                    ppdev                  17141  0 
                    emu10k1_gp             12606  0 
                    v4l2_compat_ioctl32    17259  1 videodev
                    i2c_viapro             13153  0 
                    snd                    68244  14 snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_ac97_codec,snd_pcm,snd_hwdep,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
                    parport_pc             37530  1 
                    gameport               20069  2 emu10k1_gp
                    shpchp                 37397  0 
                    psmouse                70098  0 
                    lp                     17868  0 
                    usb_storage            54050  0 
                    uas                    18136  0 
                    serio_raw              13294  0 
                    soundcore              12680  1 snd
                    parport                42788  3 ppdev,parport_pc,lp
                    usbhid                 48035  0 
                    hid                    91696  1 usbhid
                    r8169                  55123  0 
                    floppy                 70590  0 
                    sata_via               13968  5 
                    pata_via               13659  0
                    As you see i2c_core is missing.


                    Code:
                    $modprobe -v i2c_core
                    $
                    Code:
                    $ lsmod | egrep i2c*
                    i2c_dev                13399  0 
                    i2c_algo_bit           13436  1 radeon
                    i2c_viapro             13153  0
                    I tried to modprobe it but no avail. It does not give any errors.

                    Code:
                    $ dmesg | egrep lm63
                    $
                    Nothing on dmesg either.

                    Code:
                    $ pwd
                    /sys/class/hwmon/hwmon0/device
                    $ ls
                    alarms      in6_alarm                   pwm2_auto_point4_pwm
                    driver      in6_input                   pwm2_auto_point4_temp
                    fan1_alarm  in6_max                     pwm2_enable
                    fan1_div    in6_min                     pwm2_freq
                    fan1_input  in7_alarm                   pwm3
                    fan1_min    in7_input                   pwm3_auto_channels_temp
                    fan2_alarm  in7_max                     pwm3_auto_point1_pwm
                    fan2_div    in7_min                     pwm3_auto_point1_temp
                    fan2_input  in8_input                   pwm3_auto_point1_temp_hyst
                    fan2_min    in8_label                   pwm3_auto_point2_pwm
                    hwmon       modalias                    pwm3_auto_point2_temp
                    in0_alarm   name                        pwm3_auto_point3_pwm
                    in0_input   power                       pwm3_auto_point3_temp
                    in0_max     pwm1                        pwm3_auto_point4_pwm
                    in0_min     pwm1_auto_channels_temp     pwm3_auto_point4_temp
                    in1_alarm   pwm1_auto_point1_pwm        pwm3_enable
                    in1_input   pwm1_auto_point1_temp       pwm3_freq
                    in1_max     pwm1_auto_point1_temp_hyst  subsystem
                    in1_min     pwm1_auto_point2_pwm        temp1_alarm
                    in2_alarm   pwm1_auto_point2_temp       temp1_input
                    in2_input   pwm1_auto_point3_pwm        temp1_max
                    in2_max     pwm1_auto_point3_temp       temp1_min
                    in2_min     pwm1_auto_point4_pwm        temp1_type
                    in3_alarm   pwm1_auto_point4_temp       temp2_alarm
                    in3_input   pwm1_enable                 temp2_input
                    in3_max     pwm1_freq                   temp2_max
                    in3_min     pwm2                        temp2_min
                    in4_alarm   pwm2_auto_channels_temp     temp2_type
                    in4_input   pwm2_auto_point1_pwm        temp3_alarm
                    in4_max     pwm2_auto_point1_temp       temp3_input
                    in4_min     pwm2_auto_point1_temp_hyst  temp3_max
                    in5_alarm   pwm2_auto_point2_pwm        temp3_min
                    in5_input   pwm2_auto_point2_temp       temp3_type
                    in5_max     pwm2_auto_point3_pwm        uevent
                    in5_min     pwm2_auto_point3_temp
                    Nothing new was added.


                    Also, I'm running a drm-next Kernel from Ubuntu's Mainline Kernel PPA.
                    Code:
                    $ uname -a 
                    Linux desktop 2.6.38-996-generic #201102231200 SMP Wed Feb 23 12:04:03 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
                    Is there anything else that can be done?

                    Comment


                    • #30
                      Your best bet is to ask on one of the lm_sensors/hwmon mailing lists. I'm not sure why the module isn't loading.

                      Comment

                      Working...
                      X