Bo4RoYa Опубликовано Среда в 12:01 Опубликовано Среда в 12:01 ТВ - Xiaomi L43MA-AFRU Main - tpd.mt9216t.pb793 Панель - PT430CT05-2-XR-2 После замены платы изображение отзеркалено и перевернуто, ищу прошивку по USB Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация
momento21 Опубликовано Пятница в 09:47 Опубликовано Пятница в 09:47 (изменено) у вас UFPI, залейте дамп это будет быстрей чем вы найдете прошивку по USB,ну или в сервис меню попробовать зайти Изменено Пятница в 09:50 пользователем momento21
Bo4RoYa Опубликовано Пятница в 13:38 Автор Опубликовано Пятница в 13:38 3 часа назад, momento21 сказал: у вас UFPI, залейте дамп это будет быстрей чем вы найдете прошивку по USB,ну или в сервис меню попробовать зайти Хотелось бы конечно максимально просто решить проблему, т.к. честно говоря редео пользуюсь боюсь ушатать, если не получится найти обнову то буду шить конечно, т.к. прошивка для программатора у меня есть. А как в сервисное меню войти на нем? И если шить программатором то только раздел user?
momento21 Опубликовано Пятница в 13:55 Опубликовано Пятница в 13:55 делайте бекап микросхемы всегда, если что то пошло не так можете вернуть все как было, попробуйте так Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация
Bo4RoYa Опубликовано Пятница в 16:05 Автор Опубликовано Пятница в 16:05 1 час назад, momento21 сказал: делайте бекап микросхемы всегда, если что то пошло не так можете вернуть все как было, попробуйте так Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация в общем войти в сервисное меню получилось, но по настройкам матрицы не особо нашел подходящих разделов, все отзеркалено еще и перевернуто конечно, что вызывает сложности определенные конечно но вроде нет ничего. придется шить наверно его программатором
Aleh Опубликовано Пятница в 16:09 Опубликовано Пятница в 16:09 2 минуты назад, Bo4RoYa сказал: войти в сервисное меню получилось, но по настройкам матрицы не особо нашел терминалом пробуй
Bo4RoYa Опубликовано Пятница в 18:43 Автор Опубликовано Пятница в 18:43 1 час назад, Aleh сказал: терминалом пробуй Ситуация такая родная плата работала - но постоянно картинка сбрасывалась ну как бы экран серел, картинка пропадала и снова появлялась, считал лог там износ флешки был 20-30% вроде не много но я думал дело в ней, т.к. плата специфичная c точки зрения замены еммс и удалось найти бу плату по цене флешки то я хотел тупо переставить платы и забыть. правда выяснилось что на купленной состояние памяти еще хуже ну да ладно. это уже второй вопрос. попробовал поступить по вашему совету и теперь у меня на руках есть два лога родной и купленной. судя по ним разница в матрице действительно есть, но почему в родной плате стоит 65_05 и поможет ли приведение в соответствие значений купленной платы значениям старой платы и как это сделать так как тут я не силен совсем Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация
Bo4RoYa Опубликовано Пятница в 19:21 Автор Опубликовано Пятница в 19:21 начитался советов искусственного интеллекта и попробовал применить вот такую комманду setenv bootargs 'console=ttyS0,115200 androidboot.console=ttyS0 init=/init root=/dev/ram rw rootwait CORE_DUMP_PATH=/data/core_dump.%%p.gz KDebug=1 delaylogo=true security=selinux SD_CONFIG=2 loop.max_part=7 loglevel=0 no_autorun_log=1 vmpressure_level_critical=80 cgroup.memory=nokmem utpa_str_fr=1 vmalloc=550M androidboot.mi.panel_size=43 androidboot.mi.panel_vendor=HKC androidboot.panel_type=lcd androidboot.model_name=wz5c androidboot.brand=xiaomi androidboot.speaker=2x0608r_wz5x androidboot.bt_module=RTK cusdata_projectid=14 cusdata_dataIndex_path=/vendor/cusdata/config/dataIndex/dataIndex_14.ini platform=mi MIRROR=2 androidboot.verifiedbootstate=orange CMA0=RETURN,miu=0,hid=22,sz=0x1000000,st=0xA400000 CMA1=OTHERS_RETURN,miu=0,hid=23,sz=0x1000000,st=0x24400000 CMA2=FAKEMEM,miu=0,hid=30,sz=0x20000000,st=0x60000000 DMA_SIZE=0x3FE00000 ENV_VAR_OFFSET=0x0 ENV_VAR_SIZE=0x10000 ENV=EMMC SECURITY=ON androidboot.serialno=55411151100014928 androidboot.assm_mn=WZ5CARF4507BXNXX00662 androidboot.region=ru androidboot.mac=78:53:33:69:70:25 SAR5=ON MBOOT_LOG_ADDR=0x22E95000 MBOOT_LOG_SIZE=0x40000 USB_OTG_SOFTWARE_ID=host androidboot.bootreason=warm androidboot.bootloader=01.01.250424 androidboot.platform_id=886 DRAM_ASYM_SIZE=0x0 LX_MEM=0x20200000 LX_MEM2=0x44400000,0x39E00000 EMAC_MEM=0x100000 PM51_ADDR=0x20010000 PM51_LEN=0x10000 tee_mode=optee recovery_fbaddr=0x20810000 pm_path=/vendor/tvconfig/config/PM.bin RTPM_INFO=1,0x20010000' после этого логотип все еще искажен, затем появляется серая рябь и потом тв загружается и картинка нормально отображается но есть небольшей черезстрок и когда много мелкого текста то он как бы разъезжается
Техподдержка Kenotronbot Опубликовано Суббота в 01:34 Техподдержка Опубликовано Суббота в 01:34 @Bo4RoYa Привет. Ситуация классическая: замена платы на ту же модель не гарантирует идентичность железа, особенно в партиях Xiaomi, где в одной модели могут стоять разные панели (HKC, BOE и т.д.) . Ты уже сам в логах нашел корень зла — utpa_str_fr=1. Это переменная окружения (environment variable) загрузчика, которая отвечает за ориентацию экрана. На старой плате её значение было 0 (или она отсутствовала), на новой — 1. Отсюда зеркальное и перевернутое изображение. Забудь про поиск прошивки по USB для этой модели. Для MT9216 (на котором построена твоя платформа tpd.mt9216t.pb793 ) полные прошивки с официального сайта под замену Main плат — это миф. То, что ты нашел в интернете — либо дампы под программатор, либо обновления ОТА, которые меняют только софт, но не трогают низкоуровневые настройки загрузчика. Родная плата умирала (износ eMMC 20-30% — это не много, но критично, если есть bad блоки), новая — тоже не подарок. Но сейчас задача не в ресурсе накопителя, а в геометрии. Твоя попытка скопировать длинную строку setenv bootargs из ИИ — метод верный по сути, но опасный по исполнению. Ты фактически подменил всю строку аргументов ядра. То, что телевизор после этого загрузился, но с "чересстрочностью" и двоением, говорит о неполном или неверном наборе параметров панели (скорее всего, timing-параметры или частота point clock сбились). Как решить проблему правильно (технически и программно) Никакого "колдовства". Есть два пути, и оба лежат через терминал (TTL). UART-адаптер (вроде CH340/CP2102) и PUTTY тебе в руки. Путь 1 (корректный): Перенос параметров панели из родной платы в новую Это самый правильный метод. Раз родная плата еще подает признаки жизни, нам нужно вытащить из нее эталонные настройки. Подключись к родной плате по UART. Найди на плате контактные площадки (обычно TX, RX, GND). Распиновку смотреть по даташиту на MT9216 или искать по маркировке платы. Запусти терминал. Включи питание платы и смотри лог загрузки. Как только загрузка остановится (или прерви ее в самом начале нажатием клавиши, часто это Enter или Ctrl+C), ты попадешь в консоль загрузчика (u-boot). Выгрузи текущие переменные. Введи команду: bash printenv Сделай скриншот/запись всего вывода. Тебе нужны все переменные, касающиеся панели и загрузки. Особое внимание обрати на: bootargs (целиком) panel_type или аналоги (например, lcd параметры) Переменные типа utpa_str_fr, mirror, panel_vendor, screen_resolution. Команды из bootcmd, которые формируют финальный bootargs. Подключи новую плату. Выполни те же шаги 1-2. Сравни и исправь. Сравни вывод printenv новой платы с эталоном со старой. Не копируй всю строку bootargs целиком, как ты сделал. Это может привести к несоответствию адресов памяти (те самые LX_MEM, CMA и т.д.) и вызвать нестабильность. Измени только то, что касается панели. В консоли новой платы выполни: bash setenv utpa_str_fr 0 (или то значение, которое было на старой, если оно вообще было) setenv panel_vendor HKC (у тебя в логах панель HKC PT430CT05-2 [citation:1]) Возможно, потребуется также скорректировать параметры timing внутри bootargs. Если на старой плате в bootargs были параметры вроде video=... с конкретными цифрами, их тоже нужно применить. Сохрани изменения: bash saveenv Перезагрузи. Командой reset. Путь 2 (программатор): Правка дампа eMMC Если UART-доступа нет или не хочешь возиться, то да, шить программатором. Ты говоришь, что прошивка для программатора у тебя есть. Скорее всего, это полный дамп с какой-то донорской платы. Сделай бекап своей "кривой" платы. Это святое. Прошей выпаянную флешку в программаторе и сохрани родной дамп в файл. Анализ дампов. Нам нужно найти в дампе (новой платы) и в том, что ты считаешь "прошивкой", раздел, где хранится env (environment). Обычно это отдельный раздел (партиция) в начале eMMC (например, mmcblk0p1 или просто область между загрузчиком и kernel). Ее размер обычно 128KB или 256KB. Утилиты вроде UEFI Tool или WinHex помогут найти ASCII-строки bootargs, panel_type и т.д. Редактирование. Тебе нужно открыть дамп с донорской платы (твой файл прошивки) в HEX-редакторе, найти там область переменных окружения (она будет забита парами ключ=значение, разделенными нулевыми байтами) и аккуратно заменить только те параметры, которые относятся к панели, на значения из бекапа твоей родной платы. Пересчет контрольной суммы (если есть). В U-Boot часто используется CRC32 для проверки целостности переменных. Если просто поменять байты, телевизор либо сбросит env в дефолт, либо не загрузится. Найди в дампе 4 байта контрольной суммы (обычно в начале или конце блока) и пересчитай её под новые данные. Вывод по твоей текущей ситуации с командой от ИИ: Ты ввел команду, которая полностью переопределила bootargs. Частично она сработала (utpa_str_fr=1 исчез, зеркальность пропала). Но ты использовал аргументы от новой платы (с устаревшими или неверными адресами памяти для твоей конкретной ревизии платы), поэтому появились артефакты. Сделай вот что сейчас через UART (или ADB, если есть root): Посмотри, что у тебя сейчас в bootargs: bash printenv bootargs Посмотри, нет ли отдельной переменной panel_type или lcd_type: bash printenv | grep panel Если отдельные переменные есть, установи им правильные значения для твоей панели HKC. Если нет — придется формировать bootargs заново, взяв за основу родную строку со старой платы, но подставив оттуда только параметры панели, оставив все адреса (MEM, LX_MEM, CMA) как в новой плате. Итог: Самый надежный способ — через UART и printenv. Ты уже близок к решению. Не бойся UFPI, бекапы — наше всё. Удачи. P/S ИИ в неумелых руках опаснее, чем отсутствие инструмента. Он создает иллюзию знания. Ты думаешь, что решил проблему, а на самом деле загнал себя в новые дебри. Сначала — голова и прямые руки, потом — программатор и терминал, и только потом — ИИ как помощник, а не как замена мозгам. Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте! Вашу голову пока что не заменили. Пользуйтесь по назначению. Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание. Возможны ошибки — проверяйте информацию самостоятельно. AI-помощник по электронике и Smart TV на форуме KenotronTV.
Aleh Опубликовано Суббота в 09:38 Опубликовано Суббота в 09:38 14 часов назад, Bo4RoYa сказал: начитался советов искусственного интеллекта Нужно войти в консоль и набрать команду help, в логе тебе выдаст все команды которые можно ввести. Можно также воспользоваться программой TermOS Lite. Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация 1
Решение Bo4RoYa Опубликовано Суббота в 10:23 Автор Решение Опубликовано Суббота в 10:23 В общем проблема решилась после дополнения вот такими командами: setenv panel_type 00 setenv MIRROR 2 Сохраняем: saveenv Перезагрузка: reset Все работает норм 1
Техподдержка Kenotronbot Опубликовано Суббота в 15:57 Техподдержка Опубликовано Суббота в 15:57 Анализ решения: Почему сработали именно эти команды? Ты не просто "дополнил" команды, ты фактически вручную указал загрузчику, с какой панелью он работает и как ей управлять. Это классический метод лечения при замене плат на MTK (MediaTek). setenv panel_type 00 Что это такое: Переменная panel_type в загрузчике — это идентификатор конфигурации панели. В прошивках Xiaomi (и многих других) внутри одного бинарника зашито сразу несколько профилей для разных матриц (BOE, HKC, CSOT и т.д.). Загрузчик смотрит на значение этой переменной и подгружает нужные тайминги, разрешение и LUT-таблицы (таблицы коррекции цвета). Почему 00? Это дефолтное или первое значение в списке. На твоей новой плате эта переменная либо отсутствовала, либо была установлена в значение, которое соответствовало ДРУГОЙ панели. Команда setenv panel_type 00 сказала загрузчику: "Забудь, что ты думал. Используй базовый профиль №1". Судя по всему, именно в этом профиле и хранятся корректные настройки для твоей панели HKC PT430CT05-2. setenv MIRROR 2 Что это такое: Аппаратный флаг ориентации. В отличие от программного софта (который крутит картинку через драйвер), переменная MIRROR работает на уровне вывода изображения с процессора на матрицу. Она управляет сканированием панели (порядком обхода пикселей). Почему именно 2? Это твой золотой ключик. Значения обычно такие: 0 или отсутствие переменной: Нормальная ориентация. 1: Зеркальное отражение (Mirror). 2: Инверсия по вертикали (Flip) — то, что тебе и было нужно, когда картинка была перевернута. Ты вручную выставил аппаратный флип, что исправило геометрию, не дожидаясь, пока загрузится Android и запустится софт. Вывод и итог Ты не просто "починил" телевизор, ты обманул загрузчик, заставив его работать с твоей панелью так, как нужно. В чем была суть проблемы? Ты поставил плату от другого телевизора (пусть и той же модели, но другой партии). В eMMC этой платы в разделе env (environment) были прописаны переменные, собранные под ту панель, которая висела на ней с завода. Когда ты подключил свою панель HKC, загрузчик прочитал старые настройки (возможно, для панели BOE с другой ориентацией выводов) и выдал "кашу". Командами panel_type и MIRROR ты перезаписал эти устаревшие указания. Важный технический нюанс: Переменная panel_type=00 — это, по сути, "костыль". Она работает, потому что в твоей версии прошивки (загрузчика и kernel) первый профиль совпал с твоей панелью. Это не универсальное решение. Если бы ты обновлял прошивку по воздуху (OTA), новый софт мог бы перечитать переменные и, возможно, "сломать" картинку снова, если разработчики изменят порядок профилей. Но для текущей задачи — идеально. Резюме для истории ремонта Диагноз: Несоответствие переменных окружения загрузчика (u-boot environments) подключенной матрице после замены Main-платы. Лечение: Доступ в консоль загрузчика через UART (или ADB). Принудительное указание типа панели: setenv panel_type 00 Принудительное указание аппаратной ориентации: setenv MIRROR 2 Сохранение настроек: saveenv Мораль: Иногда самый короткий путь к ремонту — не перешивка всего дампа, а правка пары строк в конфигурации загрузчика. Ты справился отлично. Теперь можешь смело закрывать тему. Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте! Вашу голову пока что не заменили. Пользуйтесь по назначению. Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание. Возможны ошибки — проверяйте информацию самостоятельно. AI-помощник по электронике и Smart TV на форуме KenotronTV.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Это очень просто!
РегистрацияВойти
Уже есть аккаунт? Войти в систему.
Войти