Как в нех редакторе посмотреть индексацию прошивки
Перейти к содержимому

Как в нех редакторе посмотреть индексацию прошивки

  • автор:

Как в нех редакторе посмотреть индексацию прошивки

Вернёмся к нашему примеру и нашему первому блоку данных (первому в порядке следования внутри дампа, а не в плане фактической последовательности). Итак, этот блок имеет идентификатор «C0»; Сегмент памяти, выделенной для хранения блока, занимает 4000h (что есть 16384 в десятеричной системе счисления — т.е. 16384 байт, или 16кб); Адрес следующего блока — 0x340000 (или 0x80340000, так как применяется относительная адресация); Текущий блок имеет окончание по адресу 0x3FFC. К слову, любой блок данных Bosch MEDC17 оканчивается четырьмя байтами «EF BE AD DE». По крайней мере, проверив это на более чем 7000 прошивках для самых разных ЭБУ из семейства Bosch MEDC17, мы ни разу не встретили опровержения сего факта.

Переходим по адресу 0x3FFC и действительно видим там байты «EF BE AD DE», после которых по адресу 0x4000 начинается новый блок. Всё верно, ведь под рассмотренный блок выделено 16384 (4000h) байт памяти, с адреса 0x0 по 0x3FFF включительно.

Единственный вопрос может возникнуть в том, почему следующий блок начинается с адреса 0x4000, а не с 0x340000, как было указано в заголовке. Повторимся, блоки идут не последовательно в теле прошивки. Блок по адресу 0x4000 следующий лишь по расположению в дампе (но не обязательно следующий в плане внутренней логики прошивки). А блок по адресу 0x340000 действительно следующий (в логическом порядке) после блока, что начинался по адресу 0x0, расположение которого, в свою очередь, неизвестно (если рассматривать именно логический порядок), ведь этот блок просто находится в начале тела прошивки.

Обычно входной точкой является блок с идентификатором «10», начинающийся по адресу 0x18000 (возможно на каких-то ЭБУ Bosch MEDC17 бывает иначе, но мы не смогли найти такой пример). Если начать двигаться с этой входной точки, перепрыгивая с блока на блок, записывая границы блоков, вскоре все участки памяти будут подписаны, за исключением небольших участков между блоками, заполненных байтами 00 или FF (разные загрузчики имеют своё мнение на счёт того, чем заполнять пустые области).

В итоге получаем последовательность подобно этой:

1. Block #10: 0x18000-0x1FEFF
2. Block #20: 0x14000-0x17EFF
3. Block #90: 0x10000-0x13FFF
4. Block #30: 0x4000-0xFEFF
5. Block #40: 0x20000-0x1FFFFF
6. Block #C0: 0x0-0x3FFF
7. Block #60: 0x340000-0x3FFFFF
8. Block #80: 0x200000-0x33FEFF

Отлично. Осталось ответить буквально на пару вопросов, самый главный из которых — а что из этого калибровки? Какой из блоков содержит в себе область калибровок?

Проверив порядка 7000 прошивок (в автоматическом режиме, разумеется) для самых разных ЭБУ из семейства Bosch MEDC17, мы пришли к выводу, что калибровки встречаются только в блоках с идентификаторами «60», «70» и «80». Остальные блоки хранят в себе управляющую программу, бутлоадер, OTP-области и т.д.

Конкретно на прошивке 1037517572_7P0907311B_0005, которую мы брали в качестве примера, область калибровок находится по адресам 0x340000-0x3FFFFF (блок «60»)и 0x200000-0x33FEFF (блок «80»).

Таким образом, рассмотрев блочную структуру прошивок Bosch MEDC17, можно подытожить, что задача переноса калибровок на Bosch MEDC17 – это задача поиска и переноса блока с идентификатором «60» (иногда также «70» и «80»). Какая бы пара файлов вам не попалась, нужно просто найти этот блок данных в обоих файлах, прочитать из его заголовка информацию, выполнить перенос.
Даже если файл частично зашифрован или обнулен (главное, чтобы не в области калибровок), даже если файл имеет смещения, можно поиском найти блок, начинающийся байтами «60 00 00 00». Далее, по структуре данных определить, что это действительно заголовок блока и узнать его размер. И, предварительно проделав тоже самое во втором файле, выполнить перенос.

Тема: Использование ПЛК в серийных изделиях: прошивки и таргеты

drvlas вне форума

По умолчаниюИспользование ПЛК в серийных изделиях: прошивки и таргеты

Мне кажется, что обсуждаемые здесь ПЛК чаще всего используются в уникальных проектах. Конечно, каждый разработчик опирается на свои наработки, но проекты обычно не повторяются «один в один».

У меня же стоит задача использовать ПЛК в оборудовании, которое должно выпускаться некоторое время мелкими партиями или единичными образцами — но по одной и той же документации.

И здесь возникает ряд вопросов, которые мало волнуют разработчиков уникальных проектов.

Вот один из них: новые прошивки ПЛК и, соответственно, новые таргет-файлы для компиляции программ. Поправьте меня, если я неправ (хотелось бы!), но пока я понял так:

1. Появляется ПЛК с новой прошивкой, он корректно работает только при установке соответствующего (нового) таргет-файла, а смена таргет-файла ОДНОЗНАЧНО уничтожает конфигурацию ПЛК в проекте.

2. Никаких способов автоматического переноса конфигурации ПЛК из старого проекта (со старым таргет-файлом) в новый проект (с новым таргет-файлом) — попросту не существует.

Это так? Это означает, что через месяц я куплю новый ПЛК, в котором что-то улучшено и стоит новая прошивка, он начнет мне строить мелкие пакости из-за любви к новому таргет-файлу — и веники? Я беру работающий проект, ставлю новые таргет-файлы и начинаю рисовать конфигурацию ПЛК?

Пожалуйста, скажите мне, что я недочитал-недоучил-недопонял.

30.11.2011, 08:45 #2

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение
  • Домашняя страница
  • Просмотр статей

