Показать сообщение отдельно
Старый 12.05.2009, 23:29   #404
melin
Опытный
 
Аватар для melin
 
Авто: Peugeot 4007
Сообщений: 99
По умолчанию Re: Перепрошивка штатной MMCS

Цитата:
Сообщение от holod Посмотреть сообщение
Комплексы лечатся у психоаналитиков, а на форум выкладывается информация или ничего не выкладывается.
Ну ну.. Вы сами этого хотели

Всё, что здесь изложено - мои наблюдения, которые легко могут не соответствовать истине. Если будете предпринимать какие-либо действия, помните, что делаете это на свой страх и риск. Я не несу никакой ответственности за возможную потерю данных и нарушение работоспособности устройства. Помните также, что модифицируя файлы, вы, возможно, нарушаете лицензионные соглашения, которые вами могли быть явно или неявно приняты в момент приобретения автомобиля.

Архитектура.
Есть небольшой загрузчик. Живёт в ROM или flash. Первым получает управление при включении электричества. Он точно знает версию, например, NR261EM. Может, она прям в нём и записана. Не обновляется в процессе апгрейда (отсутствует в loading.kwi). Получив управление, показывает лого - первое, что мы видим на экране после включения и передаёт управление операционной системе (видимо, nk.exe). Если операционная система отсутствует, ищет loading.kwi в соответствующем разделе на HDD и передаёт управление тамошнему загрузчику - nk.exe из первого раздела файла loading.kwi (предварительно загрузив его в RAM). Если HDD отсутствует или повреждён, пробует найти loading.kwi на CD с теми же последствиями.
Есть некоторая область памати (FLASH или NVRAM), в которой хранятся оперативные параметры. Типа километраж, выбранный язык, настройки датчиков направления, подстройки для GPS... Но не настройки радио, которое (видимо) есть отдельный девайс со своими мозгами. Не утрачивается при отключении аккумулятора. Обнуляется с помощью команды "Memory Initialization" из сервисного меню.
Операционная система живёт в RAM. Содержит системные файлы, прикладные программы и часть графики. В частности, вся графика для навигации живёт там. Видимо, чтоб быстрее работало. Операционная система утрачивается, если на некоторое время снять клемму.
Вся остальная графика (включая анимированное лого при загрузке), экранные формы для всех меню и графика к меню живёт в специальном разделе HDD. Попадает туда в процессе апгрейда. Очевидно, что экранные формы должны соответствовать программам, которые ими пользуются. Именно поэтому, при восстановлении HDD из чужого образа происходит фигня - экранные формы перестают работать.

Upgrade.
Происходит неявно, если утрачена операционная система в памяти в результате длительного отключения аккумулятора или принудительно из сервисного меню. Используется только файл loading.kwi, который состоит из трёх частей:
1. Собственно программа, которая выполняет upgrade.
2. Образ операционной системы
3. Набор экранных форм и графики

В начале файла loading.kwi есть что-то типа оглавления, где все эти части поименованы. В частности, для версии NR261RM оглавление содержит строки:
NR261RM.MLD.ORG
NR261RM.SHx.ORG
NR261RM.SCN.ORG

Загрузку программы обновления выполняет загрузчик, который живёт в MMCS. При этом он внимательно смотрит, чтобы имя в оглавлении точно соответствовало имени в MMCS. В частности, если у Вас в MMCS написано NR261JM - загрузчик будет искать NR261JM.MLD.ORG в оглавлении loading.kwi Если не найдёт - будет выносить мозг типа "вставьте правильный диск"

Программа обновления, будучи запущенной, ищет файл, из которого она была запущена и уже сама лезет в его оглавление. В частности, если это программа обновления от NR261RM - будет искать в оглавлении NR261RM.MLD.ORG, NR261RM.SHx.ORG и NR261RM.SCN.ORG. Если это не так, будет (уже по-русски) выносить мозг типа "вставьте правильный диск"

В процессе работы программа обновления:
1. Переписывает loading.kwi в отдельный раздел на HDD (где его потом, в случае утраты OS, обнаруживает загрузчик MMCS)
2. Распаковывает файлы операционной системы из раздела NR261RM.SHx.ORG в RAM
3. Распаковывает файлы графики и экранных форм из раздела NR261RM.SCN.ORG в отдельный раздел HDD

Я воспользовался тем фактом, что программа обновления даёт возможность поменять диск в процессе работы
Я подготовил два диска (назовём первый и второй). На каждом по два файла - ALLDATA.KWI (не пробовал без него) и LOADING.KWI
На первом LOADING.KWI с подправленным оглавлением - в моём случае вместо NR261RM.MLD.ORG там написано NR261EM_PUG.MLD.ORG
На втором LOADING.KWI не модифицирован.

Вставляем первый диск. Жмём SET+NAVI и держим 5 сек. Вылезает сервисное меню. Там выбираем "Versions Indication", внутри которого жмём и держим 5 сек MENU. Вылезает меню апгрейда. Выбираем "Load from Disk". Должна загрузиться программа обновления с сидюка и попросить вставить правильный диск. Вставляем второй диск. Всё должно приехать

Замечание:
1. В результате такого обновления на HDD оказывается loading.kwi c неправильным (с точки зрения загрузчика) оглавлением, так что возите с собой пару CD с апгрейдом.
2. Оригинальная система восстанавливается методом копирования своего родного loading.kwi с HDD на сидюк. Хорошо бы сделать такой диск до всех манипуляций и попробовать обновиться с него. Всё должно пройти в один заход.

Про то, как на HDD попадают карты местности написано много и до меня...

---------- Добавлено в 22:49 ---------- Предыдущее сообщение было написано в 22:35 ----------

to holod:
Задумка состоит в изготовлении правильного loading.kwi методом комбинации первой части из своего родного loading.kwi, а двух других - из R-02. В таком случае upgrade должен проходить в один заход и решается проблема с отключением батарейки. Поскольку размеры соответствующих частей разные, надо корректно подправить смещения в оглавлении.

---------- Добавлено в 22:56 ---------- Предыдущее сообщение было написано в 22:49 ----------

ALLDATA.KWI, который я использовал

---------- Добавлено в 23:29 ---------- Предыдущее сообщение было написано в 22:56 ----------

и, типа, напишите, у кого что получилось... я старался излагать доходчиво..
melin вне форума   Вверх Ответить с цитированием
6 пользователя(ей) сказали cпасибо: