Ремонт: Ноутбуков, Компьютеров
https://vlab.su/

DNS P170EM (6-71-P15E0_D06) Работа без видеокарты AMD 7970M
https://vlab.su/viewtopic.php?f=252&t=95183
Страница 1 из 1

asdpfz [ 08 окт 2019, 23:23 ]
Заголовок сообщения:  DNS P170EM (6-71-P15E0_D06) Работа без видеокарты AMD 7970M

Здравствуйте. Может быть кому-нибудь пригодится. На днях решил ДЛЯ СЕБЯ проблему нормальной работы ноутбука DNS P170EM без видеокарты AMD 7970M
(номер шасси: 6-71-P15E0_D06) путём эмуляции её ответа о своей температуре по шине I2C (сигналы SMD_VGA_THERM и SMC_VGA_THERM) микроконтроллером Arduino Pro Mini. Необходимо использовать версию Arduino Pro Mini с кварцем на 8 MHz и питанием 3,3 вольта (хотя у меня и 16 MHz от 3,3 вольт нормально работает). Задействован аппаратный TWI Atmega328P (или Atmega168P). Видеокарту обязательно извлекаем.
Подключение: вывод A4 (SDA) Arduino Pro Mini подключаем к SMD_VGA_THERM (сопротивление R665); вывод A5 (SCL) Arduino Pro Mini подключаем к SMC_VGA_THERM (сопротивление R666). Землю и 3,3 вольта для питания Arduino находим неподалёку на плате ноутбука. В Arduino Pro Mini с помощью Arduino IDE заливаем программку:

//----------------------
// Это начало программы
//----------------------
#include <Wire.h>

void setup()
{
//Определение функции передачи данных от ведомого ведущему
Wire.onRequest(requestEvent);

//Настраиваем как ведомое устройство с адресом, например, 4Dh.
//По этому адресу отвечала моя видеокарта.
//Адрес может быть в диапазоне от 01h до 7Fh,
//поскольку далее контроль адреса будет отключен.
Wire.begin(0x4D);

//TWI Регистр маски адреса (отключаем контроль и реагируем на все адреса).
//Но если вы точно знаете адрес своей видеокарты и уверены, что в дальнейшем
//он не изменится (об этом ниже), маску адреса можете не устанавливать.
TWAMR=0xFF;
}

void loop()
{
delay(100);
}

//Функция передачи данных ведущему
void requestEvent()
{
//Передаём температуру видеокарты
Wire.write(0x20);
}
//----------------------
// Это конец программы
//----------------------

PS. Пока возился, оборвал оба сопротивления (R665 и R666). Поэтому повесил внешние на 2,2 кОм на плате Arduino.
Долго не тестировал. Неделю ноутбук отработал без проблем. Если будете повторять и что-то у себя сломаете - извините, но я не виноват.

PPS. Немного подробнее. Ноутбук был у дочери и она жаловалась на периодические его отключения. Что предшествовало каждому случаю отключения (пищал он или нет, мигали ли индикаторы) - я не знаю. Грешил на перегрев чипсета. Ноутбук был разобран и забыт на несколько лет. Недавно решил его реанимировать. После установки Windows 7, получил по видеокарте код 43. Так как графика мне не нужна, вытащил дискретную карту. В результате началось мигание трёх светодиодов, писк и отключение. Проверил шевеление на I2C шине контроля температуры видеокарты с ней и без неё. Далее то, что происходило конкретно у меня.

С видеокартой:
1. Ведущий (чипсет) передаёт адрес (4Dh) ведомого (видеокарта) и признак W (записи).
2. Ведомый подтверждает своё присутствие на шине.
3. Получив подтверждение адреса, ведущий передаёт ведомому байт 01h.
4. Получив подтверждение приёма данных, ведущий передаёт адрес (4Dh) ведомого и признак R (чтения).
5. Ведомый подтверждает своё присутствие на шине и передаёт ведущему байт данных.