Николаев Андрей на форуме

Супер Модератор Регистрация 18.12.2006 Адрес Москва Сообщений 6,001

По умолчанию

1. Прошивка и Target — вещи взаимосвязанные. НО. Естественно мы думаем о пользователях, и стараемся без надобности версию Target не менять. Например уже 4 прошивки для ПЛК работают с одним и тем-же Target файлом версии 2.10 (target не менялся, по моему, уже около 1,5 лет). То есть выход новой прошивки — не всегда выход нового Target-файла. И никогда наоборот (сам по себе Target не появляется). Изменение Target файла вызывается только одним — увеличение функционала области памяти (так и появился подмодуль статистика), исправление распределения данных в нижеуказанной области.
2. Есть золотое правило: работает — не лезь. Так, я знаю несколько контор, которые сделали проект на версии 2.03. У них все отлично работает. Новые контроллеры они возвращают на версию 2.03 и удачно работают.
3. Автоматического переноса нет. Да и не правильно это, если Target сменился. Где-то одна буква или один адрес не совпадет (наложится при новом перераспределении области входов-выходов), и все. Мало того, что некоторые параметры просто перестали бы работать, так и найти причину ошибки при конфигурации в 100-150 переменных НЕРЕАЛЬНО.
4. Есть метод переноса, правда я его не приветствую, когда неким образом конфигурация экспортируется, а потом руками исправляется. Наши программисты где-то на форуме о нем рассказывали.
5. Ну и как Вы правильно заметили — для создания масштабируемых решений стоит немного больше сделать один раз в начале, и сложные\критичные узлы проделать самому, не полагаясь на PLC Configuration. Мало кто из производителей ПЛК с CoDeSys делает в конфигурации обмен по ModBus. В основном программно.

Последний раз редактировалось Николаев Андрей; 30.11.2011 в 08:47 .

30.11.2011, 10:16 #3

drvlas вне форума

Пользователь Регистрация 30.09.2010 Адрес Киев Сообщений 700

По умолчанию

Спасибо за обстоятельный ответ. Хотя и жаль, что я не знал всего этого год назад.
Что ж, будем жить с новыми для меня реалиями.
Позвольте несколько уточнений.

ЦитатаСообщение от Николаев Андрей Посмотреть сообщение

уже 4 прошивки для ПЛК работают с одним и тем-же Target файлом версии 2.10 (target не менялся, по моему, уже около 1,5 лет)

Как можно узнать этот самый номер таргета? Вот, у меня какие-то лежали, под них проект заточен. Теперь новый ПЛК ясно говорит, что ему нужОн такой-то таргет. А может быть, у меня такой таргет и стоит? Может проблемы в другом? А я начинаю скачивать с сайта новые таргеты, чешу репу, что слетела конфигурация ПЛК. Понимаете?

ЦитатаСообщение от Николаев Андрей Посмотреть сообщение

3. Автоматического переноса нет. Да и не правильно это, если Target сменился. Где-то одна буква или один адрес не совпадет (наложится при новом перераспределении области входов-выходов), и все. Мало того, что некоторые параметры просто перестали бы работать, так и найти причину ошибки при конфигурации в 100-150 переменных НЕРЕАЛЬНО.

Да что Вы такое говорите, уважаемый? Категорически не согласен в самом подходе. Ручками переписывать — вот это источник ошибок! А автоматическая процедура ДОЛЖНА БЫТЬ сделана так, чтобы все учесть. Это уж, извините, тем пацанам нужно руки мыть, что таргеты строчат.
Есть кусок проекта: Конфигуратор ПЛК называется Как он возникает? Я вписываю в определенные места (на экране редактора) буковки и сопровождаю это Энтером или сменой фокуса от мышки. И как-то это так укладывается в проекте, что потом компилятор распарсирует всю эту лабуду и получает исполняемый код. Вот этот момент, укладывание в проект — почему туда нельзя автоматически впихнуть подобный же кусок из другого проекта? Если при таком впихивании возникнет неоднозначность, связанная с изменением таргета — так создатели нового таргета и должны такой момент учесть! На худой конец, предупредить пользователя, что вот такой-то фрагмент не конвертирован автоматически.
Убей, не пойму, какие тут проблемы. Автоматически конвертируется ПАЛ в СЕКАМ, ДЖИПЕГ в ПЭЭНГЭ, Гугль уже голос переводит на ходу, трансверситы вообще такое меняют! . А вы свой продукт обновляете и не можете сделать нормальный сервис по апгрейду. Ребята, поделитесь своими проблемами! Мож, подскажем

ЦитатаСообщение от Николаев Андрей Посмотреть сообщение

4. Есть метод переноса, правда я его не приветствую, когда неким образом конфигурация экспортируется, а потом руками исправляется. Наши программисты где-то на форуме о нем рассказывали.

Любезный, ссылочку очень хотелось бы!

ЦитатаСообщение от Николаев Андрей Посмотреть сообщение

5. Ну и как Вы правильно заметили — для создания масштабируемых решений стоит немного больше сделать один раз в начале, и сложные\критичные узлы проделать самому, не полагаясь на PLC Configuration.

Дык. Предупреждать же надо. Одно дело, когда нешаблонно мыслящий Валенок с подковыкой чего-то буркнет, а другое — напишите четко, что для ответственных проектов, которые предполагается развивать, нужно самому строить обмен. Хотя, честно, хочется и возразить: лучше сделать апргейдопригодную модель. Вы же, как организация, развиваетесь. Эва, сколько там уже красивых модулей, возможностей и прочего появилось за последние год-два! Читаешь — душа радуется, что российский производитель такое вытворяет. Так не забывайте и про древние косяки. Пользователь не должен об эти косяки бить колени.

19.12.2011, 17:02 #4

Павел ГОН вне форума

Пользователь Регистрация 23.04.2007 Сообщений 62

По умолчанию

