Господа гуры и пропихнутые пользователи, :confused:
подскажите пожалуста, какую команду надо дать, чтобы
снять показания с датчика температуры в процессоре?
Спасибо.
Printable View
Господа гуры и пропихнутые пользователи, :confused:
подскажите пожалуста, какую команду надо дать, чтобы
снять показания с датчика температуры в процессоре?
Спасибо.
А с чего вы взяли, что этот датчик стоит в CPU? :rolleyes: Он вообще-то находится в радиоблоке ... :D
И предназначен для защиты от перегрева и ограничения выходной мощности трансмиттера ... :cool:
Можно прикрутить что-нибудь отсюда: http://wl500g.info/showthread.php?18...temp-amp-owfs)
В первой ревизии платы роутера он также использовался для управления скоростью кулера ... :)
Эм, это нужно считать на калькуляторе ... :DQuote:
http://limages.vr-zone.net/body/13760/tuning.jpg.jpeg
Пользователи могут установить уровень мощности каждого из 2.4/5 GHz передатчиков в отдельности.
Скорость вращения вентилятора может регулироваться вручную, чтобы снизить нагрев чипсетов.
График показывает температуру маршрутизатора и порог, при котором должен быть включен вентилятор.
http://kerneldox.net/d7/dfb/wlc__phy__n_8c-source.htmlCode:s16 wlc_ phy _ tempsense _nphy(struct brcms_phy *pi)
write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
if (NREV_GE(pi->pubpi.phy_rev, 7))
write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
else
write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
radio_temp[0] = (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21070 if (pi->sh->chip == BCM5357_CHIP_ID) {
21071 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21072 + 88 * (auxADC_Vl) - 27111 +
21073 128) / 256;
21074 } else if (pi->sh->chip == BCM43236_CHIP_ID) {
21075 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21076 + 91 * (auxADC_Vl) - 27243 +
21077 128) / 256;
21078 } else {
21079 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21080 + 82 * (auxADC_Vl) - 28861 +
21081 128) / 256;
21082 }
21083
21084 offset = (s16) pi-> phy _ tempsense _offset;
Понятно. Спасибо за информацию.
Значит просто командой в Tools-System не обойтись
чтобы хотя бы увидеть трансмиттера температуру?
Радиатор такой горячий, что еле-еле терпишь, причём по всей поверхности.
Т.е. если датчик в находится в радиоблоке то хоть ориентировчно, но температуру всей конструкции он же покажет?
P.S. Хоть многие и советуют не заморачиваться перегревом, типа проблем из-за этого пока не возникало.
Но такой горячий девайс я встречаю впервые! Заменил термопрокладки на термопасту, а крышку пока вообще ставить не стал (раутер в подвале).
Припозднился с ответом, но может быть кому-нибудь мой совет облегчит процесс открывания раутера.
Открывать свой RT-N66U я приноровился одной зубочисткой (деревянны зубочистки промышленного производства толщиной со спичку, но очень
прочные заострённые с двух сторон). Отклеив предварительно резиновые ножи, иголкой аккуратно отклеив и сохранив Warranty Seal, открутив
четыре шурупа из-под ножек, собственно приступаем к открытию раутера.
Для этого я просовываю зубочистку под крышку миллиметров на 10 спереди немного справа или слева от середины и далее под углом веду её к середине.
Ближе к середина зубочистка натыкается на защёлку и из-за того что ведём её под углом она её отжимает внутрь. Очень просто!
Отвёртками и прчиими металическими предметами пользоваться не стал, рискуя деформировать корпус или крышку ...
Посмотрите, что есть в nvram: :rolleyes:
Code:# nvram show|grep temp sort
pci/1/1/tempoffset=0
pci/2/1/tempoffset=0
pci/1/1/temps_period=5
pci/2/1/temps_period=5
pci/1/1/tempthresh=120
pci/2/1/tempthresh=120
pci/1/1/temps_hysteresis=5
pci/2/1/temps_hysteresis=5
pci/1/1/phycal_tempdelta=0
pci/2/1/phycal_tempdelta=0
pci/1/1/parefldovoltage=35
pci/2/1/parefldovoltage=60
Действительно есть такие строки в NVRAM...
но как они могут помочь "увидеть" температуру?
А пока вот что я сделал в плане "моддинга".
Крышка прилегает к корпусу плотно и фиксируется защёлками.
Взяв другие четыре шурупа подлиннее на 10 миллиметров чем оригинальные и четыре втулки длинной тоже 10 миллиметров,
тупо "приподнял" крышку соответсвенно на 10 миллиметров над корпусом.
Теперь по контуру образовалась если так можно выразиться щель шириной 10 миллиметров
через которую можно видеть радиатор и частично содержимое раутера.
Так как в моём случае раутер расположен вертикально, то поток воздуха свободно циркулирует между крышкой и радиатором
тем самым облегчая, как мне кажется тепловой режим конструкции.
Варьируя высотой втулок можно изменить расстояние между корпусом и крышкой.
В моём случае отыскались втулки нужного диаметра с высотой 10 мм, что меня и удовлетворило.
На мой взгляд это даже не испортило внешний вид, тем более что светодиоды святятся напротив положенного им места...
P.S. Если судить по заметно повышенной температуре воздуха выходящего через щель/трубу :) вверху
и ощутимую потягу в щель/поддувало :D внизу (раутер закреплён вертикально),
четыре втулки и четыре шурупа "со стороны", оправдали возложенные на них надежды.
Ранее уже писал, что термопрокладки заменил на термопасту.
На этом пожалуй остановлюсь и дальнейшее усовершенствование системы охлаждения проводить не буду.
Ну разве что начнутся глюки из-за перегрева. Тьфу-тьфу.
Вот, к примеру так, кстати, у меня где-то 56-57.
Ну и копание в исходниках данной страницы, вебсервера, и скопиленных командах в роутере, привели к следующему :
данные о температуре можно снять командами :
Для приведения их к виду на графике, надо результат обработать по формуле :Code:wl -i eth1 phy_tempsense
wl -i eth2 phy_tempsense
x*0.5+20
Что в моем варианте дает -
до обработки:
послеCode:71
74
Что совпадает с графиком.Code:55.5
57
Однако изучение phy_tempsense.c, который ранее отвечал за регулировку скорости вращения вентилятора, говорит о том, что скорее всего оеальные значения - необработанные, ибо для управления вентилятором используют граничные значения следующие :
Code:#define TEMP_MAX 94.000
#define TEMP_3 88.000
#define TEMP_2 82.000
#define TEMP_1 76.000
#define TEMP_MIN 70.000
BINGO !
Спасибо ца ценный комментарий. с вашей подсказкой теперь реально можно мониторить температуру.
Не знаю точно где, и насколько цифровые данные соответствуют реальной температуре.
НО В ЛЮБОМ СЛУЧАЕ понижение или повышение температуры, уж точно !
P.S. То что результат полученный с помощью сомманд
wl -i eth1 phy_tempsenseпрямо порпорционален температуре раутера это точно.
wl -i eth2 phy_tempsense
Пробовал охлаждать и нагревать раутер с помощью фена для волос и наблюдал прямую зависимость
(в моём случае результат после выполнения комманд 53/55 (посде пересчёта по данной вами формуле соответсвенно 46.5/47.5
но субъективно радиатор сильно грячее...).
Думаю если довести до сведения Toastman'а и Shibby ваш пост, уже в следующей их прошивке, появится график температуры.
Ещё раз спасибо.
P.S. PetrV, прошу прощения, но решил процетировать ваше сообщение на форумах. где появляются они оба...
Естесственно с указанием первоисточника и исключительно ради общего дела.
http://www.linksysinfo.org/index.php...-3#post-182523 :rolleyes:
Quote:
Ну и копание в исходниках данной страницы, вебсервера, и скопиленных командах в роутере, привели к следующему :
данные о температуре можно снять командами :
Для приведения их к виду на графике, надо результат обработать по формуле :Code:wl -i eth1 phy_tempsense
wl -i eth2 phy_tempsense
x*0.5+20
https://github.com/shantanugoel/asus...63cd5c5d93c05d ;)Code:polyRx = E('polyRx');
polyCoreTmp_2 = E('polyCoreTmp_2');
polyCoreTmp_5 = E('polyCoreTmp_5');
top.coreTmp_2[top.coreTmp_2.length] = top.curr_coreTmp_2;
top.coreTmp_5[top.coreTmp_5.length] = top.curr_coreTmp_5;
rxData[rxData.length] = top.curr_rxData*5+40;
drawData(polyCoreTmp_2, top.coreTmp_2, 0, "#FF9000");
drawData(polyCoreTmp_5, top.coreTmp_5, 0, "#33CCFF");
drawData(polyRx, rxData, 0, "#33CCFF");
http://www.linksysinfo.org/index.php...r.36959/page-4 :cool:Quote:
Думаю если довести до сведения Toastman'а и Shibby ваш пост, уже в следующей их прошивке, появится график температуры.
Ещё раз спасибо.
P.S. PetrV, прошу прощения, но решил процетировать ваше сообщение на форумах. где появляются они оба...
Естесственно с указанием первоисточника и исключительно ради общего дела.
Всё так. :-)
P.S. Интересно, что команада wl -i eth1 phy_tempsense с успехом проходит и на других раутерах...
На SmallNetBuilder'е говорили о температуре радиатора в 54-55°C. Ваши ощущения (более нескольких секунд палец на радиаторе удержать невозможно) также свидетельствуют о температуре в районе 50-55°C. У меня термодатчик упирался похоже в слот для MicroSD, и если его температура в районе 40°C, то радиатор градусов на 10-15 горячее, т.е. опять получаем температуру в диапазоне 50-55°C. Учитывая, что это только температура радиатора, а температура процессора и коммутутора выше еще градусов на 5-10, а то и больше (не забываем, что между радиатором и корпусами ИМС две термопрокладки, или, в Вашем случае, одна термопрокладка и слой термопасты, ну и, конечно еще и экран) мне лично стало совсем тоскливо :( Почему асусовцы решили не ставить вентилятор - непонятно, эксплуатировать же ASUS RT-N66U без активного охлаждения мне лично - религия не позволяет :( В домашних условиях сделать компактную и эффективную систему охлвждения у меня лично возможности нет, а вариант makaka86 мне не подходит - у меня раутер стоит на видно месте. В общем, пришлось решить проблему с охлаждением радикально - путем продажи раутера :cool:Quote:
Originally Posted by CanAri
P.S. Кстати, владельцы Netgear WNDR4500 (на том же чипсете) отмечают его не очень высокий нагрев (прямо противоположно утверждению theMIROn'а :confused:). В чем собака порылась? Неужели Broadcomm поставляет Netgear'у какие-то "более другие" чипы, чем ASUStek'у? :rolleyes:
Есть такое дело. Когда прочёл, то сразу обратил внимание на разницу в напряжении питания раутеров. 12 и 19.
Но решив, что всё равно, где-то внутри стоят стабилизаторы и понижают температуру до необходимой
мысль попробовать снизить напряжение питания и посмотреть что будет
покинула меня так и не реализовавшись...
И с чего вы взяли что температура чипов сильно выше радиатора? Здесь вам тепловой поток не под 100 ватт как в компьютере, где да, без термопасты не выжить... Основное термосопротивление в роутере - радиатор-воздух.
Смотрим температура трансмитеров в моем случае 53,5 и 59,5, температура радиатора в самой горячей точке 55, так что намазывание термопастой абсолютно бесполезно, тепловой поток хиленький, ему и термопрокладок хватает.
На хоботе никаких сведений о температуре Нетгира кроме фразы - корпус теплый но не горячий, так Асус тоже, теплый, снаружи)) (Кстати там же уже собираются продавать Нетгир и покупать Линксис, вишь вай-фай у нетгира не тот )))
Прекрасное решение по охлаждению предложили на нашем форуме - http://wl500g.info/showthread.php?30...088#post250088 ни внешний вид не портится, ни гарантия не теряется ))
rxData[rxData.length] = top.curr_rxData*5+40; - это скорость вращения вентилятора (которую мерлин убрал из отрисовки), а температура идет вроде бы без неизменная, но в результате, похоже работает так :
Показания температуры вычитываются скриптом ajax_coretmp.asp
Т.е. высчитывается среднее значение с обоих интерфейсов (2,4 и 5).Code:fanctrl_info = <% get_fanctrl_info(); %>;
curr_rxData = fanctrl_info[3];
curr_coreTmp_2 = fanctrl_info[1];
curr_coreTmp_5 = fanctrl_info[2];
curr_coreTmp_2 = (parseInt(curr_coreTmp_2)+parseInt(curr_coreTmp_5))*0.5;
"Подкачка" данных происходит в Advanced_PerformanceTuning_Content.asp, а точнее в двух функциях
1. Апдейт данных через вышеприведенный скрипт
2. Обновление глобальной переменной curr_coreTmp_2Code:function update_coretmp(e){
$j.ajax({
url: '/ajax_coretmp.asp',
dataType: 'script',
error: function(xhr){
update_coretmp();
},
success: function(response){
updateNum(curr_coreTmp_2, curr_coreTmp_5);
setTimeout("update_coretmp();", 5000);
}
});
}
по правилуCode:function updateNum(_coreTmp_2, _coreTmp_5){
curr_coreTmp_2 = convertTemp(_coreTmp_2, _coreTmp_5, 0);
if(document.form.fanctrl_fullspeed_temp_unit.value == 1){
$("coreTemp_2").innerHTML = Math.round(_coreTmp_2*9/5+32) + " °F";
$("coreTemp_5").innerHTML = Math.round(_coreTmp_5*9/5+32) + " °F";
}
else{
$("coreTemp_2").innerHTML = _coreTmp_2 + " °C";
$("coreTemp_5").innerHTML = _coreTmp_5 + " °C";
}
}
,Code:function convertTemp(__coreTmp_2, __coreTmp_5, _method){
if(_method == 0)
return parseInt(__coreTmp_2)*0.5+20;
else
return (parseInt(__coreTmp_2)-20)*2;
}
т.к. _method == 0, то всегда применяется формула = х*0,5+20.
далее отрисовывается в, каждый раз добавляя в конец массива текущее значение curr_coreTmp_2
Таким образом получаем, что на графике нам рисуют усредненное значение температуры с обоих интерфейсов, сконвертированное по формуле , т.е. фактически будет :Code:function gen_svg(){
polyRx = E('polyRx');
polyCoreTmp_2 = E('polyCoreTmp_2');
polyCoreTmp_5 = E('polyCoreTmp_5');
top.coreTmp_2[top.coreTmp_2.length] = top.curr_coreTmp_2;
top.coreTmp_5[top.coreTmp_5.length] = top.curr_coreTmp_5;
rxData[rxData.length] = top.curr_rxData*5+40;
updateSVG();
}
function updateSVG(){
drawData(polyCoreTmp_2, top.coreTmp_2, 0, "#FF9000");
//drawData(polyCoreTmp_5, top.coreTmp_5, 0, "#33CCFF");
drawData(polyRx, rxData, 0, "#33CCFF");
setTimeout('gen_svg();', 5000);
}
Т= ((Т2,4 + Т5) / 2 ) /2 + 20.
Учитывая что данная страничка была в новой ревизии отключена от отображения, и вероятность наличия в ней (на всей цепочке) ошибок не нулевая, и учитывая, что :
1. изначально планировалось рисовать графики температуры по обоим интерфейсам (и в сишной функции, и в скрипте апдейта, и в основном скрипте и в свг присутствуют переменные для обоих интерфейсов раздельно).
2. Далее решили оставить один график (закомментировали в свг).
3. Потом (или сразу) решили усреднить - (в аджаксе, и в основном, т.к. функция convertTemp(__coreTmp_2, __coreTmp_5, _method) все еще принимает оба значения ).
То можно сделать вывод (ИМО), сейчас график рисуется левый, т.к. наложились несогласованные изменения по усреднению в разных скриптах. А правильные значения - выдаваемые через wl phy_tempsense, которые постобработкой приведены непонятно к чему ....
Только не температуру, а напряжение :p А так - да, понизить напряжения питания чипов без хирургического вмешательства не удастся - на фотографиях видна россыпь FR9888Quote:
Originally Posted by ArCan
http://fs01.bokee.net/userfilespace/...jl18742517.jpg
Кстати, почему Вы не установите на свой раутер по примеру makaka86 вентилятор? У Вас же все хозяйство расположено в подвале, так что ни внешний вид, ни шумность Вам абсолютно не важны...
Мужская интуиция :D А так - Вам никто не мешает провести замеры самостоятельно. У меня лично при последнем upgrade после замены на южном мосту термопрокладки на термопасту температура радиатора подросла градусов на 5.Quote:
Originally Posted by TReX
При включении раутера его корпус (и, соответственно, радиатор под ним) быстрее прогревается с той стороны, где стоит CPU и switch. Также на примере своего Asus RT-N16 Вы легко можете убедиться, что процессор и коммутатор - самые горячие элементы в раутере. Так что, если температура радиомодуля в Вашем Asus RT-N66U - 60°C, то CPU - явно горячее еще на несколько градусов. Или Вы просто пытаетесь успокоить себя? :confused:Quote:
Originally Posted by TReX
Данное решение неэстетичное и неэффективное.Quote:
Originally Posted by TReX
P.S. Сильно уповать на то, что Asus'овские инженеры провели весь цикл стресс-тестирований, поэтому все будет нормально - особо не стоит. Не так же давно была история с отпаиванием процессоров от плат GeForce 8800GTX. Да и в Dell XPS отвал видопроцессоров носил массовый характер. В случае Asus RT-N66U до распайки дойти не должно - в тех же WL-500 применялся довольно тугоплавкий бессвинцовый припой. Пара электролитов, установленная в RT-N66U - Lelon RXW - LowESR, 105°C. Но вот ABS, из которого изготовлен корпус RT-N66U, имеет диапазон рабочих температур до 80°C, так что не исключена вероятность что при перегреве корпус раутера - деформируется.
Ну мы не будем уповать на инженеров Асус и мужскую интуицию, а воспользуемся законом Ома. Напряжение на выходе БП 19 Вольт, ток потребления 0,4А (замерянно при включенных двух радиоблоках) поскольку все потребленное электричество будет переведено в тепло, мы имеем мощность 7,6 ватта которую необходимо рассеять, извините, как то почти на порядок ниже приведенных вами для примера процессоров (~65ватт), самая паршивая noname китайская термопрокладка имеет http://homeservis-pc.ru/cotalog.php?id2=1878 теплопроводность 0,8 (столько же сколько и термопаста КТП). Если КТП может снять с процессора 1,84 кв.см в 8 раз больше тепла, то почему термопрокладки той же эффективности но значительно большей площади по вашему не справятся с 7,6 ватта, или опять мужская интуиция?
Так что единственный реальный способ снижения температуры, увеличить поток воздуха проходящий мимо радиатора, мазать пасту бесполезно...