এই উত্তরটি সরাসরি মেশিন স্পেসিফিক রেজিস্টার (এমএসআর) অ্যাক্সেসের মাধ্যমে কিছু ইন্টেল প্রসেসরের জন্য ম্যানুয়ালি প্রসেসরের তাপমাত্রা নিরীক্ষণের প্রায় এক উপায়।
প্রথমে লক্ষ্য করার বিষয়টি হল, এই ক্ষেত্রে, এমএসআর থেকে যা পড়া হয় তা টিসিসি, সীমা তাপমাত্রার সাথে সম্পর্কিত, তাই প্রকৃত তাপমাত্রা নির্ধারণের জন্য একটি অতিরিক্ত গণনা করা প্রয়োজন।
পড়ুন Intel 64 এবং IA-32 আর্কিটেকচারের সফটওয়্যার উন্নয়নকারীর ম্যানুয়াল , বা এএমডির সমতুল্য আপনার ক্ষেত্রে।
আমার ক্ষেত্রে, আমি 0x1B1 তে এমএসআরের 22-16 বিটগুলি চাই, IA32_PACKAGE_THERM_STATUS aka আমার পুরানো আই 7-2600 কে এর টিসিসি 98 ডিগ্রি।
তাপমাত্রা (এবং সিপিইউ ফ্রিকোয়েন্সি) ম্যানুয়ালি নিরীক্ষণের জন্য এখানে একটি সহজ স্ক্রিপ্ট রয়েছে:
#! /bin/dash
#
# temp_mon3 Smythies 2016.10.05
# a simplified version of temp_mon2,
# for monitoring temp.
# Note: it is on purpose that -a is not used.
# Also CPU0 frequency (1 is good enough, when all
# are loaded).
#
# temp_mon2 Smythies 2016.09.29
# Monitor Package temperatures.
# Use clock modulation to control temps.
# i.e. simulate the second to last level
# of defense.
# Use simple primatives.
# run as sudo
# hardcoded for my tcc of 98 degrees.
#
echo ... begin package temperature monitoring ...
#
# In case I forgot (which I often do)
modprobe msr
#
# first let the drastic effect of the sudo command decay
# Done later in temp_mon3.
#
# some stuff
COMMAND="rdmsr --bitfield 22:16 -u 0x1B1"
COMMAND2="cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq"
#
# then get on with it
while [ 1 ];do
sleep 4
TEMP_RAW=$(eval $COMMAND)
CPU0_FREQ=$(eval $COMMAND2)
TEMP_ACT=$((98-TEMP_RAW))
echo "$TEMP_ACT $CPU0_FREQ"
done
এবং এখানে কিছু নমুনা আউটপুট দেওয়া হয়েছে, যেখানে আমি কিছুক্ষণ পরে কিছু সিপিইউ লোড যুক্ত করি (অস্থায়ীভাবে 31 থেকে 73 ডিগ্রি পর্যন্ত যায়):
$ sudo ./temp_mon3
[sudo] password for doug:
... begin package temperature monitoring ...
31 1605275
31 1605154
32 1605164
30 1605148
31 1605176
51 3511279
54 3511278
55 3511279
57 3511283
58 3511279
60 3511278
61 3511284
63 3511279
64 3511280
64 3511280
66 3511280
67 3511278
68 3511280
68 3511281
69 3511278
71 3511280
70 3511281
71 3511281
71 3511280
72 3511276
72 3511277
73 3511283
73 3511279
^C