Согласен с уважаемым drvlas!! Люблю программировать на овновских ПЛК, но косяки с таржетами попили крови не мало. Особенно когда клиент попалил ПЛК с проектами 2008, а новый ПЛК залить его он сам не смог и высылал мне все это кино. Пришлось вспоминать через 3 года чего это я там писал, тогда 8-(

19.12.2011, 20:52 #5

ASo на форуме

Пользователь Регистрация 18.01.2009 Сообщений 5,271

По умолчанию

1. Повторяю в очередной раз вопрос (ибо не силен во внутренностях КДС) — а почему нельзя было нумеровать таргеты. Т.е. чтобы в конфигурации КДС было скажем ПЛКхх 1.0, 1.5, 2.0, .
2. Ну и про экспорт-импорт — регулярно развлекаюсь. Он для этого и придуман. Вырезать и собирать модули в текстовом редакторе. А по сути вопроса — Экспорт-Сброс-Импорт.

20.12.2011, 15:36 #6

drvlas вне форума

Пользователь Регистрация 30.09.2010 Адрес Киев Сообщений 700

По умолчанию

Развиваю вопрос применения ПЛК100 в серийных средствах измерительной техники.

Наш госстандарт требует аттестации способов защиты программного обеспечения, отвечающего за измерительную часть. При этом ссылаются на некий российский документ РД50, который устанавливает подобные же требования к защите ПО.
В устных пояснениях люди рассказывают, что, мол, у немцев есть какие-то специальные шлюзы, через которые только и можно залить прогу. И эти шлюзы можно физически закрыть и опломбировать. Да еще и заливку делают неким шифровальщиком (навешали, однако, ребята метрологам лапши на уши!).
КАРОЧИ, муть полнейшая, но что делать. Нужно убедить товарищей метрологов, что тетка на мельнице нашу программу вот так запросто не подправит.

Подскажите, плз, как это решается с ПЛК100? В первую очередь, конечно, жду ответа от представителей ф.ОВЕН, но буду благодарен за участие и коллег-внедренцев.

20.12.2011, 15:43 #7

swerder вне форума

Пользователь Регистрация 24.09.2010 Сообщений 475

По умолчанию

защита плк от перепрограммирования неавторизованным персоналом. использовать сейфовый шкафчик с проверкой отпечатков пальцев при полном отсутствии связи с внешним миром

ЦитатаСообщение от drvlas Посмотреть сообщение

Нужно убедить товарищей метрологов, что тетка на мельнице нашу программу вот так запросто не подправит.

Как в нех редакторе посмотреть индексацию прошивки

Здесь всё что поможет найти прошивки , прошить , заменять и редактировать биосы видеокарт на чипах Nvidia !

Инструкция по модификации BIOS 970/980 с отключением BOOST

Автор: freem-freem
Нам понадобится:
5.196 NVFLASH
Maxwell II BIOS Tweaker v 1.36
Обе программы в архиве
Сразу создаем на диске С папку nvflash и кладем все в распакованном виде туда
#77
Выключаем драйвер в менеджере устройств.
#77
Изначально делаем бекап стокового биоса
Запускаем командную строку от администратора, далее пишем
cd c:\nvflash
дабы проверить что карта нормально определилась пишем команду
nvflash —list
Нижеследующей командой создаем бэкап.
nvflash -b backupbios.rom
(где backupbios.rom название с которым создастся ваш стоковый биос, можно любое иное)
Теперь запускаем MaxwellBiosTweaker и проводим манипуляции с вашим стоковым биосом как ниже на примере.

Настройки биоса
1. Главный экран, тут по сути выставляем все что связано с алгоритмом работы кулера (видно что до 40град будет 900 оборотов и так далее, RPM02 это максимальные обороты, если у вас 2300, то не надо ставить с гигабайта 3500 ), частоту памяти, ядра, выключаем буст, а также выставляем температурный лимит.
#77
2. Вольтаж, тут важно, что в начале задаем строгий лимит в первых трех параметрах, далее идем в самый низ и выставляем такие же значения для CLK74-71 включительно, далее идем вверх до CLK 35 включительно и выставляем ползунком только верхнюю границу такой же как и в CLK74-71, на моем примере это 1225 mV, нижнюю границу оставляем в дефолте, все остальные параметры тут не трогаем.
#77 #77 #77
3. Лимиты мощности. Нас интересуют первые 6 групп (группой я называю 3 строчки в ряд).
#77 #77
4. Таблица буста, тут ползунком ставим интересующий нас уровень, в моем случае 1506,5.
#77
5. Состояния буста, трогаем только профили P00 и P02, выставляя ручками в графе максимум то значение, что мы ползунком выбрали в предыдущем пункте и то что на самой первой вкладке Common в поле TDP Base Clock.
#77
6. Здесь выставляем частоту памяти, такую же как на вкладке Common, в моем случае это 3900, аналогично с пунктом 5, интересует лишь профиль 00 и 02
#77

Теперь делаем Save BIOS As и сохраняем с каким-то кастомным названием, теперь все в том же окне командной строки набираем
nvflash -6 modifiedbios.rom
(где modifiedbios.rom кастомное название)
Система попросит подтвердить, нажимаем Y и еще пару раз спросит, в конце увидите succesfull.

Пример как разгонять карты 970/980/980ti по таблице буст частот

Информация от участника темы: Аффторитет
Приведу пример как разгонять карты 970/980/980ti по таблице буст частот. Не буду писать как бекапить/сохранять биос, как и
какие ставить поверлимиты — все это есть в шапке темы в инструкции по разгону. Образцом к материалу будет моя MSI GTX970
gamming 100ME. Поиграл я с разгоном в Afterburner-e и решил зашить разгон в биос. Задача разогнать карту бустом до 1506МГц
при напруге в 1.231в.
Начинаем.

Вкладка Power Table
Тут курите инструкцию из шапки, суть тажа.

Вкладка Voltage Table (очень важный момент, если вы меняете напругу)
Если гоните на стандартной напруге, вообще ничего не трогаем на этой вкладке
Если надо прибавить или убавить напруги, то меняем только 2-ую и 3-ью строку, остальные позиции не трогаем. Во второй и в

третьей строках в левый ползунок ставим желаемую напругу, правый ползунок второй строки делаем на шаг больше, чтобы при

мониторинге не показывало мол достигнут предел по напряжению. Для наглядности скрины, в левом оригинал, в правом изменения.
#77

Напругу изменили (ну а кто-то вовсе менять не будет), теперь сохраняем биос, прошиваем. Далее даем нагрузку на карту и

смотрим подается ли указанная напруга и до какой частоты бустит карта. И так, имею я напругу 1.231в и частоту 1304МГц. У вас

свои значения будут, запоминаем частоту и идем далее .

Вкладка Boost table
По частоте находим свою буст позицию. У меня 1304мгц, которой соответствует позиция №62. У вас может быть другая, будьте

внимательны. Внизу двигаем ползунок так, чтобы на вашу буст-позицию установилась желаемая частота. На сринах 1506мгц на

позицию №62.
#77
Запоминаем значение из поля ползунка Max table clock (выделено красным на скрине)

Вкладка Boost States
В Р00 и в Р02 вписываем в поля GPC-MAX значение Max Table Clock с предыдущей вкладки
#77

Вкладка Common и Clock States
Тут ничего не выдумываем, а только ставим частоту памяти как написано в инструкции из шапки и/или меняем температуры,

скорость кулера по своему усмотрению. TDP, 3D Boost Entry-ы оставляем как было.

Теперь приступаем к колхозу.
На вкладке Boost table мы указали для своей буст-позиции нужную частоту, но при этом твикер наизменял еще с 2 десятка

позиций. Какого черта он так наглеет я не знаю, по-этому будем возвращать оригинальный значения частот буст-позициям,

предшествующим нашей максимальной. В моем случае с позиции №35 по №61.
#77

Качаем нех-редактор HxD http://mh-nexus.de/en/hxd/ или иной какой-нибудь. Устанавливаем. Запускаем. Открываем в редакторе

оригинальный биос, в меню жмем search — find, в поле search for вбиваем 12 2a 03 00 02, в поле datatype выбираем hex-values и

жмем ОК
#77
Поиск нам находит буст-позицию под №05 (выделено синим цветом)
далее вправо и вниз будут идти буст-позиции блоками по пять шестнадцатеричных значений — 06, 07, 08 и тд аж до 78
#77
я выделил 5 из них салатовым цветом (все выделять лень). Первое число каждого блока говорит об его нумерации (выделено в

красными кругами). Что означают остальные 4 значения в каждом блоке нам неважно, да я и не знаю хаха (но догадки имеются

) Если эти нумерации перевести из 16ричной в 10ричную систему и затем вычесть 12, то получим нумерацию как в таблице

буст частот: 12 = 18 — 12 =06, 13 = 19 -12 = 07, 14 = 08, 15 = 09, 16 = 10 и тд.
Теперь мне надо добраться до позиции №35, с которой твикер начал свои жестокие изменения. Для этого надо к 35 уже

прибавить +12 и перевести результат в 16ричную систему — получаем 2F и находим этот блок (выделено синим). Ищу теперь

блок №61, его позиция в редакторе будет 61+12 = 49 в 16ричной системе исчисления (выделено розовым).
#77
Теперь выделяю все от блока 2F до блока 49 включительно и копирую, нажав ПКМ-copy.
#77
Теперь открываю модифицированный биос, точно так же нахожу блоки буст-позиций от №35 по 61, выделяю их и все что между

ними, вставляю заменой (ПКМ-paste write) порцию скопированных ранее оригинальных блоков буст-позиций. Далее сохраняю изменения.

Теперь отколхозенный биос открываю в твикере и смотрю что получилось (на скрине оригинал, мод и нех-мод)
#77

Теперь пересохраняем его в твикере, а то контрольная сумма (checksum) у нас не совпадает. Твикер выровняет ее за нас при

Далее прошиваемся и наслаждаемся кашерным разгоном через буст. Вот и всё

Пошаговое редактирование BIOS(в том числе с помощью НЕХ-редактора) и рассмотрение ключевых параметров

Информация от участника темы: olegdjus
Решил и я свою лепту внести в разгон Maxwell (750ti/950/960970/980/980ti/TitanX) с рассмотрением ключевые параметры. Так как я не сторонник отключения Boost — то будем с ним.
Но начнем с подготовки.
а) Шьем крайний стоковый BIOS для Вашей карты.
б) Качаем msi afterburner и gpu-z и устанавливаем их.
в) Тут три варианта.
1)Если не желаем поднять напряжение — пропускаем пункт в.
2) Если желаем поднять на шаг или два (на разных карта даже одного производителя шаг напруги может быть разный, так что всё индивидуально) — прибавляем в ab по 10мВ к напряжению (остальные вкладки не трогаем) и во вкладке датчиков gpu-z(Sensors) смотрим нагрузку под встроенным рендером(нажать вопрос в первой вкладке gpu-z рядом с Bus Interface и нажать
Start Render. Нас интересуют в датчиках показания GPU core clock и VDDC. Выбираем подходящий вариант и идем дальше.
3) Если желаем понизить напряжение — объясню во вкладке напряжений, чтобы не повторяться.
Далее скачиваем архив с программами для редактирования и прошивки BIOS.
Открываем с помощью MaxwellBiosTweaker свой BIOS и начинаем редактировать.

