MIB2 STD PQ Composition Media, conversion US to EU firmware.

MIB2

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

Также вы понимаете что уровень знаний для проведения данной операции нужен в области электро схемотехники и UNIX систем, а так же программирования и диагностики автомобиля.

Обновление статьи от: 07.02.2024
Появился второй метод доступа к SSH Shell, не могу сказать что он легче или надежнее, после изучения материала сможете решить сами что вам удобнее и лучше.
Данный метод не отменяет старую информацию по прошивке, а скорее дополняет ее, поэтому информация о нем будет в конце статьи, в статье добавлены метки по методам какая часть материала подходит какому методу.

И так все началось с того что появился у моих близких авто VW произведенный для рынка USA магнитола там 5C0035200D или 5C0035200B.
Все бы ничего если бы не полное отсутствие русского языка и голосового ассистента, а так же нечетные радиостанции и отсутствие RDS.
И попалась мне MIB2 STD PQ Composition Media производителя Technisat preh, а это скажу я вам один из самых печальных случаев в плане простоты обновления.
Ибо для обновления придется разбирать и соответственно снимать магнитолу с авто. Не снимая с Composition Media не выйдет это точно даже не ищите другой вариант. Разве что вы можете подписывать прошивки заводским ключем.
Изучив материалы на форумах я понял что задача для меня вполне посильная и начал я собирать нужные приспособы.
Многие подумают что проще отдать магнитолу умельцам которые все сделают, оно так и есть, но сами умельцы я уверен что читали подобные статьи и по ним делают данную процедуру, без полного понимания того что они делают.
Но вам стоит знать что изменить прошивку мало для того что бы все работало как должно работать в европейском авто.
А про то что у вас в авто после данной процедуры останутся ошибки этого вам тоже никто не скажет, это жирные минусы после умельцев.
Поэтому берем все в свои руки и делаем как надо!

Немного экскурс в характеристики для понимания прошивки:
MST2_EU_VW_PQ_P0478T
MST2 = MIB2 стандарт головного устройства
EU — Регион прошивки
VW — марка авто прошивки
PQ — магнитола состоит из одного блока ZR два блока, мозги в бардачке дисплей в торпеде.
P — прошивка стабильной ревизии используется на производственных линиях завода
04 — HW ID к какой ревизии материнской платы подходит прошивка 04 = HW40,41,42 и тд. если 03 то HW30 если 02 то HW20
78 — версия прошивки
T — Technisat preh производитель головного устройства.

По поводу HW обновлять прошивку на HW20 версии 0478 конечно можно, но стоит учесть что HW20 самая слабая и старая платформа, возможны тормоза, я бы не рекомендовал такого делать.
HW30 от HW40 отличаются процессором в последнем он немного быстрее(+150Mhz), в остальном идентичны и прошивка от HW40 на HW30 отлично работают.
HW40HW

На данный момент последняя прошивка это: MST2_EU_VW_PQ_P0480T

И так что нам понадобится для успеха операции:
1. Компьютер.
2. TTL преобразователь FT232RL
3. Сетевой адаптер Dlink-DUB E100 rev. D1/C1
4. VAS5054 головка и ODIS(можно обойтись и телефоном OBD2 головкой и CarScannerPRO, но выискивать байты для телефона я не буду).
5. Кард ридер (желательно тот в котором есть слот для CF карт, больше вероятность что будет совместим)
6. SD карта минимум 16Gb
7. Лабораторный блок питания

Начнем!
Первое, что нам нужно сделать это активировать режим разработчика, так называемое green menu.
Для этого в ODIS или CarScannerPRO активируем его в блоке 5F.
После этого перезагрузим юнит долгим удержанием кнопки включения.
После загрузки(полная загрузка 90сек, то что вы увидели экран с радио не значит что юнит полностью загрузился) удерживаем MENU до появления «Сервисный режим».
Затем идем в обновление ПО в историю затем cpuplus и смотрим ID юнита.
Запоминаем, а лучше записываем данное значение, оно нужно для преобразования прошивки.
Теперь можно снять юнит и нести на рабочий стол, а тем временем будет готовить прошивку.
Для начала убедитесь что на всякий пожарный у вас есть оригинальная прошивка от US юнита на случай восстановления.
К примеру: MST2_US_VW_PQ_P0478T
Затем качаем: MST2_EU_VW_PQ_P0478T или MST2_EU_VW_PQ_P0480T

Готовим прошивку:
Качаем: https://github.com/lprot/MIB-Tools нам нужно metainfo_link_generator.py и swdl_patcher.py(патчер нужен на случай если toolbox не справится)
Качаем: python-3.10.4-amd64.exe и HDD Raw Copy Tool
Извлекли прошивку, в корень прошивки кладем metainfo_link_generator.py убеждаемся что metainfo2.txt в корне без атрибута только для чтения.
Запускаем metainfo_link_generator.py выбираем что хотим конвертацию тапаем enter и вводим ID ранее запомненный или записанный.
PYПрошивка готова записываем ее на карту SD

