আমি তৃতীয় পক্ষের সফ্টওয়্যার ছাড়াই তাপমাত্রাটি কীভাবে খুঁজে পাব?


12

আমি sensors-detectআমার সিস্টেমে চলেছি lm-sensorsকারণ আমি ইউটিউব ভিডিওগুলি দেখার সময় আমার সিস্টেমটি বন্ধ হয়ে যায় down

তাই আমি ভাবছি যে আমি কীভাবে তৃতীয় পক্ষের সফ্টওয়্যার ছাড়া ফ্যান এবং সিপিইউর তাপমাত্রাটি কীভাবে খুঁজে পাব lm-sensors? আমি কোথায় নিশ্চিত তা নিশ্চিত নই।

processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model       : 6
model name  : AMD Athlon(tm) II X2 240e Processor
power management: ts ttp tm stc 100mhzsteps hwpstate

, x86_64


আপনি উবুন্টুর কোন সংস্করণটি চালাচ্ছেন?
wjandrea

1
এটি আপনার প্রসেসরের উপর নির্ভর করে। অনেক সাম্প্রতিক ইন্টেল প্রসেসরের জন্য টার্বোস্ট্যাট প্রোগ্রামটি এমএসআরগুলি পড়বে (মেশিন স্পেসিফিক রেজিস্টার) এবং প্যাকেজ এবং মূল তাপমাত্রা প্রদর্শন করবে। আপনার প্রশ্নটি সম্পাদনা করুন এবং আপনার প্রসেসরটিকে একটি মডেল তৈরি করুন। যদি এটি আমার জানা থাকে তবে আমি ম্যানুয়ালি কীভাবে এটি করব তা দিয়ে উত্তর দেব।
ডগ স্মিথিজ

আমি যুক্ত হওয়া অতিরিক্ত র‌্যামের কি সমস্যা হবে .., র‌্যামটি প্রতি সেকেন্ডে 1333 মেগাট্রান্সফার্স এবং সিপিইউ সর্বোচ্চ মেগাহার্টজ:

11
তৃতীয় পক্ষ বলতে কী বোঝ? উবুন্টুর কতটুকু আপনি প্রথম পক্ষের সফ্টওয়্যার বলে মনে করেন?
muru

1
ব্যবহারকারী উবুন্টু ব্যবহারের জন্য বিতরণে বাধা দেওয়ার আগে কতটা দল ব্যবহার করে তা আমি ঠিক নিশ্চিত নই। আমি একটি সাধারণ দিক থেকে জানি যে উবুন্টু একটি লিনাক্স অপারেটিং সিস্টেম যা আমি প্রথম পক্ষ হিসাবে উল্লেখ করেছি, তার পরে আমার এবং তারপরে প্রশ্নটি হবে, প্রশ্নবিদ্ধ প্রোগ্রামটি তৃতীয় পক্ষকে ছেড়ে দেয়ালের পরিবর্তে প্রাচীরের party ষ্ঠ পক্ষের বৈকল্পিক বা উবুন্টু স্পনসর এবং বা স্বেচ্ছাসেবক প্রোগ্রামার সফ্টওয়্যার পরে, তাই আমি ঠিক জানি না।

উত্তর:


12

মনে হচ্ছে আপনি যা চান তা হ'ল /sys/class/hwmonএবং /sys/class/thermal

এই দুটিই আপনার পছন্দসই ডেটাতে সহজ শেল ভিত্তিক অ্যাক্সেস সরবরাহ করে (hwmon ডিরেক্টরিতে অন্যান্য সেন্সর প্রকারেরও অন্তর্ভুক্ত থাকবে)। আপনার সিস্টেমে প্রতিটি সেন্সর ইন্টারফেসের জন্য প্রত্যেকের একটি করে ডিরেক্টরি রয়েছে (যার মধ্যে একাধিক সেন্সর থাকতে পারে)।