Начнем по вкладкам.
1) Вкладка Common
#77
TDP Base Entry/3D Base Entry/Boost Entry — эти параметры не трогаем, оставляем как есть.
TDP Base Clock/3D Base Clock/Boost Clock — значение базовых и бустовых частот. По факту, TDP Base Clock/3D Base Clock не зависят от asic карты и мы можем его выставить вручную, но брать стоит частоты из вкладки Boost table. На моем примере вы видите частоту с 34 ячейки таблицы.
А вот частота Boost Clock указывает нам минимальный буст для карты (1329Мгц — 59 ячейка таблицы), но фактический буст будет определяться asic карты (можно посмотреть его в gpu-z) — чем выше asic, тем выше базовая частота(на моей видеокарте с asic 73,5% буст из коробки до 1392.5Мгц — 64 позиция таблицы частот). С помощью изменения Boost Clock на значения из таблицы выше стоковых — мы переносим вашу частоту буста(изменение буста 1329 МГц(59 позиция таблицы) до 1354.5 МГц(61 позиция) приведет к изменению максимальной частоты буста(1392 МГц в моем случае(64 ячейка) до 1418 МГц(66 ячейка). Это позволит менять максимальную частоту буста без использования АБ. Это метод для ленивых Так же кнопочка Gpu Clock Offset +13MHz сделает то же самое, но еще и изменит TDP Base Clock/3D Base Clock(но их можно вернуть вручную на желаемые)
Temp Target/Max TEmp Target — по сути температурные лимиты, те же слайдеры есть в AB. Ставим значение 89/91 при условии, что видеокарта не греется 80+ градусов.
Fan Control — здесь тоже всё просто.
RPM1x/TMP1x/PER1x — это желаемые границы оборотов(шим)/температуры/процентов оборотов(напруга) для регулировки вентилей. Желательно проценты подгонять методом вычисления(2600/3200=81%, а не 70, как у меня, но у меня шим регулировка)
Итак, как это работает.
RPM13/TMP13/PER13 — максимальные значения оборотов, оставляем RPM13/PER13 без изменения, а TMP13 ставим в то значение, которое считаете нужным (у меня 3200 оборотов(макс) при 90 градусах)
RPM11/TMP11/PER11 — до этих значений вентили с нуля будут раскручиваться или же начальные значения. На скрине у меня до 35гр вентили крутятся с технически минимально возможного значения до 1000об, после 35 и до 70гр(TMP12) раскручиваются плавно до 2600(RPM12).
Чтобы остановить вентили RPM11/TMP11/PER11 записываем как 0/0/ХХ, где ХХ — температура, до которой вентили будут стоять.
Memory Clock — частота видеопамяти. Ставим стабильное по вашему мнению значение и отнимаем 100Мгц. Для большей стабильности.

2) Вкладка Voltage Table
#77
Здесь мы выставляем напряжение. Я привожу пример с максимальным напряжением 1281, для напряжения повыше надо редактировать clk6+ для корректной работы.
Меняем только первые три строчки. АКТУАЛЬНО ДЛЯ GM200:
Если ваш BIOS выглядит как на скриншоте:
#77
то необходимо открыть 2 и 3 строчки в таблице напряжений. Для этого открываем BIOS в КВТ и двигаем выделенные ползунки в произвольное положение:
#77
Получается примерно так:
#77
Теперь ваш BIOS выглядит так в МВТ:
#77
1 строка: максимально возможное напряжение (зависит от регулятора напряжения вашей ВК, может максимально стоять и 1281, и 1250, тут как повезет). Ставим 1281.3.
2 строка: это наше базовое напряжение для Boost Clock.
Если желаете на шаг снизить напряжение — меняем максимальное напряжение в этой строке на шаг вниз стрелками клавиатуры и шьем BIOS с этим напряжение и выполняем шаги с рендером в gpu-z. Полученное напряжение (это будет минус шаг от вашего стокового напряжения) пишем первым значением во вторую и третью строку.
Если не желаете на шаг снизить напряжение — ставите напряжение, найденное при помощи AB в минимум и плюс один шаг в максимум. При таком раскладе частоты сбрасываться под температурой НЕ БУДУТ.
Максимальное напряжение в этой строке ставим на шаг больше от минимального.
3 строка: Минимум как и во второй, максимум — как первая. Это как раз то напряжение, которое через АВ мы можем регулировать.

3) Вкладка Power Table
#77