Начнем готовить юнит к прошивке (Метод 1):
Разбираем юнит сняв верхнюю крышку, и открутив 4 винта, два сбоку, два снизу. Снимаем CD отстегнув и вытащив шлейф. Отстегиваем дисплей.
Для подключения к EMMC памяти можно использовать иглы подключив их в отверстия обозначенные стрелками.
Либо тонкие провода 0.3мм просто вставив в эти отверстия, особо суровые парни припаиваются.
Я разобрал переходник с Micro SD to SD припаялся к нему и вставил в кардридер, а проводки просто всунул в отверстия на плате.
Выглядело это вот так:
Выводы пинов с описаниями прилагаются:
плата
Питание 3.3V подключаем от лабораторного источника питания. VCC для R/W записи чтения можно подключить от VDD кардридера, бытует мнение что это не очень хорошо для EMMC но многие так делают. После того как подключили втыкаем кардридер в USB и все что ругается Windows что диск не форматирован отменяем.
Запускаем HDD Raw Copy Tool выбираем нашу флешку(USB), жмем далее, два раза тапаем мышкой на File и выбираем куда сохранить прошивку в формате RAW!

После завершения скачивания рекомендуется сделать еще одну копию и сравнить HASH суммы полученных двух файлов, если хеши совпали, значить все слилось хорошо!

Теперь можем выключить питание от EMMC и отключить USB кардридера, какое-то время он пока не понадобится.

Качаем VirtualBox и QNX_Eval_RT.zip виртуальную машину QNX
Инструкцию как пользоваться VirtualBox писать не буду если не умеете странно как дочитали сюда.
Нам нужно конвертировать RAW в диск для виртуальной машины, для этого воспользуемся командами:

обратная процедура

С конвертировали диск, добавили как еще один диск в виртуальную машину, стартуем QNX
Входим в виртуальную машину логин: root без пароля.
Находим в утилитах текстовый редактор открываем, жмем открыть файл и ищем по пути:
/fs/hd1-qnx6/tsd/bin/system/startup
Открываем, находим строку sleep 0.x и под ней добавляем:

Сохраняем, повторяем убеждаемся что строки сохранились и они верные, две строчки!
Выключаем виртуальную машину.
Конвертируем диск машины обратно в RAW.
Подключаем наш кардридер назад, отменяем предложения форматировать диски, запускаем HDD Raw Copy Tool но теперь выбираем что нам нужно из File (два раза кликнуть) записать в наш EMMC подключенный диск.
Записываем отключаем наше хозяйство, собираем юнит в обратном порядке.

Теперь подаем питание на юнит 13V 3A и подключаем TTL преобразователь(логический уровень можно оставить 3.3V). Rx юнита к Tx преобразователя, Tx юнита к Rx преобразователя GND к GND


Метод 1-2
Открываем Putty выбираем COM порт номер преобразователя TTL, выставляем скорость 115200 открываем консоль жмем ENTER если увидели приглашение шел # значить вы все сделали верно и самое страшное позади.

Теперь идем за тулбоксом: https://github.com/olli991/mib-std2-pq-zr-toolbox
Качаем крайнюю версию и записываем на SD карту(удаляем metainfo2.txt) вставляем в юнит.
При всех манипуляциях с toolbox его флешка должна быть в юните.
Набираем в консоли:

Проверяем установился ли toolbox жмем menu пока не появится тестмод меню, там выбираем GreenMenu в нем ищем toolbox.
Если toolbox на месте это можно сказать победа.
Теперь нам нужно пропатчить SWDL
Идем в Tools —> Update —> Enable manual SWDL, или если патчили сами(swdl_patcher.py) то Customization потом Advanced и патчим SWDL для приема любых metainfo2.txt если патч прошел успешно, перегружаем юнит.
Теперь внимательно!
Вставляем подготовленную EU прошивку в SD идем Testmode->SWDL->Software Download Manual Download и  ставим галочку(manual) что мы хотим сами выбрать что обновлять.
И выбираем наше обновление, в меню прошивки выбираем отметить все пункты(select all), затем идем в cpuplus находим там esd и убираем с него галку на обновление, если этого не сделать потеряем toolbox, а разбирать заново юнит повторять процедуру дампа думаю никто не хочет. После того как убрали галку жмем обновить. Ждем окончания обновления. Последние 2 обновления не установятся это нормально(после перезагрузки обновится SWDL на непатченый и не даст обновиться полностью). После того как прошивка встанет(отменяем все ругательства и ошибки) проверяем что все ОК(что устройство грузится и работает) и идем устанавливать юнит в авто, но это еще далеко не конец истории.