Такой обмен по шине повторялся через секунд пять или десять. Период я не измерял. Байт данных, я так полагаю, представляет собой значение температуры видеокарты. В моём случае, при отключении/включении охлаждения, он изменялся от 25h до 30h (при 30h я включал охлаждение). В десятичном виде это будет от 37 до 48 (видимо, градусов цельсия).

Без видеокарты:
Ведущий передаёт адрес (4Dh) ведомого и признак W (записи). Не получив подтверждения, безуспешно повторяет это ещё два раза. Затем ждёт несколько секунд (пять или десять) и снова повторяет. Естественно, начинается писк и мигание тремя светодиодами. С SSD Windows 7 успевала загрузиться до рабочего стола и затем, повысив обороты вентилятора охлаждения процессора, ноутбук выключался.

В дальнейшем ноутбук стал отключаться уже и с установленной видеокартой. Оказалось, что ведущий, вместо адреса 4Dh, стал пытаться опрашивать ведомого по адресу 4Fh. Видеокарта отвечать по этому адресу отказывалась. Почему это произошло и как с этим бороться - я не знаю. Считаю это ошибкой BIOS. Допускаю что и раньше, в процессе работы мог изменяться адрес и из-за этого происходило выключение ноутбука.

jocker [ 09 окт 2019, 07:50 ]
Заголовок сообщения:  Re: DNS P170EM (6-71-P15E0_D06) Работа без видеокарты AMD 7970M

молодца :-:ok:-:
но это ж морока та еще.
вот если б кто ец прошивку подправил.... :ps_ih:

Danila. [ 09 окт 2019, 10:51 ]
Заголовок сообщения:  Re: DNS P170EM (6-71-P15E0_D06) Работа без видеокарты AMD 7970M

asdpfz писал(а):
В дальнейшем ноутбук стал отключаться уже и с установленной видеокартой. Оказалось, что ведущий, вместо адреса 4Dh, стал пытаться опрашивать ведомого по адресу 4Fh.

Так что по итогу то ?

Sin! [ 25 ноя 2022, 20:34 ]
Заголовок сообщения:  Re: DNS P170EM (6-71-P15E0_D06) Работа без видеокарты AMD 7970M

jocker писал(а):
вот если б кто ец прошивку подправил....

Что ж, похоже, Ваше желание исполнилось - спустя 10 лет после появления подобных ноутов на рынке, ага :) . Долгое время мне было интересно узнать, как победить эти выкрутасы Clevo'вских материнок, отказывающихся нормально работать без наличия дискретной графики (ну или хотя бы контроллера температуры). И вот наконец сошлись воедино наличие удобной платы, желания и времени. Энное количество потраченного времени плюс немного магии - и, похоже, нащупать способ вырубить к чертям эту защиту у меня вышло. Эксперименты ставил на базе Clevo P150EM (плата та же самая, что и в P170EM, отличия в распаянной на плате мелочевке), за основу был взят биос от Еврокома. После прошивки ноут стал прекрасно работать на одной лишь встройке без каких-либо попыток вырубаться.
Между тем, стоит заметить, что особо биос не тестился, что-то может сломаться или перестать работать. Например, могут быть проблемы с регулировкой оборотов кулера GPU. Если дискретка в ноуте не установлена - и фиг бы с ним (то, чего физически в ноуте нет, от перегрева сгореть не должно :) ), но если есть - я бы не рискнул использовать такой биос на постоянку, мало ли.
Если вдруг у кого-то завалялся подобный аппарат и есть время и желание поэкспериментировать - попробуйте прошиться биосом из аттача и отпишите о результатах, нормально ли будет всё работать.
И да... я посмотрел прошивки нескольких аппаратов той эпохи, код ЕС во многом схож. Вероятно, подобным образом можно модифицировать и их прошивки. Если у кого-то есть прекрасно включающийся грузящийся аппарат, жалующийся своим писком на тяжелую жизнь отсутствие GPU, и есть желание попробовать его оживить программным путём - пишите, возможно, он сгодится на роль подопытного кролика.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/