Дата: Суббота, 05.08.2023, 14:08:13 | Сообщение # 647
Удаленные
Сообщений:
Олегначмастер, это смотря как их наносить, если не обезжирить и не очистить от всякого Гэ поверхность, да ещё грязным жалом паяльника плавить, то сюрпризов со временем, а то и сразу - не избежать.
CID поддерживается в рамках протокола, а именно: в нём есть пользовательская часть, которую можно переписать один (1) раз. Чтобы переписать полностью, нужно использовать специальные заводские команды. Для этого готовится поддержка скриптов, где любые команды будут возможны из текстового файла напрямую. Пока могу сказать только, что все команды и директивы начинаются и заканчиваются в одной строке. В качестве примера директивы - FILE с параметрами открывает файл, и все последующие команды, работающие с данными, используют его. Последующая директива FILE с новым именем открывает новый файл, а предыдущий закрывает, но его можно переоткрыть по ходу скрипта снова в нужном месте OFFSET. Как только поддержка скриптов для EMMC будет готова - сразу выложу (также скриптами в дальнейшем будет поддержано всё остальное). После этого кто-то умный напишет скрипт для изменения CID, а кто-то глупый сможет этот скрипт использовать и по результату сойти за умного.
Картридером если подключиться с первого раза удачно (вслепую) - то можно лить, если исходный дамп большой - досчитать до 5 и прервать, он быстро пишет. Если уж у меня второй винчестер после записи на него целого дампа сдох, то что говорить о eMMC. Также eMMC не любит нагрева, и те, кто паяет их туда-сюда, тоже рискуют, если планируется родную оставлять - то греть её и писать целый дамп (при наличии usb-обновления) - нельзя. Также нужно учитывать, что мы подключаемся одним проводом данных, а я вот только что столкнулся с дефектом, когда одним проводом всё прекрасно, а через 8 - сбой. Вообще разработчику не очень удобно использовать boot-раздел eMMC, т.к. boot может использовать переменные окружения, получаются скачки между разделами. Даже непонятно, что проще - грузиться из boot-раздела или из user. У современных чипов SOC нет ограничений на размер внутренней bootrom, поэтому загрузка из boot-раздела eMMC (и экономия пары килобайт в bootrom) - скорее дурной тон. И если boot-разделы не используются, то всю необходимую работу можно проделать картридером.
Доброго дня всем! Вопрос такого характера, по данному девайсу: USER можно прочитать не целиком, а по разделам, что бы спасти разделы factory_setting, factory_data и подменить их в чужом USER? Если да, то как это делать?
letunov45, я бы сделал так. Сначала сдампил бы eMMC целиком картридером, потом взял бы флэшку на 16GB или больше, и залил бы дамп на неё (прямой записью образа, как на eMMC). После этого воткнул бы эту флэшку к линуксу и читал бы в виде разделов как хочу, не боясь потерять содержимое. Так же можно и наоборот сделать - подготовить всё на флэшке, сдампить её и залить этим user. Если же имеется в виду, что чтение вылетает с ошибкой в начале - версия, делающая пропуск таких мест, давно уже сделана, но хочу доделать скрипты в начальном варианте. Скрипты могут писаться таким образом, что может происходить быстрое переключение между картридером и Девайсом, когда Девайс, допустим, переключает аппаратный раздел GP, а картридер работает уже с ним как с user-ом (если получится).
Сначала сдампил бы eMMC целиком картридером, потом взял бы флэшку на 16GB или больше, и залил бы дамп на неё (прямой записью образа, как на eMMC). После этого воткнул бы эту флэшку к линуксу и читал бы в виде разделов как хочу, не боясь потерять содержимое. Так же можно и наоборот сделать - подготовить всё на флэшке, сдампить её и залить этим user.
Понял, спасибо!
Цитатаletunov45 ()
Если же имеется в виду, что чтение вылетает с ошибкой в начале - версия, делающая пропуск таких мест, давно уже сделана, но хочу доделать скрипты в начальном варианте. Скрипты могут писаться таким образом, что может происходить быстрое переключение между картридером и Девайсом, когда Девайс, допустим, переключает аппаратный раздел GP, а картридер работает уже с ним как с user-ом (если получится).
Примерный образец скриптов. Инициализировать eMMC можно обычным способом, а в скрипте писать только команды типа TOKEN. Таким образом, можно и низкоуровневый формат запустить для сброса протектов, и CID изменить.
# DEMO SCRIPT FOR EMMC # Select mode... # Mode for eMMC can be changed to CARDREADER and back dynamically MODE EMMC # - postal usb-device is selected as working device INIT # - Performs complex start-up action accordingly checkboxes of interface. # - eMMC must be in "standby-mode" after this and ready for commands. STATUS # - Performs command "check status", show results PAUSE # - Show dialog to continue or exit script, script can be revised/changed. # - Now setup to read user-partition via tokens... TOKEN (7) 00 01 00 00 RESPONSE # - send standard 48-bit eMMC-token, command 7 - "select", 0001 - RCA. # - any decimal must be (xxx), otherwise - 2-digit bytes, spaced or not. # - "response" need to flush response gata before next command, if not data. # - "response" for standard 48 bit can be omitted - will be used by default. # - last byte of token is CRC7, added automatically. # - after "INIT" can be used also: # SEL_CMD7 1 # - eMMC can be selected to transfer state with short command also. DELAY (200) # - Performs "sleep" in mS, max 10 Sec. # - after "INIT" can be used: # SELPART 0 # - Partition 0 will be selected (but 0 is default, not need to select) SET_BLOCK_SIZE_512 # - send command 16 (size is 512 bytes always). FORCE_ACCESSMODE_SECTOR # - Set internal variable of software (checkbox) to work with sectors. FORCE_MULTISECTOR_RW # - Set internal variable of software to work with commands cmd18/cmd25. DESTINATION "backup_dump.bin" OFFSET 0 # - Setup destination file for command "read". READ OFFSET 0 SIZE 0x100000 # - Will be read 1MByte from eMMC to file. 0x100000 = 1048576(bytes). # - eMMC will stay in transfer state...
# DEMO SCRIPT FOR CARDREADER # Select mode... MODE CARDREADER # SELECT DISK NUMBER # SELECT DISK LETTER # CONFIRM # - Disk selection is not supported now (all above). Reserved commands. # - Currently need select disk for cardreader from interface. # - Currently read/write supported only with file and offset. # - 2 files can be defined (and dynamically changed), # one destination - for read from eMMC/cardreader, one source - for write. # SOURCE "new_big_dump.bin" OFFSET 0 DESTINATION "backup_dump.bin" OFFSET 0 # - when offset omitted - mean null. Offset will increment # automatically when read or write, two variables (64 bit) - # - one variable for read and one for write. # Offset and size only hex-digits, "0x" can be omitted, internally 64 bit. READ OFFSET 0 SIZE 100000 # - Will be read 1MByte from cardreader to file. 0x100000 = 1048576(bytes).
Прошу прощение за «ламерский» вопрос. Как то все обходилось, но не обошлось. Встал вопрос считать данные (буты и юзер) с eMMC H26M41204HPR . Почитал форум. Нашел PINOUT на плате. Подсоединился, «сконнектился». И вот тут встал вопрос, а какой размер выставит в меню «User Max Backup», если по описанию программы «минимальный размер - 4МБ, а максимальный - 2048МБ»? По даташиту H26M41204HPR восьмигиговая. Только не пинайте сильно…
Vovnn, тему почитал. Картридер заказал, но пока суть да дело, хотелось бы разобраться, смогу ли я слить "юзер" железом Postal3 при помощи Postal3_emmc_v8, и если да, то как?