Установили юнит в авто, подключаем Dlink-DUB E100 rev. D1/C1 в USB магнитолы, а кабель RJ45 crossover в нотбук.
Заходим в toolbox, заходим в network выбираем permanent telnet access включаем.
Патчим заново SWDL.
Вставляем карту с прошивкой EU подготовленной ранее.
Заходим в меню обновления ПО и выбираем нашу прошивку, смотрим что она предлагает обновить недостающие компоненты, в том числе и esd, соглашаемся и обновляемся.
После обновления ничего не клацая на экране после прошивки ждем приглашения о подтверждении установки ПО и при помощи OBD2 или CarScannerPRO подтверждаем установку ПО в модуле кодирование мультимедиа. Юнит перезагрузится сам.
Теперь с ноутбука открываем Putty сетевой адаптер ноутбука настраиваем в ручную IP: 192.168.1.2 MASK: 255.255.255.0 в putty выбираем Telnet на IP: 192.168.1.4
открываем консоль, login:root pass:root
Вставляем карту с toolbox и в консоли вводим:

Проверяем что toolbox вернулся на место.
Теперь вставляем карту с прошивкой EU проверяем что она больше ничего не хочет обновлять.
Находим в toolbox опцию удалить дубликаты обновлений и удаляем дубли прошивки в истории(если этого не сделать будет висеть ошибка в блоке 5F).
На этом конвертация завершена для юнита на 100% осталось сделать адаптации и параметрирование.
Для этого нам нужно адаптировать две кодировки:
[LO]_visible_MMI_language_dataset = 0x2D00 — содержит строки-идентифкаторы языков доступных для выбора в меню настроек языка интерфейса пользователя.
[LO]_language_dataset = 0x280 — здесь хранятся языки, которые используются по умолчанию для интерфейса, голосового управления и навигации.
Для этого можем воспользоваться CarScannerPRO(как делать адаптации параметрирования читайте в гугле это экспериментальная опция) и в адаптациях модуля 5F вставить две адаптации от европейского юнита:
2D00

0280

После адаптаций параметрирование должно выглядеть примерно вот так:

Теперь берем ODIS и идем в кодировки 5F, там меняем радио с US на EU,  включаем PI потом включаем RDS и в адаптациях включаем логотипы станций FM меняем с 0 на 1.
Должно получится вот так:
И адаптации логотипов станций:

Вот теперь можно сказать финиш отличий от европейской версии больше нет.
И если вы все сделали верно как описано выше в вашем блоке 5F не должно быть никаких ошибок! Если ошибки есть то основные это 1. 1543 Блок управления закодирован неправильно (Control module incorrectly coded) (ошибки длинного кодирования активна функция которая не поддерживается юнитом) 2. Ошибка 1555 не подтвердили установку обновления ПО 3. Ошибка 1556  недообновленных компонентов прошивки.
Осталось лишь если сильно хочется отредактировать базу логотипов станций FM VW_STL_DB.sqlite скачав ее с тулбокса. Но это уже наверное целая отдельная статья.

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

Дополнение:

Метод №2. (USB2HSD) так называемый не паяемый метод.
Вводная информация:
Данный метод основан на том что бы подсунуть процессору на загрузку наш образ системы.
После чего мы сможем получить доступ к консоли через TTL порт.

Необходимое оборудование:
1. USB кабель
2. USB TTL преобразователь 2шт.

Логика работы такова:
В MIB2 головном устройстве находится два процессора J5 и iMX6.
Оба имеют emergency режим, включить который можно замкнув соответствующие перемычки на плате.
PQ
Попав в загрузчик мы сможем увидеть вот это:

Где если выбрать 5, то процессор J5 отключит сторожевой таймер (watchdog timer), который следит за тем запустился ли мультимедийный процессор iMX6 и если нет, перегружает его питанием.
Нажатие 7, заставляет J5 освободить USB/HSD порт для iMX6 и снять с iMX6 сигнал reset, разрешающий iMX6 запуститься.
Так как на iMX6 как и на J5 мы установили перемычку, загрузчик iMX6 ждет, пока через HSD порт ему передадут специальный загрузчик std_stage1.bin и скриптом PLUS1.bat.
Получив загрузчик, iMX6 запускает его и ожидает передачи имиджа custom_plus.ifs, при помощи PLUS2.bat:

Получив *.ifs имидж, загрузчик запускает из него систему QNX и в окне putty, где при нажатии на ENTER, вы должны увидеть заветное приглашение #:

План действий таков:
Нужно понимать что куда подключать, поэтому прелагаю схему:

Нужно обратить внимание, что на многих юнитах IMX6 выход на колодке выведен только для чтения пин RX не подключен, поэтому придется подключиться на плате. (Но попробовать можно вдруг у кого выведен)
Итак подключили мы все наше хозяйство TTL на плату и USB одну сторону в юнит, вторую в наш нотбук или ПК.
Далее как на картинках, нажали 5 нажали 7 получили приглашение # и перемещаемся по статье вверх до метки Метод 1-2 и начинаем читать от туда вниз.
Все как и раньше, только метод получения # теперь отличается.

Все необходимые файлы и инструкции, а так же видео инструкцию можно скачать тут.

P.S. Метод №2 лично мной опробован не был. Но выглядит нормально и вполне имеет право на жизнь. Так же думаю данный метод может помочь восстановить сильно окерпиченные юниты. Поэтому не забывайте делать резервные копии в тулбоксе.

Оставить комментарий

Пожалуйста, будьте вежливы. Мы ценим это. Обязательные поля отмечены *