আরও তিনটি বিষয় লক্ষণীয়:

  • আপনার যদি সত্যই খারাপ সিস্টেম না থাকে, sensorsসেকেন্ডে একবারেও কমান্ডটি চালনা করলে কোনও পার্সিয়েবল প্রভাব থাকতে হবে না। প্রকৃতপক্ষে, উপরে উল্লিখিত ডিরেক্টরিগুলিতে নিয়মিত ফাইলগুলি পড়ার ফলে আরও বেশি প্রভাব ফেলতে পারে।
  • গ্রাফগুলি এখানে আপনার বন্ধু। আমি নেটডাটা বা সংগ্রহিত চলার মতো কিছু পাওয়ার পরামর্শ দিচ্ছি যাতে আপনার দেখার জন্য রিয়েলটাইম (বা রিয়েলটাইমের কাছাকাছি) ডেটা থাকে।
  • আপনার ভোল্টেজগুলিও পরীক্ষা করুন। বিদ্যুৎ সরবরাহ থাকার কারণে যা আপনার সিস্টেমের পাওয়ার প্রয়োজনীয়তা পূরণ করতে পারে না তার কারণে আপনার বিবরণটি যা হতে পারে। সিস্টেমটি বেশি লোডের মধ্যে থাকা অবস্থায় ভোল্টেজগুলি উল্লেখযোগ্যভাবে হ্রাসের মাধ্যমে এটি নির্দেশিত হবে।

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, কারণ এটি জিজ্ঞাসিত প্রকৃত প্রশ্নের সাথে আলোচনা করে: "আমি কীভাবে তাপমাত্রা [...] ম্যানুয়ালি খুঁজে পেতে পারি [...]? আমি ঠিক জানি না যে সেগুলি কোথায় রয়েছে।" তারপরে কিছু /proc/cpuinfoএকটি এএমডি প্রসেসর দেখায়। নিশ্চিত না কেন ওপি কেন একটি ইন্টেল-নির্দিষ্ট উত্তর গ্রহণ করেছে যার জন্য অন্য একটি সরঞ্জাম ইনস্টল করা প্রয়োজন।
হারুন এফ

@ অ্যারোনএফ: আমি একমত নই আমি একটি ইন্টেল নির্দিষ্ট উত্তর লিখেছিলাম কারণ ওপি আমাকে জিজ্ঞাসা করেছিল। অন্য কোনও সরঞ্জাম ইনস্টল করার দরকার নেই? আমি প্যাকেজ তাপমাত্রা সরাসরি এমএসআর এর মাধ্যমে পড়ার কারণটি /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_inputহ'ল আমার বেশিরভাগ কাজ অত্যন্ত অলস সিস্টেমগুলির সাথে থাকে এবং পরবর্তী পদ্ধতিতে অনেক বেশি ওভারহেড থাকে, যার ফলে ধারাবাহিক 4 থেকে 5 ডিগ্রি উচ্চতর ফলাফল হয়। অবশ্যই, একটি ভারী ভারী সিস্টেমের জন্য কোনও পার্থক্য নেই।
ডগ স্মিথিজ

1
@ ডউগস্মিথিস আমি ভেবেছিলাম আপনার উত্তরটি খুব ভাল এবং সম্পূর্ণ ছিল, যার কারণেই আমি এর নীচে কোনও নেতিবাচক মন্তব্য রাখি না :-) আরডিএমএসআর প্রোগ্রামটি এমএসআর-সরঞ্জামগুলির একটি অংশ, যা আমার ইন্টেলে ডিফল্টরূপে ইনস্টল করা হয়নি which মেশিন (উবুন্টু চালাচ্ছে, তারা অন্যান্য ইন্টেল সনাক্ত করলে অন্য ডিফল্টগুলি ডিফল্টরূপে ইনস্টল করে?)
অ্যারন এফ

@ অ্যারোনএফ: আমি ভুলে গিয়েছিলাম যে এমএসআর-সরঞ্জামগুলি একটি অতিরিক্ত অতিরিক্ত প্যাকেজ। সুতরাং আমার পদ্ধতিরও প্রয়োজন এবং অতিরিক্ত সরঞ্জাম, যা ওপি চেয়েছিল তা নয়।
ডগ স্মিথিজ