Это лимиты мощности. Нас интересуют первые 6 групп(одна группа состоит из Min|Def|Max значений)
1 группа — это TDP карты. По сути, это то значение тепла, которое производитель гарантирует отвести с помощью СО, к лимиту мощности отношения не имеет. Ставим его таким же, как и значения 6 группы.
2 группа — пропускается, не трогаем руками
3 группа — мощность слота pci-e, ставим как на скриншоте.
#77
4 группа — мощность первого доппитания. Без энтузиазма ставим 75000 для 6пин и 150000 для 8 пин
5 группа — мощность второго доппитания. Без энтузиазма ставим 75000 для 6пин и 150000 для 8 пин
6 группа — лимит мощности. Вот что нас и интересует! Я ставил 280/300вт (75+75+150), если не хватает — в AB кручу ползунок. Эти же значения пишем в 1 группу(не обязательно).

4) Вкладка Boost Table
Вот и та самая таблица частот.
Стоковая:
#77
Правленая по инструкции «Пример как разгонять карты 970/980/980ti по таблице буст частот» с шапки, но с измененным алгоритмом, с другими частотами с 35 ячейки(чтоб большой разницы между частотами не было):
#77

Вариант с редактирование таблицы частот с помощью НЕХ-редактора:
Выставляем нужное нам напряжение буста во 2 и третьей строчке таким образом(моё напряжение для буста — 1.175в)
Во второй строчке к правому значению прибавляем один шаг, в третьей ставим максимальное значение, до которого через АВ можно будет поднять.
#77
Запоминаем, на какой ячейке расположена частота 3d base clock:
#77
На позицию буста(у меня при 1.174в это 59 ячейка) ставим частоту, которая при этом напряжении стабильна(я ставлю на 20-30 мгц ниже, остальное добавляю в АВ)
#77
Далее открываем биос в НЕХ редакторе и ищем ячейку буста:
к номеру ячейки прибавляем 12 (в моём случае 59+12=71) и переводим в hex (71d = 47h). Далее берем частоту на этой ячейке(1455.5 у меня), умножаем на 2(2911) и переводим так же в НЕХ(2911d = 0B5Fh). Ноль не теряем.
Далее ищем в НЕХ коде биоса следующую шестнадцетиричную последовательность:
47 5F 0B 00 01
#77
Где 47 — НЕХкод ячейки биоса, 5F 0B — удвоенная частота младшими разрядами вперед(0B_5F), 00 01 — код команд.
Влево(с 46 позиции) идут ячейки с 58 до 1 группами по 5. Берем значение частоты, которое у нас будет между базовой и частотой буста(я выбрал 1405), переводим в знакомый формат (1405 * 2 = 2810d= 0AFAh) и вставляем их с ячейки перед бустовой(58у меня) по ту, на которой стояла базовая частота + 1 (43+1=44) и меняем их на нужное нам значение (FA 0A)
После редактирования таблицы частот соотносим значения в таблице напряжений, сохраняем биос и прошиваем.
#77
#77
Можно писать любые частоты, выбирать любой шаг, но твикер может перечеркивать частоты, которые в него не забиты. Ничего страшного, это софтовая недоработка, КВТ так же показывает биос от максвелла.
#77
#77

