Conky Intel i7 и AMD

В общем вот что было, в свой Dell precision m4600 заказал из Китая карту AMD FierPro m5100, а приехало нечто под названием AMD Venus XT [Radeon HD 8870M / R9 M270X/M370X] при этом, ни в одном мануале из существующих, о поддержке данного зверя даже не упоминается, даже на форумах энтузиастов итд. В общем магическим способом штука завелась и внезапно работает с драйвером xf86-video-amdgpu, после пары выкрутасов конечно, однако, встройка на процессоре Intel Core i7-2820QM выключилась вообще (я вычитал в спецификациях, что в данных лаптопах так происходит если от красных карту воткнуть, и это нормально) но вот незадача, коньки перестали показывать температуру проца, t° процессора: ${hwmon 2 temp 1}°C как я понимаю данный датчик то же обрубило ну и как вывести температуру видюхи я то же без понятия в коньках, приложение xsensors все показывает верно, а вот с коньками ересь вылазит, может подсказать кто как температуру проца и гпу вывести? уже все перепробовал что попадалось. acpi естественно выводит 25 градусов.
$ sensor | grep
$ cat /sys/class/thermal/thermal_zone*/temp
...
Ошибки в тексте-неповторимый стиль автора©
undemeon
температуру проца
если cpu Intel, то можно считать напрямую из регистра msr ... как то уже описывал
Ошибки не исчезают с опытом - они просто умнеют
Вот мой конфиг с амд видюхой
conky.config = {
	alignment = 'top_left',
	background = true,
	border_width = 1,
	cpu_avg_samples = 2,
	default_color = 'white',
	default_outline_color = 'white',
	default_shade_color = 'white',
	draw_borders = false,
	draw_graph_borders = true,
	draw_outline = false,
	draw_shades = false,
	use_xft = true,
	font = 'DejaVu Sans:size=8',
	override_utf8_locale = true,
	gap_x = 1800,
	gap_y = 5,
	minimum_width = 5,
	minimum_height = 5,
	net_avg_samples = 2,
	no_buffers = true,
	out_to_console = false,
	out_to_stderr = false,
	extra_newline = false,
	stippled_borders = 0,
	update_interval = 1.0,
	uppercase = false,
	use_spacer = 'none',
	show_graph_scale = false,
	show_graph_range = false,
	own_window = true,
	own_window_class = 'Conky',
	own_window_type = 'normal',
	own_window_hints ='undecorated,below,sticky,skip_taskbar,skip_pager',
	own_window_transparent = true,
	own_window_argb_value = 0,
	own_window_argb_visual = true,

	};
	conky.text = [[

	# Используемые цвета
# Жёлтый  #ffff00
# Оранжевый  #d76e00
# Зелёный  #00E600
# Синий  #0000ff
# Голубой  #0ABFFF
# Фиолетовый  #ce3fd9

	# Процессор
${color #ce3fd9}AMD Ryzen™5 2600 $alignr${color #ff0000}${hwmon temp 1}°C
${color #ffff00}${cpu cpu1}%  ${goto 30}${color #d76e00}${cpubar cpu1 7}
${color #ffff00}${cpu cpu2}%  ${goto 30}${color #d76e00}${cpubar cpu2 7}

${color #ffff00}${cpu cpu3}%  ${goto 30}${color #d76e00}${cpubar cpu3 7}
${color #ffff00}${cpu cpu4}%  ${goto 30}${color #d76e00}${cpubar cpu4 7}

${color #ffff00}${cpu cpu5}%  ${goto 30}${color #d76e00}${cpubar cpu5 7}
${color #ffff00}${cpu cpu6}%  ${goto 30}${color #d76e00}${cpubar cpu6 7}

${color #ffff00}${cpu cpu7}%  ${goto 30}${color #d76e00}${cpubar cpu7 7}
${color #ffff00}${cpu cpu8}%  ${goto 30}${color #d76e00}${cpubar cpu8 7}

${color #ffff00}${cpu cpu9}%  ${goto 30}${color #d76e00}${cpubar cpu9 7}
${color #ffff00}${cpu cpu10}%  ${goto 30}${color #d76e00}${cpubar cpu10 7}

${color #ffff00}${cpu cpu11}%  ${goto 30}${color #d76e00}${cpubar cpu11 7}
${color #ffff00}${cpu cpu12}%  ${goto 30}${color #d76e00}${cpubar cpu12 7}
${color #0000ff}${hr 1}

#ОПЕРАТИВНАЯ ПАМЯТЬ
${color #0000ff}${hr 1}
${color #ce3fd9}AMD Radeon R7 Performance
${color #0ABFFF}$mem${alignr}$memmax
${color #00E600}${memperc}%  ${goto 30}${membar 7}
${color #0000ff}${hr 1}

#ИНТЕРНЕТ
${color #0000ff}${hr 1}
${color #ce3fd9}Realtek Gigabit LAN
${color #ffcc00}${upspeed enp8s0}${goto 80}${color #333333} up ${alignr}${color #00E600}${totalup enp8s0}
${color #ffcc00}${downspeed enp8s0}${goto 75}${color #333333} down ${alignr}${color #00E600}${totaldown enp8s0}
${color #0000ff}${hr 1}

#ДИСКИ
${color #0000ff}${hr 1}
${color #ce3fd9}Диск:$alignr${color #ff0000}${execi 30 hddtemp /dev/sda | awk '{print $4}'}
${color #FFA300}/ $alignr${fs_used /} / ${fs_size /}
${color #0ABFFF}${fs_bar 7 /}
${color #FFA300}/home $alignr${fs_used /home} / ${fs_size /home}
${color #0ABFFF}${fs_bar 7 /home}
${color #0000ff}${hr 1}

#ВИДЕОКАРТА AMD
${color #0000ff}${hr 1}
${color #ce3fd9}AMD RX 570 $alignr${color #ff0000}${execi 1 sensors amdgpu-pci-0900 | grep 'edge' | cut -c 16-22}

${color #0ABFFF}Нагрузка:${color #ffff00}${execi 1 "radeontop -b 09 -d- -l1 | grep -o "gpu [0-9]\{1,3\}" | cut -c 5-7 }%
${color #00E600}${execigraph 1 "radeontop -b 09 -d- -l1 | grep -o "gpu [0-9]\{1,3\}" | cut -c 5-7"  20,180 fc8c3b c6396b -t}
${color #0ABFFF}Видеопамять:${color #ffff00}${execi 1 "radeontop -b 09 -d- -l1 | grep -o "vram [0-9]\{1,3\}" | cut -c 5-7 }%
${color #00E600}${execigraph 1 "radeontop -b 09 -d- -l1 | grep -o "vram [0-9]\{1,3\}" | cut -c 5-7"  20,180 fc8c3b c6396b -t}

${color #ffff00}GPU Spd: $alignr${color #0ABFFF}${execi 1 "radeontop -b 09 -d- -l1 | grep -o "sclk ............." | cut -c 12-16 }ГГц
${color #ffff00}VRAM Spd: $alignr${color #0ABFFF}${execi 1 "radeontop -b 09 -d- -l1 | grep -o "mclk .............." | cut -c 13-17 }ГГц
${color #ffff00}Вентилятор: $alignr${color #00E600}${execi 1 sensors amdgpu-pci-0900 | grep 'fan1' | cut -c 14-21}

${color #ffff00}Потребление: $alignr${color #ce3fd9}${execi 1 sensors amdgpu-pci-0900 | grep "power1" | cut -b 14-19} Вт
$alignr${color #ce3fd9}${execi 1 sensors amdgpu-pci-0900 | grep "power1" | cut -b 31-35} Вт
${color #0000ff}${hr 1}

]]
А тут подробней https://archlinux.org.ru/forum/post/236555/
AMD Ryzen™5 2600, AMD RX570, AMD Radeon R7Perfomance
после установки radeontop все температуры вообще уходят за 70 градусов по показаниям, короче бред выводить везде начинает
t° процессора: ${hwmon 1 temp 1}°C
t° видео карты: $alignr${color #55ffff}${execi 1 sensors amdgpu-pci-0100 | grep 'edge' | cut -c 16-22}
это показывает одно и то же но с температурами железок то же не совпадает, по крайней мере по xsensors и mangohud, которые кстати после установки radeontop то же свихнулись, и начали что то адекватное показывать после удаления оной, в общем я в замешательстве.
,
$ sensors
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan:    0 RPM
Video Fan:        0 RPM
CPU:            +58.0 C
Ambient:        +46.0 C
SODIMM:         +44.0 C
SODIMM:         +45.0 C
SODIMM:         +42.0 C
GPU:                N/A

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +25.0 C  (crit = +107.0 C)

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +61.0 C  (high = +86.0 C, crit = +100.0 C)
Core 0:        +56.0 C  (high = +86.0 C, crit = +100.0 C)
Core 1:        +60.0 C  (high = +86.0 C, crit = +100.0 C)
Core 2:        +61.0 C  (high = +86.0 C, crit = +100.0 C)
Core 3:        +60.0 C  (high = +86.0 C, crit = +100.0 C)

BAT0-acpi-0
Adapter: ACPI interface
in0:          12.20 V
curr1:       1000.00 uA

amdgpu-pci-0100
Adapter: PCI adapter
edge:         +60.0 C  (crit = +120.0 C, hyst = +90.0 C)
undemeon, просьба, если будет свободное время, сними показания температуры cpu из регистров … никогда с intel i7 дела не имел, просто интересно, подходит ли эта метода и в данном случае или там устроено по-другому (другие регистры)
- установить пакет msr-tools (объем маленький)
- загрузить модуль msr --- sudo modprobe msr
- считать значение Tj max (максимальное значение)--- sudo rdmsr 0x1A2 -f 23:16
- считать значение Digital Readout (мгновенное значение) --- sudo rdmsr 0x19C -f 22:16
- считать значение Pkg Digital Readout (усредненное значение) --- sudo rdmsr 0x1B1 -f 22:16
Ошибки не исчезают с опытом - они просто умнеют
undemeon
но с температурами железок то же не совпадает
может обновить датчики нада #sensors-detect
AMD Ryzen™5 2600, AMD RX570, AMD Radeon R7Perfomance
vasek

sudo rdmsr 0x1A2 -f 23:16
64
sudo rdmsr 0x19C -f 22:16
39
sudo rdmsr 0x1B1 -f 22:16
30
MamkinHaker
Первым делом обновил, дело в том что тут не стандартная ситуация, даже биос карточку отображает как неизвестную, и не определяет корректно , некоторые утилиты показывают правильно, а некоторые ересь показывают, вот и спросил как через коньки вывести, все таки данное железо до меня еще никто не скрещивал, а если и скрещивал, то не задокументировал :) Да и много ли вообще лаптопов с дискретной амд? Вот и чешу репу, не понимая толком за что хвататься.
undemeon, спасибо за представленную информацию. Опишу более подробно обработку полученной информации
undemeon
sudo rdmsr 0x1A2 -f 23:16
64
sudo rdmsr 0x19C -f 22:16
39
sudo rdmsr 0x1B1 -f 22:16
30
Приведем сначала полученные значения к нормальному виду
1. Значения регистров приведены в 16-ричной системе, а значит переведем в 10-ую систему, например, используя команду echo $((0xN))
echo $((0x64)) = 100
echo $((0x39)) = 57
echo $((0x30)) = 48
Основная цифра это Tj max, ее значение постоянно и должно совпадать со значением, указанным в спецификации для данного cpu. В твоем случае Tj max = 100 град.С и для Intel i7, насколько помню, согласно спецификации Tj max = 100, так что это большой плюс к тому, что все нормально.
2. Фактические значения температуры cpu определяются как разница между значением Tj max и значением, считанным из регистра
- мгновенная температура Тмгн = 100 - 57 = 43 град. С
- усредненная температура Тср = 100 - 48 = 52 град. С
На отличие не обращай внимание - во первых, в расчетах всех прог используется мгновенная температура НЕ УВЕРЕН ..., а во 2-ых неизвестно что у тебя там было запущено и какая разница во времени между этими считанными значениями. Для проверки лучше делать в спокойной ситуации, когда ничего особо не запущено.
В качестве примера привожу мой вывод значений температуры, выводимой системой и температуры, высчитанной из регистров, каждые 2 секунды
(1-ое значение (sys) - система, 2-ое значение (reg_m) - мгновенное значение, 3-е значение (reg_S) - усредненное значение)
~/TTT/TEST/bash/cpu_t.sh
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 51 ... reg_m - 49 ... reg_s - 47
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 53 ... reg_m - 47 ... reg_s - 49
sys - 52 ... reg_m - 48 ... reg_s - 47
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 52 ... reg_m - 47 ... reg_s - 47
sys - 53 ... reg_m - 47 ... reg_s - 48
На всякий случай привожу и содержание скрипта … для использования в нем нужно изменить для своего случая значение Tmax=85 (у меня Tj max = 85 град С) ну и можно закомментироать строки, относящиеся к температуре, выводимой системой или вместо этого прописать свой вывод)
#!/bin/bash
#
Tmax=85
while true ; do
Tsys=$(awk '{ print $1/1000 }' /sys/class/thermal/thermal_zone6/temp)
Treg_m16=$(sudo rdmsr 0x19C -f 22:16)
Treg_m10=$(echo $((0x$Treg_m16)))
Treg_s16=$(sudo rdmsr 0x19C -f 22:16)
Treg_s10=$(echo $((0x$Treg_s16)))
let Treg_m=$Tmax-$Treg_m10
let Treg_s=$Tmax-$Treg_s10
echo "sys - $Tsys ... reg_m - $Treg_m ... reg_s - $Treg_s"
sleep 2
done
#
exit 0
В принципе способ расчета температуры, используя регистры, самый точный. Все проги/утилиты по идее делают тоже самое, но, имхо, не возможно в одной проге учесть все нюансы разных cpu, всеравно есть какие то различия … а потому и возникают недоверия к показаниям этих прог.

PS - Ну и можно запомнить разницу показаний температуры выводимой системой и непосредственно считанной из регистров ... и учитывать эту разницу. А если напрямую использовать чтение из регистров, то чтобы не вводить пароль для использования rdmsr, удобнее внести изменения в файл sudoers.

EDIT 1 - в части утилит для вывода температуры - они постепенно меняются/обновляются и показываемые ими значения температуры тоже меняются, хотя сам cpu не меняются (думаю и термодиоды тоже особо не стареют), это я к тому, что в данном топике разница между температурами системной и фактической (из регистров) составляет около 5 град, а вот почти 2 года назад эта разница в спокойном режиме составляла около 1-2 градусов см. топик
Там разница иногда доходит и до 5 град, но это была запущена утилита stress (нагружал процессор) и это только говорит о том, что утилита вывода температуры показывает завышено в процессе быстрой нагрузки, но вот в покое, там разница была около 1 град.

EDIT 2 - посмотрел спецификацию на Intel® Core™ i7-2820QM и да, действительно Tjunction = 100 C ... так что все верно ... что смутило. так это рекомендуемая цена - $570.00 что то уж очень много
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.