2
হ্যালো @ ডগস্মিথিজ এবং অ্যারন এফ, আমি প্রাথমিকভাবে প্রাথমিক উত্তর হিসাবে ডগস্মিথিজকে বেছে নিয়েছিলাম কারণ তিনিই প্রথম সহায়তা প্রদান করেছিলেন এবং তাপমাত্রা ম্যানুয়ালি কীভাবে সন্ধান করতে হবে সেইসাথে ম্যানুয়াল সমাধানটি সহজেই ব্যবহার করার ক্ষেত্রে তার উত্তরটি খুব স্পষ্ট ছিল এমডিএমএসআর সমর্থন সহ প্রোগ্রাম, উভয় উত্তর খুব তথ্যবহুল ছিল এটি আসলে একটি কঠিন decesion, কিন্তু যেহেতু আপনি উভয়ই একমত যে এই উত্তর সবচেয়ে ভাল ছিল। আমি হারুনের প্রাথমিক উত্তরটি ফিরিয়ে দিয়েছি, আপনার সমর্থনের জন্য আপনাকে ধন্যবাদ। শুভ শিকার

9

এই উত্তরটি সরাসরি মেশিন স্পেসিফিক রেজিস্টার (এমএসআর) অ্যাক্সেসের মাধ্যমে কিছু ইন্টেল প্রসেসরের জন্য ম্যানুয়ালি প্রসেসরের তাপমাত্রা নিরীক্ষণের প্রায় এক উপায়।

প্রথমে লক্ষ্য করার বিষয়টি হল, এই ক্ষেত্রে, এমএসআর থেকে যা পড়া হয় তা টিসিসি, সীমা তাপমাত্রার সাথে সম্পর্কিত, তাই প্রকৃত তাপমাত্রা নির্ধারণের জন্য একটি অতিরিক্ত গণনা করা প্রয়োজন।

পড়ুন 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

আপনি কেন ব্যবহার করবেন eval?
wjandrea

@ ডগ: এমএসআর ব্যবহারের দুর্দান্ত উত্তর! তবে, সঠিক এমএসআর 0x19c রেজিস্টার না ? এবং তাপমাত্রাটি TEMP = TCC - [0x19c বিট 22:16]। তাই প্রথমে টিসিসি পড়া দরকার।
আবু_বুয়া

@ বাবু_বা: আমি জানি না যে 0x19c কাজ করে বা না, তবে আমি যা ব্যবহার করছি তা করে। এবং হ্যাঁ, আমি প্রসেসরের কাছ থেকে এটি পড়ার চেয়ে ভাল সমাধানের চেয়ে আমার প্রসেসরের জন্য টিসিসিকে হার্ডকোড করেছি।
ডগ স্মিটিজ

1
আপনি ইনস্টল করেছেন sudo apt install msr-tools?
abu_bua

1
এমএসআর-সরঞ্জামগুলি প্যাকেজ। এটি হবে man rdmsrএবং man wrmsrপ্যাকেজের মধ্যে স্বতন্ত্র কমান্ড দুটি।
ডগ স্মিথিজ

6

আমি জানি না তুমি আসলে কী চাও। Lm- সেন্সর প্রোগ্রাম (এবং সেইজন্য sensorsকমান্ড) libsensor লাইব্রেরি ব্যবহার করে ; যদি আপনি উবুন্টু 18.04 ব্যবহার এটা libsensors4 সংস্করণ 3.4.0-4। এটি একই লাইব্রেরি যা তাপমাত্রাটি sysডিরেক্টরিতে দেখা যায় হিসাবে পড়ে reads

এটি সংক্ষেপে বলতে গেলে সেন্সরগুলি একটি ভাল পছন্দ। ক্রমাগত ব্যবহার তাপমাত্রা দেখতে

watch -n 1 sensors

আপনি যদি কোনও প্রোগ্রাম লিখতে চান তবে আপনাকে লাইবসেন্সারগুলির সাথে একবার দেখতে হবে man libsensorsবা এর মধ্যে একবার দেখুন /usr/share/doc/। আপনাকে অন্তর্ভুক্ত করতে হবে #include <sensors/sensors.h>। এটি /etc/sensors3.conf এবং / অথবা /etc/sensors.confsensors.conf ফাইলগুলি ব্যবহার করবে । যদি ব্যবহার করা হয় তবে আরও (ব্যবহারকারীদের) কনফিগারেশনটি পাওয়া যাবে ।/etc/sensors.d/