5) Вкладка Boost States
Меняем лишь Max GPC в Р00 и Р02 на значение из 74 ячейки таблицы частот, остальное нас не касается.

6) Вкладка Clock States
Тут в DDR профиля P00 ставим частоту памяти из первой вкладки (а точнее — она сама тут изменится при изменении частоты там), а вот DDR в Р02 или оставляем как есть, или меняем на значение как в P00. Если оставим как есть — может в играх при записи видео(в том ж АБ например при аппаратке) скидывать частоту до этого значения.

Редактирование BIOS Kepler с помощью HEX-редактора

Добрый день!
Ранее я писал про то, как можно для Maxwell выставлять любые значения в таблице частот с помощью НЕХ-редактора. Данный метод так же применим и для Kepler.
Обозначу вкратце только поиск и изменение частоты.

1) Открываем BIOS с помощью KBT, заходим в Boost Table.
2) Смотрим на значение частоты в ячейке 01(или ячейки, которую желаем изменить)
#77
3) Преобразуем номер ячейки:
а) Для GTX 670/680/760/770 (GK104. Kepler 28nm) к значению ячейки(в моём случае 01) прибавляем 13 и полученное значение(14) переводим в НЕХ (14d=Eh)
б) Для GTX TITAN /GTX 780/GTX 780Ti/GTX TITAN BLACK (GK110. Kepler 28nm) прибавляем 14 и полученное значение переводим в НЕХ (для ячеек с 00 по 05 значения ячеек для GK104 и GK110 одинаковы)
4) Значение частоты ячейки умножаем на 2 (536.0*2=1072 и 549.0*2=1098) и переводим в НЕХ(1072d=430h и 1098d=44Ah).
5) Открываем BIOS с помощью HEX-редактора
6) Ищем с помощью поиска следующее значение в шестнадцетиричной форме — xx aa bb, где:
xx — полученный номер ячейки в HEX-коде
aa — младшие разряды частоты в HEX-коде
bb — старшие разряды частоты в HEX-коде
Пример с пояснением:
а) Для GTX 670/680/760/770 (GK104. Kepler 28nm)
xx — 0E
aa — 30
bb — 04

б) (для GTX TITAN /GTX 780/GTX 780Ti/GTX TITAN BLACK (GK110. Kepler 28nm))
xx — 0E
aa — 4A
bb — 04
#77
7) Меняем частоту на нужное нам значение знакомым образом(я изменю в обоих случаях на 500мгц):
а) умножаем частоту на 2(500*2=1000)
б) переводим в НЕХ (1000d=3E8h)
в) меняем значение частоты в НЕХ-редакторе на нужное нам(не забываем, что младшим разрядом вперед) и сохраняем BIOS.
#77
8) Открываем снова BIOS в KBT, видим такую картину:
#77
9) Жмем Save BIOS для пересохранения КС.
#77
Удачного разгона!

Программы для прошивки и редактирования BIOS

Редактирование биос Kepler (680\670GTX)
Качаем:
1. Kepler Bios Editor v1.1 (приведен на картинке там все понятно, редактируем сохраняем)
2. Nvflash 5.127 (версия поддерживает Kepler)

Как шить:
1. Делаем USB Flash c DOS туда кидаем BIOS и NVFlash
2. Шить C:\nvflash -4 -5 -6 *.rom (по готовности перезагружаем)
3. Если биос на видео залочен или от другогой модели то
С:\nvflash —protectoff (снимает лок с палаты)
http://forum.reborn.ru/showthread.php?t=856903
GTX660 по последним данным не поддерживается .У кого будут свежие данные — пишите в личку.

Загрузочная флешка (изготовление).

***************************
Прежде чем задать вопрос , заполните профиль !
Все вопросы — ответы на которые есть в FAQ,будут удаляться без предупреждения.Так-же пользуйтесь поиском в теме.
**************************

Последний раз редактировалось Olegdjus 23.06.2016 17:20, всего редактировалось 140 раз(а).
Добавление инструкций

BIOS — Вопросы по настройке, перепрошивке и восстановлению — 480 страница

Редактор
Репутация: 5270
Сообщений: 32767

torn44,
BIOS на UEFI сменить легко, прошив в Windows, после лёгкого редактирования в HEX-редакторе инсталятора биоса v.2.XX, про это. Готовый можете взять по ссылке отсюда.
А по восстановлению в CRM, если не идёт прошивка Q5Wx8107.fd(переименованного в BIOS.fd), попробуйте склеить K74E107A.ROM и Q5Wx8107.fd(из распакованного инсталятора 1.07), обозвать получившийся файл BIOS.fd и далее прошить в CRM.
Готовый файл биоса v.2.14 для прошивки в CRM можете взять здесь.
А здесь — даташит к ноутбуку, там можно глянуть в т.ч. как чипы биоса и EC обозначены на мат. плате.

Модель ноутбука: TongFang GK7NP5R: AMD Ryzen 4800H, GTX 1650 4Gb GDDR6, 32Gb DDR4-3200MHz, SSD NVME 2x1Tb; Creative SB G6, Magnat Interior Wireless, Win10 x64, etc.

19 ноября 2018 01:45
Посетитель
Репутация: 0
Сообщений: 11

reylby Склеить rom и fd самому вряд ли получится,попробую конечно,но что то независимо от того, что я кладу на флешку и V2.14 и BIOS.fd из 1.07 ноут не принимает ничего.В лучшем случае раза 4 на флешке лампочка моргнет и все,дальше процесс не идет,вентилятор шумит но к флешке обращения нет.

19 ноября 2018 02:32

Редактор
Репутация: 5270
Сообщений: 32767

Цитата: torn44
Склеить rom и fd самому вряд ли получится

И тот и тот обычные бинарные файлы, любой HEX-редактор это сделает, впрочем — вот готовая склейка.
Если не получится — останется только программатор.

Модель ноутбука: TongFang GK7NP5R: AMD Ryzen 4800H, GTX 1650 4Gb GDDR6, 32Gb DDR4-3200MHz, SSD NVME 2x1Tb; Creative SB G6, Magnat Interior Wireless, Win10 x64, etc.

Невский_23
20 ноября 2018 00:52
Посетитель
Репутация: 2
Сообщений: 35

reylby, я правильно понимаю, это кусок кода, которым подключается шина на которой следует искать видеоадаптер, и в каком режиме его запускать по умолчанию?

Device(PEGP) <
Name(_ADR,0x00010000)
Method(_PRT,0,NotSerialized&
#41; <
If(PICM /* \PICM */) <
Return&#
40;AR02 /* \_SB.AR02 */)
>
Return(PR02 /* \_SB.PR02 */)
>
Method(_STA,0,NotSerialized&
#41; <
If(PEGA /* \_SB.PCI0.PEGA */) <
Return&#
40;0x0F)
> Else <
Return&#
40;Zero)
>
>
Device(VGA) <
Name(_ADR,Zero&#
41;
OperationRegion(
VGA,PCI_Config,Zero,0x40)
Field(VGA,WordAc
c,NoLock,Preserve) <
PVID,16,

DVCM,2
>
Method(_STA,0,No
tSerialized) If(L
Equal(PEGA /* \_SB.PCI0.PEGA */,Zero)) &n
bsp;Store(«UMA Only : Return 0x01»,Debug)
&n
bsp;Return(One)

А ниже идёт блок по Nvidia с указанием вендора.

Method(_DOD,0,NotSerialized) <
If(L
Equal(PVID /* \_SB.PCI0.PEGP.VGA.PVID */,0x10DE)) <
&n
bsp;Store(«nVidia VGA _DOD»,Debug)
&n
bsp;If(GI17 /* \GI17 */) <
&n
bsp; Return(Package(0x02)

А далее по LCD панели.
Модель ноутбука: Acer eMachines E528
20 ноября 2018 20:07
Посетитель
Репутация: 0
Сообщений: 11

reylby Снова к вам,оживить ноут с флешки так и не вышло,чего только не пробовал,приобрел программатор (теперь я умею читать ,писать и стирать микросхему ROM) ) ,правда в моем случае это не помогло (задавал вопросы в теме программатора так же). Нашел за недорого рабочую материнскую плату,правда от HP.Плата рабочая.Платы отличаются только тем,что эта с завода UMA и у старой ревизия 1 а у «новой» ревизия 2, кроме того конечно что она от Packard bell VG50-CM.Возможно ли перепрограммировать ее в АСЕР.Или ну ее как говориться)

20 ноября 2018 22:50

Редактор
Репутация: 5270
Сообщений: 32767

torn44,
От Acer оно будет отличаться только иным расположением функциональных клавиш, тех, что в комбинации с Fn. Чтобы PB стал Acer нужно, по-моему, прошивать сам мультиконтроллер(ENE KB9012) дампом от рабочего V3-551. Раньше могло помочь это, но с новыми биосами оно не срабатывает.
Так что я бы оставил как есть), в смысле как будет))) Скачаете User Guide к Packard Bell EasyNote TV11CM, посмотрите комбинации клавиш и всё.

Невский_23,
Я так глубоко не копал, это из DSDT?

Модель ноутбука: TongFang GK7NP5R: AMD Ryzen 4800H, GTX 1650 4Gb GDDR6, 32Gb DDR4-3200MHz, SSD NVME 2x1Tb; Creative SB G6, Magnat Interior Wireless, Win10 x64, etc.

20 ноября 2018 23:34
Посетитель
Репутация: 2
Сообщений: 23

Приветствую товарищи! Столкнулся с незадачей вот.
Пользую ноутбук Acer v3-571G. Была произведена замена видеочипа с N14M-GL-B-A2 (710M) на N14P-GE-A2 (GT730M). Новый чип в системе определяется как GT640 и имеет идентификатор PCI\VEN_10DE&DEV_0FC0&SUBSYS_06911025&REV_A1, где по сути DEV id от GT640, а SUBSYS от 710M + в биосе напротив графы graphic card стоит
Требуется, собственно, насколько понимаю, залить прошивку videobios от GT730M, но не до конца понимаю как это правильно сделать, менял значения PCIR в HEX редакторе, но прошивка не встаёт, но нет уверенности что правильно значения меняю)))
Подскажите, пожалуйста, какие значения нужно менять в модулях биоса чтобы встала прошивка от другого (в восприятии ноутбука) девайса.
Ну и DEV id смущает несколько. он задается расположением страпов или прошивкой биоса?

Модель ноутбука: Acer v3-571g
Невский_23
20 ноября 2018 23:46
Посетитель
Репутация: 2
Сообщений: 35

Где то было в интернетах.
Нужно расколоть прошивку в редакторе и поменять модуль.
Но по ID он не определяется. Какой то другой идентификатор.

Тема была по RMS870. Изучить метод.
В противнм случае, изучать Хакинтошовцев и DSDT и ручками.
Сначала искать отличия, а потом править.