আপনি যদি ভাবেন যে আপনি কিছু সেন্সর অনুপস্থিত রয়েছেন /sys/class/thermalবা লিঙ্কযুক্ত /sys/devices/virtual/thermalডিরেক্টরিটি একবার দেখুন।

সমস্ত তাপীয় অঞ্চলের তাপমাত্রা পেতে

$ cat /sys/devices/virtual/thermal/thermal_zone?/temp

77000
66000
67000

Temperature 77.০, ci 66.০,, 67,০। সেন্টিগ্রেডের উপরে তাপমাত্রা মিলিচেলসিয়াস (এমসি) এ পরিমাপ করা হয়।

অবিরাম ব্যবহার দেখতে

watch -n 1 cat /sys/devices/virtual/thermal/thermal_zone?/temp

এই ডিরেক্টরিতে আপনি আপনার কুলিং (ফ্যান) ডিভাইস এবং পিআইডি নিয়ন্ত্রকদের কীভাবে প্রোগ্রামিং করা হয় সে সম্পর্কেও তথ্য পেতে পারেন।

আমি এও বলতে চাই যে কিছু অতিরিক্ত ওষুধের সুরক্ষা খুব হার্ডওয়ার ভিত্তিক কোডড (এটি একটি ভাল ধারণা), যেখানে ডেটাটি আপনার বায়োজে রাখা হয়।


আমি জানি যে প্রোগ্রাম রয়েছে, তবে আমি ম্যানুয়ালিভাবে etemps সন্ধান করার জন্য একটি উপায় খুঁজছিলাম

1
ম্যানুয়ালি বলতে কী বোঝ? তাপমাত্রা মুদ্রণ করে এমন সমস্ত কিছু প্রোগ্রাম।
abu_bua

আমার কাছে থার্মাল_জোন নেই, আমার কাছে সমস্ত কুলিং_ডভাইস ০ এবং ২ রয়েছে তবে তারা কোনও ফাইল অস্থায়ীভাবে রাখবে না, কেবল কার_স্টেট ডিভাইস ম্যাক্স_স্টেট পাওয়ার সাবসিস্টেম টাইপ

কার এবং সর্বোচ্চ অবস্থা 0 এবং 10

আসলে কি thermal_zones? আমার 4-কোর ইন্টেল সিপিইউতে কেবল একটি একক মনে হচ্ছে thermal_zone( sensorsতবে, সমস্ত 4 মূল তাপমাত্রাকে সঠিকভাবে তালিকাবদ্ধ করে)।
Gwyneth Llewelyn

5

ডিফল্ট উবুন্টু সংগ্রহস্থলগুলি থেকে পেনসর ( পেন্সর ) ইনস্টল করুন এবং যখনই তাপমাত্রা কোনও ব্যবহারকারী নির্ধারিত সর্বাধিকের উপরে চলে যায় তখন পেন্সরকে স্বয়ংক্রিয়ভাবে একটি সতর্কতা শব্দ বাজানোর জন্য কনফিগার করুন। এর উদ্দেশ্য হ'ল আপনার সিস্টেমে অতিরিক্ত অ্যাপ্লিকেশন ওভারহেড যোগ না করে আপনার সিস্টেমটি বন্ধ হওয়ার আগে আপনাকে একটি সতর্কতা শব্দ শুনতে দেওয়া ।

পেন্সর ডেস্কটপে নিজেকে ঘড়ির পাশে ডেস্কটপের উপরের ডানদিকে কোণায় নোটিফিকেশন অঞ্চলে একটি সামান্য থার্মোমিটার আইকন হিসাবে প্রদর্শিত হয়। হার্ডওয়্যার তাপমাত্রা প্রদর্শনের জন্য আপনি যে কোনও সময় থার্মোমিটার আইকনটিতে ডান ক্লিক করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.