Цитата: SteveTT
PCI\VEN_10DE&DEV_0FC0&SUBSYS_06911025&REV_A1,
Можно попробовать в драйвере подставить нужное значение, воткнуть принудительно.
Модель ноутбука: Acer eMachines E528
21 ноября 2018 00:48

Редактор
Репутация: 5270
Сообщений: 32767

Цитата: SteveTT
Ну и DEV id смущает несколько. он задается расположением страпов или прошивкой биоса?

Страпов. Видеобиос GT730M в биосе есть.
Но Вам можно попробовать подправить inf-файл видеодрайвера перед установкой его, примерно так(изменить SUBSYS на свой у какой-то acerовской GT 640М), или принудительно указать в диспетчере устройств.

Модель ноутбука: TongFang GK7NP5R: AMD Ryzen 4800H, GTX 1650 4Gb GDDR6, 32Gb DDR4-3200MHz, SSD NVME 2x1Tb; Creative SB G6, Magnat Interior Wireless, Win10 x64, etc.

21 ноября 2018 07:29
Посетитель
Репутация: 2
Сообщений: 23

reylby,
Невский_23,
Измененный драйвер может починить эту проблему, даже учитывая отсутствие прошивки в биосе?
И ещё кстати ошибка 43 горит на видеоадаптере и пишет что устройство на использует ресурсов(но тут думаю все исходит из того что не использует потому что остановлена работа)

Модель ноутбука: Acer v3-571g
Невский_23
21 ноября 2018 10:29
Посетитель
Репутация: 2
Сообщений: 35

Как это «отсутствие прошивки в биосе»?

Сначала попробовать изменённый драйвер. А потом уже глубже. И внимательнее смотреть.

Модель ноутбука: Acer eMachines E528
21 ноября 2018 12:05
Посетитель
Репутация: 0
Сообщений: 1

Здравствуйте. Помогите пожалуйста восстановить bios на ноутбуке aspire 5750zg. Что для этого нужно? И как пользоваться программатором? Что для этого надо? И где это взять, купить

21 ноября 2018 12:37

Посетитель
Репутация: 514
Сообщений: 4374

Цитата: HGZ3P
И как пользоваться программатором? Что для этого надо? И где это взять, купить

———————————————————
ACER 5920G/T7700-2.4Ggz /4Gb/SSD256Gb/GF8600M GT512Mb/W10x64Pro
ACER 5920G/T8300-2.4Ggz /4Gb/SSD256Gb/GF8600M GS512Mb/W10x64Pro
ACER 5920G/T7500-2.2Ggz /4Gb/SSD256Gb/GF8600M GT512Mb/W10x64Pro

Модель ноутбука: ACER 5920G/T7700-2.4Ggz /4Gb/SSD256Gb/GF8600M GT512Mb/W10x64Pro
21 ноября 2018 18:04
Посетитель
Репутация: 2
Сообщений: 23

Таки изменил в драйвере идентификатор 730м на тот что у меня в диспетчере, дрова успешно встали, название изменилось на правильное, но по прежнему остановлена работа устройства с кодом 43 + в gpu-z в графе vga bios пусто; но мне всё же кажется что такого не должно быть, будь видеобиос установлен

Скриншоты: (не льются почему-то на форум, закинул на радикал)
https://a.radikal.ru/a24/1811/51/1ce10c9ad636.jpg
https://d.radikal.ru/d37/1811/83/c68759641674.jpg
https://d.radikal.ru/d27/1811/2e/7dc422b537cct.jpg

Товарищи, имеются мысли по этому поводу?
Модель ноутбука: Acer v3-571g
21 ноября 2018 20:56

Редактор
Репутация: 5270
Сообщений: 32767

HGZ3P,
Можно сначала попробовать прошить биос в Crisis Recovery Mode, сообщение, и пара ниже, в помощь.

SteveTT,
Как-то странно определяется видеокарта, 0FC0 — это десктопная GT 640, а не ноутбучная GT 640M(у неё 0FD2, у GT 730M — 0FE1)
Может действительно страпы подправить нужно, единственно, в схеме есть конфигурация только для GT 640M, так что придётся Вам спрашивать на профильных форумах: vlab.su, ascnb1.ru, авось помогут.

Модель ноутбука: TongFang GK7NP5R: AMD Ryzen 4800H, GTX 1650 4Gb GDDR6, 32Gb DDR4-3200MHz, SSD NVME 2x1Tb; Creative SB G6, Magnat Interior Wireless, Win10 x64, etc.

22 ноября 2018 15:58
Посетитель
Репутация: 2
Сообщений: 23
Цитата: reylby
Может действительно страпы подправить нужно

Окей, этим и займусь. Не подскажешь, страпы — это ведь резисторы? И где можно взять нужного номинала, ну точнее, как гуглить их чтобы купить?) А то как ни гуглил, не могу найти

UPD:
Приехали короче.
Взялся паять страпы, вздумал поставить так как на этой фотке (чип и плата те же, авось заработает)
http://www.rom.by/files/1212.jpg
Верхний стоял в среднем положении, отпаял значится его, взял пинцетом, переложил с платы на стол чтобы не потерять, посмотрел нужное расположение в схеме, беру снова пинцетом, подношу к плате, как вдруг. резистор изящно вылетает из пинцета в неизвестном мне направлении
Обыскал всё уже, нигде не видать
Решил собрать ноут и проверить живой ли. и здесь везение оказалось не на моей стороне, включаю, экран чёрный, первые секунды 3 кулер крутится, останавливается, HDD продолжает работать ещё секунд 5 и выключается, далее — тишина
Нормально ли что при отсутствии страпа ноут так себя ведёт?
Только что вспомнил весёлое обстоятельство — паял с установленной батарейкой биоса, это могло сломать все к чертям?

UPD2: отыскал резюк, впаял на исходное место, остались всё те же симптомы
Буду пробовать прошивать биос с CRM.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *