Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. — Чип-тюнинг бензиновых и дизельных автомобилей

Вопрос По Контрольным Суммам. — Чип-тюнинг бензиновых и дизельных автомобилей

Постоянно парюсь с контрольными суммами из за дефицита информации
.

Сегодня прошивал OPENBOX(3.1.9….)ом микас 11ET. У него прошивка была 799_32.

по этому нашёл прошивку 799_52 в нескольких вариантах без второго кислородника. (прочитал что прошивки 32 типо глючат, ну раз пишут то пусть так будет)

На оригинальной прошивке контрольная сумма была  FFA3

Когда я залил стороннюю прошивку сумма была уже D84B на другой неорригинальной 5B60.

Когда недавно я прошивал уазик с блоком 17.9.7 через obd2(чиплодырь) разными прошивками то там контрольная сумма не изменялась. Вообще никакой разницы небыло визуально в сканере определить что прошивка пере залита и там нет ни иммобилайзера и ни кислородника нельзя было.

Возникает миллион вопросов по контрольным суммам:

1. Почему когда я шил уазик сумма была неизменной а на газеле меняется?

2.То что на газеле на всех прошивках разные суммы как то скажется на работе двигателя? ошибка там какаянибудь появится?

3. Как я понял в загрузчиках и в редакторах прошивках считаются суммы. Какие различия между посчитать сумму прошивки в редакторе и пересчитать сумму прошивки в загрузчике?

4. я пробовал залить прошивку в микас(через опенбокс) ставя и снимая галочку «пересчитать сумму» разницы вообще нет сумма всёравно меняется.

5.где хранится эталон суммы с которой сравнивает процессор? в прошивке или в какойто своей памяти процессора?

6. Где про это всё можно прочитать потому что в инете как правило описывается либо что такое контрольная сумма и это мл там она по контрольным точкам в прошивке складывается и типо процессор так отслеживает мл  с той ли он прошивкой работает или нет.

7. В каких случаях в диагностике видно изменённую сумму а в каких нет? помнится в 17.9.7 на форуме писали мл если через bsl режим грузить други прошивки от других авто то мл может поменятся или поменяется.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

Реально парюсь, объясните кто-нибудь?

Как пересчитать контрольную сумму при чип тюнинге ЭБУ? Что такое контрольная сумма? / Чип тюнинг и доработки двигателя / OpenECU

  • info

    Cummins Insite 8.7 Pro level + Fleet calibration + Zapit Password
    1

  • info

    Xentry OpenShell 03.2021
    1

  • info

    Cummins Calterm 3.12 + Metafles
    1

  • info

    IVECO EASY 14.1
    1

  • info

    Diagbox 9.96 для PSA Peugeot, Citroen, Opel
    1

  • info

    BMW E-Sys 3.27 Launcher Pro 2.8
    1

  • info

    Porsche Piwis 38.250 + 38.900 for VAS6154 clone
    1

  • info

    Как адаптировать коробку DSG 7 0CW с помощью ODIS Service
    1

  • ..»>

    info

    Porsche Piwis 38.200 38.400 39.500 39.700 39.800 Зачем нужны, отличия, какие рекомендуем
    1

  • info

    Porsche Piwis 39.700 + VAS 6154 clone. Acronis image
    1

  • info

    BMW Acronis 08.2020 образ с набором программ для автосервиса BMW
    1

  • info

    Как обновить прошивку firmware update BMW ICOM / ICOM Next
    1

  • info

    Mercedes Acronis образ 09.2020 Medium (для HDD / SSD 240 Gb)
    1

  • info

    Mercedes Acronis image 09.2020 Full (для 480 Gb SSD). Новая сборка для автосервиса Мерседес
    1

  • info

    Mercedes Xentry 09.2020 Acronis image Lite version (for 120 Gb HDD). For online coding
    1

  • info

    Обновить Mercedes WIS 2020. Исправить EPC «Отсутствуют права на чтение карты данных»
    1

  • ..»>

    info

    Инструкция — Как удалить старую версию VAG ODIS Service, Engineering
    1

  • info

    VAG Acronis образ в автосервис — Что в комплекте: ELSAWin ETKA ODIS-S ODIS-E DatFlash / FlashDaten
    1

  • info

    Как установить программу BMW ETK (каталог запчастей BMW, Mini, Rolls Royce)
    1

  • info

    Активация — ключи для ODIS Service + ODIS Engineering. Какие проблемы бесплатной китайской активации
    1

  • ЧИП ТЮНИНГ

    &nbsp







    ЧИП-ТЮНИГ
    автомобилей

    &nbsp

    Часть 8. Настройка контрольной суммы


    Пробуем. Машина заводится, хорошо
    работает, но не гаснет лампа «Check Engine».
    Это проявилась ошибка контрольной суммы ПЗУ. С этим можно бороться. Для этого
    снова открываем исходную прошивку. При открытии исходной прошивки одновременно
    открывается и файл с редактированной прошивкой. При открытии исходного файла
    программа просчитывает его контрольную сумму (контрольная сумма – ото сумма
    значений всех байт в файле) и пишет ее в строке заголовка программы (Рис.12).
    Что бы изменить контрольную сумму необходимо найти участок в прошивке не
    занятый ни под программу, ни под калибровки. Практически всегда этот участок
    содержит значение FF,
    что соответствует максимальному значению на графике. Другим отличительным
    признаком свободного участка может являться то, что следующий за ним фрагмент
    начинается с «круглого» адреса типа XXXX0, где  X- любой шестнадцатеричный
    символ (Рис.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей 17).



    Рис. 17 
    Посредине расположен свободный участок прошивки.




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


    Рис. 18 
    Изменение свободного участка прошивки с целью корректировки контрольной
    суммы.




    Все предыдущие изменения прошивки
    были направлены на увеличение контрольной суммы, поэтому в свободном участке
    значения надо уменьшать (Рис.18). Выделим фрагмент на свободном участке
    прошивки и опустим значения. Для того, что бы узнать контрольную сумму
    редактируемой прошивки надо воспользоваться опцией меню Options=>Indicate CheckSum. В правом верхнем углу
    редактора появится значение контрольной суммы редактируемой прошивки. При этом
    следует учитывать, что пересчет контрольной суммы происходит после каждого
    изменения, а это занимает существенное время. Поэтому грубую подгонку контрольной
    суммы следует делать при выключенной опции.

    После подгонки контрольной суммы
    проверяем прошивку на машине. Ошибки нет и машина едет ощутимо лучше.




    CRC — прога для вычисления контрольной суммы — Программы

    уважаемые господа программисты..если кого-то из вас не затруднит ,напишите пожалуйста прогу для вычисления контрольной суммы в строчке из кода прошивки гуми (чтобы я, допустим, мог вставить строчку в поле, а прога бы считала мне контрольную сумму)..очень нужно..очень надоело уже считать вручную…а вот алгоритм вычисления это контрольной суммы:

    Например, вот строчка:

    S31500020120 6C0160C2042F86F22F8601034CF2A920 CD

    ..где CD — это та самая контрольная сумма…..

    Для начала запустите программу Калькулятор, которая есть в любой версии Windows, в расширенном режиме, чтобы удобно было переключаться из десятичной системы в шестнадцатеричную и вооружитесь обычным текстовым редактором, подойдет к примеру встроенный в FAR редактор.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Затем действуйте следующим образом: сложите в шестнадцатеричной системе поля адреса, данных и после этого прибавьте к этому значению шестнадцатеричную длину этих полей в байтах — 15. Вот пример подсчета контрольной суммы для приведенной выше строчки:

    15+00+02+01+20

    +

    6C+01+60+C2+04+2F+86+F2+2F+86+01+03+4C+F2+A9+20

    =

    632 в шестнадцатеричной системе

    Теперь о том, что нужно делать с полученным результатом. Если посмотреть на поле контрольной суммы, то можно увидеть, что под нее отведен один байт, а значение одного байта не может превышать 255, или FF в шестнадцатеричной системе. Так вот, чтобы просчитать значение контрольной суммы для нашей строки, следует в шестнадцатеричной системе отнять полученное нами значение при сложении от FF. Но если перевести 632 в десятичную систему, то получится число 1586, разумеется при вычитании у нас выйдет отрицательное значение, а это недопустимо. Поэтому в этом случае следует отбросить одну цифру слева, чтобы получилось значение меньше FF — 255 в десятичной системе. Отбросили — получилось число 32. Значит теперь в шестнадцатеричной системе производим вычитание: FF — 32 = CD. Вот CD и будет искомой контрольной суммой для нашей строки.

    Сами видите, что геммороя много…а когда этого надо сделать много, то хоть вешайся вообще…заранее спасибо!!!

    Перепрошивка PCM (с. 84) — Ford Focus 2

    Бензиновые:

    На двигателях 1.4 80 л.с. МКПП(B5/iB5) и 1.6 100 л.с. МКПП(B5/iB5)/АКПП(4F27E) используется блок Siemens SIM28. Разницы для рестайлов/межресталов/дорестайлов не существует.

    На двигателях 1.6 115 л.с. Ti-VCT МКПП(B5/iB5) используется блок Siemens SIM29. Существует два релиза двигателей: дорестайл и рестайл (включая межрестайл). Дорестайловый имеет два катализатора и 4 датчика кислорода (лямбда-зонды), в термостате имеет «электронную» начинку (принудительное открытие клапана), а так же имеет запорный клапан (финис 1 223 988).Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Как видно из названия, запорный клапан нужен для предотвращения… отвода охлаждающей жидкости в расширительный бачок при пуске непрогретого двигателя. Этим самым он уменьшает путь циркуляции охлаждающей жидкости, сокращая время прогрева двигателя. При температуре охлаждающей жидкости 80 °С запорный клапан открывается полностью и жидкость начинает циркулировать через расширительный бачок. При 92,5 °С открывается (полностью) термостат и ОЖ начинает циркулировать через радиатор.
    Отстутствие таких дивайсов у рестайловых двигателей как бы говорит нам о том, что прошивки дорест и рест не совместимы. Однако рестайловая прошивка молча встаёт на дорест и даже не зажигает джеки чана. Какие последствия от такой подмены — неизвестно.

    Также есть Flexi-Fuel версия этого двигателя, работающая на смеси этанола с бензном, на такой двигатель устанавливается блок Bosch ME17.0.2

    На двигателях 1.8 125 л.с. МКПП(B5/iB5/MTX75)/АКПП(4F27E) и 2.0 145 л.с. МКПП(MTX75)/АКПП(4F27E) используются блоки Visteon ESU-121, ESU-131, ESU-411 и ESU-418.
    Первоначально автомобили при сборке оснащались модулем ESU-121.

    С марта 2005 г. при сборке начали использовать модифицированный модуль ESU-131. Программное обеспечение для ESU-121 и ESU-131 не совместимо. Пока попыток эксперимента по заливке неправильной прошивки не было, так что нельзя предсказать, что будет в результате. Оба блока ESU-121/131 находятся в коробе рядом с аккумулятором.

    Блок ESU-411 появился в мае 2007 на Focus (межрестайл), и в июне 2007 г. на C-Max и переехал в короб, расположенный в бампере за левым подкрылком. Прошивки для нового модуля не совместимы c ESU-131, заливка в ESU-411 прошивки от ESU-121/131 гарантированно приводит к смерти модуля с возможностью восстановления только с помощью программатора с разбором блока. Это возможно, т.к. прошивки имеют одинаковую структуру и размер. С другой стороны, Анонимус утверждает, что были случаи, когда на старый ESU-131 заливали прошивку от ESU-411 и все оставались счастливы, но живых доказательств этого на форуме не зафиксировано.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

    В какой-то момент 2010 года, о котором история деликатно умалчивает, появился загадочный блок ESU-418. Никому неизвестно, почему, зачем, и чем он отличается от ESU-411, посколько эти блоки полностью взаимозаменяемы как по железу, так и по прошивкам.

    На двигателях 2.5 Turbo 200, 220, 305 и 350 л.с. МКПП(M66)/АКПП(AWF55) используется блок Bosch ME9.0. Есть разные модификации этого блока, используемые на Kuga и Focus ST/RS, они совместимы между собой только в пределах модели, блоки от Kuga не подходят на Focus ST/RS и наоборот.

    На Focus ST/RS используются следующие номера блока:
    0261209048
    0261209096
    0261209468
    0261209476
    0261209482
    0261209483
    0261209484

    На Kuga используются следующие номера блока:
    0261209354
    0261209397
    0261209471
    0261209472
    0261209473
    0261209474
    0261209533

    Дизельные:

    На двигателях 1.6 TDCi используется целый зоопарк разных блоков. Прошивки разных блоков между собой не совместимы.

    Bosch EDC16C3-9 — используется на двигателях 1.6 TDCi 110 л.с. МКПП(MTX75)/АКПП(вариатор CVT ZF) Встречается только на самых ранних C-Max производства 2003 — начало 2004 года.
    Bosch EDC16C34-2 — используется на двигателях 1.6 TDCi 90 и 110 л.с. МКПП(MTX75)/АКПП(вариатор CVT ZF), 1.6 TDCi 100 л.с. МКПП(MTX75).
    Bosch EDC16C34-5 — используется на специальной серии «Eco» Focus и C-Max, двигатели 1.6 TDCi 90 и 110 л.с. МКПП(MTX75). Автомобили соответсвуют стандартам экологического класса V, имеют активированные опции EcoMode и индикатор переключения передач (красная/зеленая стрелка) на приборном щитке, а некоторые даже опцию Старт/Стоп. Greenpeace может спать спокойно.

    На двигателях 1.8 TDCi 115 л.с. МКПП(MTX75) используется два типа блоков — Siemens SID202 и SID206.
    Первоначально автомобили при сборке оснащались модулем SID202.

    Вскоре после запуска Focus рестайл блок сменился на SID206. Блоки имеют обратную совместимость по прошивкам, т.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей е. прошивки от SID202 работают на SID206, но не наоборот. К счастью, блок SID202 от неправильной прошивки не умирает, и можно всегда залить корректную версию, в случае неверной прошивки машина просто не заведется.

    С блоками SID206 есть другой прискорбный момент — некоторые версии прошивок имеют склонность к избирательной амнезии, которая проявляется в стирании PATS-привязки к щитку приборов, соответственно, после перепрошивки машина не заводится до тех пор, пока не будет заново проведена процедура PATS-инициализации модуля PCM. Существует даже совершенно официальный сервисный бюллетень(TSB 15/2008) на эту тему. Этой болезни подвержены следующие версии прошивок:
    7M51-12A650-AUD (26.03.07 — 21.08.07)
    7M51-12A650-AUE (21.08.07 — 25.03.08)
    7M51-12A650-AUH (начиная с 26.03.08)
    7M51-12A650-BCB (03.12.07 — 25.03.08)
    7M51-12A650-BCE (начиная с 26.03.08)

    На двигателях 2.0 TDCi также используется целый ряд разных блоков.

    На двигателях 2.0 TDCi 110 л.с АКПП(MPS6) используется блок Siemens SID206.

    На двигателях 2.0 TDCi 136 л.с МКПП(MMT6) используются блоки Siemens SID206, SID803A(SID83A), SID83M и SID803. Все они, кроме SID803 имеют одинаковые адреса записи прошивки, так что прошивку от одного блока можно залить в другой, и блок от этого не умирает (были опыты на столе). Заводится ли после этого машина — неизвестно. Блок SID803 несовместим ни с одним из остальных.
    Есть несколько прошивок (а именно линейка 8V41-12A650-C*), в которых есть поддержка корректной работы индикатора перелючения передач (при условии активации этой опции в приборном щитке).

    На двигателях 2.0 TDCi 136 л.с АКПП(MPS6) используется только блок Siemens SID206.

    На двигателях 2.0 TDCi 140 и 163 л.с МКПП(MMT6)/АКПП(MPS6) используются блоки Delphi DCM 3.5. Эти блоки работают по иному протоколу, чем все остальные (используется протокол,аналогичный Focus III/Mondeo IV), поэтому полной поддержки этих блоков в ELMConfig пока нет.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

    x

    помогите заглушить EGR! это необходимость для дизеля 2.0 BKD — 31 — Эксплуатация и обслуживание


    Небольшая ремарка — при изменении значений winols сам пересчитывает контрольку. А если правили в стороннем редакторе например в winhex то файл надо открыть в winols он обругает что контролька неверна и там будет кнопочка пересчет контрольки.

    — — — Добавлено — — —

    Исправление контрольных сумм. Winols.
    Исправление контрольных сумм сделать очень легко, потому что, это сделано с
    помощью дополнительных программных расширений. Они должны быть куплены
    отдельно. И они делают всю необходимую работу автоматически.
    Начните диалог контрольной суммы с пункта меню «Редактировать> Контрольная
    сумма» (Hotkey F2).( «Edit > Checksum» (Hotkey F2)) Нажмите «на Поиск». Если будет
    найден правильный модуль контрольной суммы, то это будет автоматически
    применено к файлу и контрольная сумма будет вычислена и (если Вы захотите это),
    всегда исправлена.
    Если у Вас нет соответствующего модуля, у Вас может быть свой проект, проверенный
    в онлайн (свободный и без любых обязательств). Нажмите «на контрольную сумму
    Поиска онлайн». Проект будет сжат и загружен на сервер EVC (требуется интернет
    связь). Несколько секунд спустя, Вы получите ответ, где говорят Вам, какой модуль
    контрольной суммы будет работать с Вашими данными.
    Важно:
    Некоторые модули контрольной суммы требуют неизмененной оригинальной версии.
    Это означает, что Вы, должны будете, загрузить оригинальные данные от автомобиля
    как в оригинальной версии в проект WinOLS. Иначе контрольная сумма не может быть
    признана или может вычислена неправильно.

    — — — Добавлено — — —

    Чтобы искать последовательность 10000,10000,10000,10000,10000 десятичные значения, необходимо выставить

    данные 16 bit, шеснадцатеричные/десятичные значения, lo/hi структура (понажимай и данные примут нужный вид)

    все эти кнопки уже выведены на панель сверху примерно посреди.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

    — — — Добавлено — — —

    Чувствую модераторы будут ругаться ….

    — — — Добавлено — — —

    Сообщение от nick1605

    Это я понял, речь о том если что то накорячил в копии и после заливки это проявилось какими то косяками, есть ли возможность отката или процессы в принципе могут быть и необратимые?

    MPPS сливаем калибровки и с ними работаем, но очень аккуратно. Завалить прошивку можно конечно. Восстановить можно, но я думаю — ДОРОГО будет.

    ChipExplorer 2 Professional

    1. Просмотр значений калибровок в виде 2-х и 3-х мерных графиков.
    2. Расширенное редактирование 2-х и 3-х мерных графиков.
    3. Визуальное сравнение прошивок.
    4. Одновременная работа с несколькими проектами.
    5. Экспорт, импорт значений калибровок.
    6. Визуализация прошивки в виде графика.
    7. Поиск параметров в визуальном режиме
    8. Создание пользователем собственных модулей калибровок
    9. Создание модулей калибровок для использования сторонними пользователями.
    10. Автоматический поиск параметров с использованием правил подобия
    11. Поддержка более пересчета контрольной суммы у более чем 40 типов ЭБУ.
    12. Модули калибровок для ЭБУ автомобилей украинского и российского производства в базовой версии.
    13. Защита от несанкционированного использования модулей калибровок и проектов.

    ChipExplorer поддерживает пересчет контрольных сумм прошивок для следующих типов ЭБУ: Январь 4, Январь 5, Январь 7.2, VS 5.1, Bosch M1.5.4, Bosch ME9.1, EMS3132, EMS3134, HV240, MR140, IAW5SF, IEFI6, ITMS6F, M74, Bosch M7.9.7, Bosch M7.9.8, Bosch ME7.9.9, Микас 10.3, Микас 10.3(+)/Микас 11.3, Микас 11.4, Микас 7.1, Микас 7.6, Delphi MT20U, Delphi MT20U2, Delphi MT22, Delphi MT38, Sagem 3000, Siemens SIM2K-34VR, Siemens, Siemens SIM2K-140/141/341, Siemens SIM2K-47, Siemens SIMK31, Siemens SIMK43, Siemens SIMK42, Simos 7.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей 1, Simtec 7.5, Simtec 7.6, Simtec 7.5, Simtec 7.6, Sirius D3/D4/D32/D42/D52, Sirius S32, Mitsubishi X M32186, Bosch ME17.x.x, SIM28, DME MS43, Visteon, Микас 12.3, Delphi MT80.

    Встроенная поддержка редактирования прошивок следующих типов ЭБУ: Январь 4, Январь 5, Январь 7.2, VS 5.1, Bosch M1.5.4, Микас 10.3, Микас 10.3(+)/Микас 11.3, Микас 11.4, Микас 7.1, Микас 7.6.

    При необходимости, можно приобрести дополнительные модули калибровок.

    Лицензия Professional предусматривает создание и распостранение созданных пользователем модулей калибровок и проектов.

    embedded — как обойти контрольную сумму CRC в заголовке прошивки

    У меня есть эта прошивка Ubiquiti, я успешно извлекаю прошивку и перестраиваю ее, я изменяю файловую систему Squashfs и перестраиваю ее с помощью скрипта build-firmware.sh из firmware-mod-kit, но у меня проблема с CRC. значение, так как я могу обойти контрольную сумму CRC и что это за «таблица полиномов CRC32, с прямым порядком байтов»

    это вывод для оригинальной прошивки

      Время сканирования: 2016-03-16 11:23:35
    Целевой файл: / home / security / Desktop / XW.v5.6.3-beta3.28377.150922.1830_2.bin
    Контрольная сумма MD5: c7227eeeb31a1c5a8fbcbfc7f70587f0
    Подписи: 351
    ДЕСЯТИЧНОЕ ШЕСТИГРАННОЕ ОПИСАНИЕ
    -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------
    0 0x0 Заголовок прошивки Ubiquiti, размер заголовка: 264 байта, ~ CRC32: 0xB49B5747, версия: «XW.ar934x.v5.6.3-beta3.28377.150922.1830»
    260 0x104 Заголовок раздела Ubiquiti, размер заголовка: 56 байт, имя: "PARTu-boot", базовый адрес: 0x00000000, размер данных: 0 байт
    127444 0x1F1D4 Сертификат в формате DER (x509 v3), длина заголовка: 4, длина последовательности: 64
    151956 0x25194 Строка версии U-Boot, «U-Boot 1.1.4-s958 (10 июня 2015 г. - 10:56:20) "
    152244 0x252B4 Таблица полиномов CRC32, прямой порядок байтов
    222808 0x36658 Таблица полиномов CRC32, прямой порядок байтов
    225032 0x36F08 Конечный заголовок Ubiquiti, размер заголовка: 12 байт, совокупный ~ CRC32: 0x454E442E
    228848 0x37DF0 Заголовок раздела Ubiquiti, размер заголовка: 56 байт, имя: «PARTkernel», базовый адрес: 0x00000001, размер данных: -2147475456 байт
    228912 0x37E30 u Заголовок изображения, размер заголовка: 64 байта, CRC заголовка: 0x4A2F55E8, создано: 2015-09-22 15:31:31, размер изображения: 952264 байта, адрес данных: 0x80002000, точка входа: 0x80002000, CRC данных: 0x533245A9, ОС: Linux, ЦП: MIPS, тип образа: Образ ядра ОС, тип сжатия: lzma, имя образа: «MIPS Ubiquiti Linux-2.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей 6.32.67 "
    228976 0x37E70 Сжатые данные LZMA, свойства: 0x5D, размер словаря: 8388608 байтов, несжатый размер: 2783164 байта
    1181240 0x120638 Заголовок раздела Ubiquiti, размер заголовка: 56 байт, имя: «PARTrootfs», базовый адрес: 0x00000002, размер данных: 0 байт
    1181304 0x120678 Файловая система Squashfs, прямой порядок байтов, версия 4.0, сжатие: lzma, размер: 5877613 байт, 1185 инодов, размер блока: 131072 байта, создано: 2015-09-22 15:31:33
    7210680 0x6E06B8 gzip сжатые данные из Unix, последнее изменение: 2015-09-22 15:30:15
      

    вывод для модифицированной прошивки находится здесь http: // pastebin.com / uWxG59pu
    * также могу я сделать поддельный CRC, чтобы он выглядел как исходное значение

    [OpenWrt Wiki] Проверка двоичного кода прошивки OpenWrt

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

    Ниже вы найдете инструкции по

    1. Как получить контрольную сумму ссылки

    2. Как посчитать контрольную сумму загруженного файла

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

    Если контрольная сумма не совпадает, загрузите файл прошивки еще раз и сравните его еще раз.
    Если контрольная сумма по-прежнему неверна при повторных попытках, обратитесь за помощью на форумы OpenWrt.

    1. Получение контрольной суммы ссылки

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

    1. Найдите загруженный файл. Строка в столбце sha256sum — это контрольная сумма.Например. 4686a0254fbd44b3d0e8ffd66ac7aba5836fe7f0847bdf7c1bf82281f95f08fb

    2.

    Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Расчет контрольной суммы скачанной прошивки

    Окна

    Чтобы использовать встроенный certutil :

    1. Щелкните значок Windows, введите «cmd» и нажмите Enter.

    2. Выполнить (при условии, что вы загрузили файл в папку «Загрузки»):
       certutil -hashfile "% USERPROFILE% \ Downloads \ openwrt-file-name-here" sha256 
    3. Это напечатает контрольную сумму, подобную этой (имя файла, за которым следует строка с буквами и цифрами),
       SHA256-Хеш файла C: \ Users \ USERNAME \ Downloads \ openwrt-18.06.1 -...- factory.bin:
      79 f9 4e fa d3 2c 14 8f f1 95 3f 09 6d 98 c7 41 c0 ff 8f 7e b4 68 8c 9d 5b f9 fb 01 c0 90 fb ab 
    4. Удалите пробелы из этого вывода контрольной суммы (например, используя функцию замены в блокноте):
       79f94efad32c148ff1953f096d98c741c0ff8f7eb4688c9d5bf9fb01c090fbab 
    5. Убедитесь, что строка контрольной суммы без пробелов соответствует той, которую вы можете найти в поле sha256sums на странице загрузки, которую вы получили, следуя приведенным выше инструкциям.

    Mac

    Mac имеет встроенный инструмент для проверки сумм sha256, но у него нет графического пользовательского интерфейса, поэтому нам придется использовать Терминал для взаимодействия с ним.

    1. Щелкните значок Finder в Dock.

    2. Щелкните Приложения в списке избранного.

    3. Найдите папку «Утилиты» и щелкните, чтобы открыть ее.

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

    5. Откройте окно терминала и выполните (при условии, что вы загрузили файл на рабочий стол):
       shasum -a 256 ./Desktop/file-name-here 
    6. он напечатает что-то вроде этого (строка с буквами и цифрами, за которой следует имя файла),
       1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76
      openwrt-18.06.1 -...- sysupgrade.bin 
    7. Убедитесь, что строка контрольной суммы соответствует той, которую вы можете найти в поле sha256sums на странице загрузки, которую вы получили, следуя приведенным выше инструкциям.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

    Linux

    графический интерфейс

    Некоторые файловые менеджеры (дельфин и другие, более мощные, используемые в пользовательском интерфейсе KDE) предлагают эту функцию в окне свойств файла (щелкните файл правой кнопкой мыши, выберите «Свойства», щелкните вкладку «Контрольные суммы», эта вкладка отображается только для двоичных файлов, как образы прошивки).Он предложит кнопки для вычисления sha256sum и поле, в которое вы можете вставить строку SHA256 из файла sha256sums, чтобы убедиться, что она верна.

    Интерфейс командной строки (CLI)
    1. В окне терминала выполните
       sha256sum ./Desktop/file-name-here 
    2. Это напечатает что-то вроде этого:
       1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76
      openwrt-18.06.1 -...- sysupgrade.bin 
    3. Убедитесь, что строка контрольной суммы совпадает с той, которую вы можете найти в поле sha256sums на странице загрузки, которую вы получили, следуя приведенным выше инструкциям.

    Этот веб-сайт использует файлы cookie. Используя веб-сайт, вы соглашаетесь с хранением файлов cookie на вашем компьютере. Также вы подтверждаете, что прочитали и поняли нашу Политику конфиденциальности. Если вы не согласны, покиньте сайт.OKПодробнее о файлах cookie

    FortiGate HA-Cluster Устранение неполадок с использованием контрольных сумм

    Устранение неполадок FortiGate HA-Cluster с использованием контрольных сумм

    Сравнение контрольных сумм блоков кластера

    Вы можете использовать команду Diagnose sys ha checkum show для сравнения контрольных сумм конфигурации всех блоков кластера.Выходные данные этой команды показывают контрольные суммы, помеченные global и все , а также контрольные суммы для каждого из VDOM, включая корень VDOM. Команда get system ha-nonsync-csum может использоваться для отображения аналогичной информации; однако эта команда предназначена для использования FortiManager.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей

    Контрольные суммы основного и подчиненного модулей должны быть одинаковыми. Если это не так, вы можете использовать команду execute ha synchronize start для принудительной синхронизации.
    Следующий вывод команды предназначен для основного блока кластера, в котором не включено несколько VDOM:

    диагностика системы ha контрольная сумма показать

    is_manage_master () = 1, is_root_master () = 1

    debugzone

    глобальный: a0 7f a7 ff ac 00 d5 b6 82 37 cc 13 3e 0b 9b 77

    корень: 43 72 47 68 7b da 81 17 c8 f5 10 dd fd 6b e9 57

    все: c5 90 ed 22 24 3e 96 06 44 35 b6 63 7c 84 88 d5

    контрольная сумма

    глобальный: a0 7f a7 ff ac 00 d5 b6 82 37 cc 13 3e 0b 9b 77

    корень: 43 72 47 68 7b da 81 17 c8 f5 10 dd fd 6b e9 57

    все: c5 90 ed 22 24 3e 96 06 44 35 b6 63 7c 84 88 d5

    Следующий вывод команды предназначен для подчиненного устройства того же кластера:

    диагностика системы ha контрольная сумма показать

    is_manage_master () = 0, is_root_master () = 0

    debugzone

    глобальный: a0 7f a7 ff ac 00 d5 b6 82 37 cc 13 3e 0b 9b 77

    корень: 43 72 47 68 7b da 81 17 c8 f5 10 dd fd 6b e9 57

    все: c5 90 ed 22 24 3e 96 06 44 35 b6 63 7c 84 88 d5

    контрольная сумма

    глобальный: a0 7f a7 ff ac 00 d5 b6 82 37 cc 13 3e 0b 9b 77

    корень: 43 72 47 68 7b da 81 17 c8 f5 10 dd fd 6b e9 57

    все: c5 90 ed 22 24 3e 96 06 44 35 b6 63 7c 84 88 d5

    Следующий пример
    показывает использование этой команды для основного блока кластера с несколькими
    ВДОМы.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Добавлены два VDOM с именами test и Eng_vdm .
    От основного блока:

    конфиг глобальный

    диагностика системы ha контрольная сумма показать

    is_manage_master () = 1, is_root_master () = 1

    debugzone

    глобальный: 65 75 88 97 2d 58 1b bf 38 d3 3d 52 5b 0e 30 a9

    тест: a5 16 34 8c 7a 46 d6 a4 1e 1f c8 64 ec 1b 53 fe

    корень: 3c 12 45 98 69 f2 d8 08 24 cf 02 ea 71 57 a7 01

    Eng_vdm: 64 51 7c 58 97 79 b1 b3 b3 ed 5c ec cd 07 74 09

    все: 30 68 77 82 a1 5d 13 99 d1 42 a3 2f 9f b9 15 53

    контрольная сумма

    глобальный: 65 75 88 97 2d 58 1b bf 38 d3 3d 52 5b 0e 30 a9

    тест: a5 16 34 8c 7a 46 d6 a4 1e 1f c8 64 ec 1b 53 fe

    корень: 3c 12 45 98 69 f2 d8 08 24 cf 02 ea 71 57 a7 01

    Eng_vdm: 64 51 7c 58 97 79 b1 b3 b3 ed 5c ec cd 07 74 09

    все: 30 68 77 82 a1 5d 13 99 d1 42 a3 2f 9f b9 15 53

    Из подчиненного подразделения:

    конфиг глобальный

    диагностика системы ha контрольная сумма показать

    is_manage_master () = 0, is_root_master () = 0

    debugzone

    глобальный: 65 75 88 97 2d 58 1b bf 38 d3 3d 52 5b 0e 30 a9

    тест: a5 16 34 8c 7a 46 d6 a4 1e 1f c8 64 ec 1b 53 fe

    корень: 3c 12 45 98 69 f2 d8 08 24 cf 02 ea 71 57 a7 01

    Eng_vdm: 64 51 7c 58 97 79 b1 b3 b3 ed 5c ec cd 07 74 09

    все: 30 68 77 82 a1 5d 13 99 d1 42 a3 2f 9f b9 15 53

    контрольная сумма

    глобальный: 65 75 88 97 2d 58 1b bf 38 d3 3d 52 5b 0e 30 a9

    тест: a5 16 34 8c 7a 46 d6 a4 1e 1f c8 64 ec 1b 53 fe

    корень: 3c 12 45 98 69 f2 d8 08 24 cf 02 ea 71 57 a7 01

    Eng_vdm: 64 51 7c 58 97 79 b1 b3 b3 ed 5c ec cd 07 74 09

    все: 30 68 77 82 a1 5d 13 99 d1 42 a3 2f 9f b9 15 53

    Как диагностировать рассинхронизацию сообщений высокой доступности

    В этом разделе описывается, как использовать команды Diagnose sys ha контрольная сумма, показать и Diagnose debug , чтобы диагностировать причину сообщений о рассинхронизации HA.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей
    Если синхронизация высокой доступности не удалась, используйте следующие процедуры на каждом кластере, чтобы найти причину.

    Чтобы определить, почему не происходит синхронизация высокой доступности
    1. Подключитесь к CLI каждого кластерного модуля, подключившись к консольному порту.
    2. Введите следующие команды, чтобы включить отладку и отобразить сообщения о рассинхронизации HA.

    диагностировать отладку включить

    диагностика отметки времени консоли отладки включить

    диагностика отладки приложения hatalk -1

    диагностировать приложение отладки hasync -1

    Соберите вывод консоли и сравните сообщения о рассинхронизации с информацией в таблице сообщений о рассинхронизированных объектах высокой доступности и объектах конфигурации, на которые они ссылаются.

    1. Введите следующие команды, чтобы отключить отладку.

    диагностировать отладку отключить

    диагностика сброса отладки

    Чтобы определить, какая часть конфигурации вызывает проблему

    Если предыдущая процедура отображает сообщения, содержащие объект синхронизации 0x30 (например, HA_SYNC_SETTING_CONFIGURATION = 0x03 )
    есть проблема синхронизации с конфигурацией. Использовать
    следующие шаги, чтобы определить часть конфигурации, которая
    вызывая проблему.
    Если ваш кластер состоит
    двух кластерных блоков, используйте эту процедуру для записи конфигурации
    контрольные суммы для каждого блока. Если ваш кластер состоит более чем из двух
    блоки кластера, повторите эту процедуру для всех блоков кластера, которые вернули
    сообщения, которые включают сообщения объекта синхронизации 0x30.

    1. Подключитесь к CLI каждого кластерного модуля, подключившись к консольному порту.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей
    2. Введите следующую команду, чтобы включить захват терминала

    диагностировать отладку включить

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

    выполнить ha sync stop

    1. Введите следующую команду для отображения контрольных сумм конфигурации.

    диагностика системы ha контрольная сумма показать глобальный

    1. Скопируйте вывод в текстовый файл.
    2. Повторите для всех затронутых юнитов.
    3. Сравните текстовый файл из первичного блока с текстовым файлом из каждого блока кластера, чтобы найти контрольные суммы, которые не совпадают.

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

    1. Повторите для корневого VDOM:

    диагностика sys ha контрольная сумма показать корень

    1. Повторить для всех VDOM (если включена конфигурация нескольких VDOM):
    2. диагностика sys ha контрольная сумма покажет

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

    Например, чтобы
    отображать контрольные суммы конфигурации, связанные с системой, в корневом VDOM или
    контрольные суммы, относящиеся к журналу, в глобальной конфигурации:

    диагностировать sys ha контрольную сумму корня | система grep

    диагностика sys ha chechsum global | журнал grep

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

    1. Попытка
      удалить / изменить часть конфигурации, которая вызывает
      проблема.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Вы можете сделать это, внося изменения в конфигурацию из
      основной или подчиненный модуль CLI.
    2. Введите следующие команды, чтобы начать настройку высокой доступности и остановить отладку:

    выполнить ha sync start

    диагностировать отладку отключить

    диагностика сброса отладки

    Сообщения консоли при сбое синхронизации конфигурации

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

    ведомое устройство не синхронизировано с ведущим, последовательность: 0. (тип 0x3)

    ведомое устройство не синхронизировано с ведущим, последовательность: 1. (тип 0x3)

    ведомое устройство не синхронизировано с ведущим, последовательность: 2. (тип 0x3)

    ведомое устройство не синхронизировано с ведущим, последовательность: 3. (тип 0x3)

    ведомое устройство не синхронизировано с ведущим, последовательность: 4.(тип 0x3)

    глобальное сравнение не соответствует

    Если синхронизация
    возникают проблемы, последовательность сообщений консоли может повторяться и
    снова. Все сообщения включают значение типа (в примере тип 0x3 ). Значение типа может помочь службе поддержки Fortinet диагностировать проблему синхронизации.

    Сообщения об объектах рассинхронизации HA и объекты конфигурации, на которые они ссылаются
    HA_SYNC_SETTING_CONFIGURATION = 0x03 / данные / конфигурация
    HA_SYNC_SETTING_AV = 0x10
    HA_SYNC_SETTING_VIR_DB = 0x11 / и т.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Д. / Vir
    HA_SYNC_SETTING_SHARED_LIB = 0x12 / данные / библиотека / libav.итак
    HA_SYNC_SETTING_SCAN_UNIT = 0x13 / bin / scanunitd
    HA_SYNC_SETTING_IMAP_PRXY = 0x14 / bin / imapd
    HA_SYNC_SETTING_SMTP_PRXY = 0x15 / бин / smtp
    HA_SYNC_SETTING_POP3_PRXY = 0x16 / bin / pop3
    HA_SYNC_SETTING_HTTP_PRXY = 0x17 / bin / thttp
    HA_SYNC_SETTING_FTP_PRXY = 0x18 / бункер / ftpd
    HA_SYNC_SETTING_FCNI = 0x19 / etc / fcni.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей dat
    HA_SYNC_SETTING_FDNI = 0x1a /etc/fdnservers.dat
    HA_SYNC_SETTING_FSCI = 0x1b / etc / sci.dat
    HA_SYNC_SETTING_FSAE = 0x1c /etc/fsae_adgrp.cache
    HA_SYNC_SETTING_IDS = 0x20 / etc / ids.правила
    HA_SYNC_SETTING_IDSUSER_RULES = 0x21 /etc/idsuser.rules
    HA_SYNC_SETTING_IDSCUSTOM = 0x22
    HA_SYNC_SETTING_IDS_MONITOR = 0x23 / bin / ipsmonitor
    HA_SYNC_SETTING_IDS_SENSOR = 0x24 / bin / ipsengine
    HA_SYNC_SETTING_NIDS_LIB = 0x25 / данные / библиотека / libips.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей итак
    HA_SYNC_SETTING_WEBLISTS = 0x30
    HA_SYNC_SETTING_CONTENTFILTER = 0x31 / данные / cmdb / webfilter.меч
    HA_SYNC_SETTING_URLFILTER = 0x32 /data/cmdb/webfilter.urlfilter
    HA_SYNC_SETTING_FTGD_OVRD = 0x33 / данные / cmdb / webfilter.fgtd-ovrd
    HA_SYNC_SETTING_FTGD_LRATING = 0x34 /data/cmdb/webfilter.fgtd-ovrd
    HA_SYNC_SETTING_EMAILLISTS = 0x40
    HA_SYNC_SETTING_EMAILCONTENT = 0x41 / данные / cmdb / spamfilter.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей меч
    HA_SYNC_SETTING_EMAILBWLIST = 0x42 /data/cmdb/spamfilter.emailbwl
    HA_SYNC_SETTING_IPBWL = 0x43 / данные / cmdb / spamfilter.ipbwl
    HA_SYNC_SETTING_MHEADER = 0x44 /data/cmdb/spamfilter.mheader
    HA_SYNC_SETTING_RBL = 0x45 / данные / cmdb / spamfilter. руб.
    HA_SYNC_SETTING_CERT_CONF = 0x50 /etc/cert/cert.conf
    HA_SYNC_SETTING_CERT_CA = 0x51 / etc / cert / ca
    HA_SYNC_SETTING_CERT_LOCAL = 0x52 / etc / cert / local
    HA_SYNC_SETTING_CERT_CRL = 0x53 / и т.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Д. / Cert / crl
    HA_SYNC_SETTING_DB_VER = 0x55
    HA_GET_DETAIL_CSUM = 0x71
    HA_SYNC_CC_SIG = 0x75 / etc / cc_sig.dat
    HA_SYNC_CC_OP = 0x76 / etc / cc_op
    HA_SYNC_CC_MAIN = 0x77 / и т. Д. / Cc_main
    HA_SYNC_FTGD_CAT_LIST = 0x7a / migadmin / webfilter / ublock / ftgd / data /

    Синхронизация конфигурации

    FGCP использует
    комбинация инкрементальной и периодической синхронизации, чтобы убедиться
    что конфигурация всех блоков кластера синхронизирована с конфигурацией
    первичный блок.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей
    Следующие настройки не синхронизируются между блоками кластера:

    • HA override.
    • Приоритет устройства высокой доступности.
    • Приоритет виртуального кластера.
    • Имя хоста FortiGate.
    • Настройка приоритета высокой доступности для конфигурации эхо-сервера (или обнаружения неработающего шлюза).
    • Параметры системного интерфейса зарезервированного интерфейса управления высокой доступности.
    • Маршрут HA по умолчанию для зарезервированного интерфейса управления, установленный с помощью параметра ha-mgmt-interface-gateway команды config system ha .

    Первичный блок синхронизирует все остальные параметры конфигурации, включая другие параметры конфигурации высокой доступности.
    Все действия по синхронизации происходят по каналу контрольного сигнала HA с использованием пакетов TCP / 703 и UDP / 703.

    Пересчет контрольных сумм для устранения рассинхронизации сообщений

    Иногда ошибка может
    возникают при вычислении контрольных сумм кластером. Как результат
    эта ошибка вычисления консоль CLI могла отображать ошибку рассинхронизации
    сообщения, даже если в остальном кластер работает нормально.Ты
    может также иногда видеть ошибки вычисления контрольной суммы в выходных данных команды Diagnose Checksum , когда контрольные суммы, перечисленные в выходных данных debugzone , не совпадают с контрольными суммами в части выходных данных checkum .
    Одно решение для этого
    Проблема могла заключаться в пересчете контрольных сумм. Пересчитанный
    контрольные суммы должны совпадать, и сообщения об ошибках рассинхронизации должны прекратиться
    появляется.
    Вы можете использовать следующую команду для пересчета контрольных сумм HA:

    диагностировать систему ha пересчитать контрольную сумму [ | global]

    Просто введите команду
    без опций пересчитывает все контрольные суммы.Пересчет контрольной суммы прошивки: Вопрос По Контрольным Суммам. - Чип-тюнинг бензиновых и дизельных автомобилей Вы можете указать имя VDOM
    просто пересчитать контрольные суммы для этого VDOM. Вы также можете ввести global , чтобы пересчитать глобальную контрольную сумму.

    Отключение автоматической синхронизации конфигурации

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

    конфигурационная система ha

    установить sync-config disable

    конец

    Когда эта опция
    отключен кластер больше не синхронизирует изменения конфигурации.Если
    происходит сбой устройства, новый основной блок может не иметь того же
    конфигурация неисправного основного блока. В результате новая первичная
    устройство может обрабатывать сеансы по-разному или может не работать в сети
    таким же образом.
    В большинстве случаев вам следует
    не отключать автоматическую синхронизацию конфигурации. Однако если вы
    Если эта функция отключена, вы можете использовать команду execute ha synchronize , чтобы вручную синхронизировать конфигурацию подчиненного устройства с конфигурацией основного устройства.
    Вы должны ввести execute ha synchronize команд от подчиненного устройства, которое вы хотите синхронизировать с основным устройством. Используйте команду execute ha manage для доступа к интерфейсу командной строки подчиненного устройства.
    Например, чтобы получить доступ
    первый подчиненный блок и принудительную синхронизацию в любое время, даже
    если автоматическая синхронизация отключена, введите:

    выполнить управление 0

    выполнить ha synchronize start

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

    выполнить ha synchronize stop

    Инкрементальная синхронизация

    Когда вы входите в
    кластерный графический интерфейс или интерфейс командной строки для внесения изменений в конфигурацию, вы на самом деле
    вход в основной блок. Все изменения вашей конфигурации
    сначала сделал первичный блок. Тогда инкрементная синхронизация
    немедленно синхронизирует эти изменения со всеми подчиненными подразделениями.

    Когда вы входите в интерфейс командной строки подчиненного устройства (например, используя , выполните ha manage )
    все изменения конфигурации, которые вы вносите в подчиненное устройство
    также немедленно синхронизируются со всеми блоками кластера, включая
    первичный блок, используя тот же процесс.
    Инкрементальный
    синхронизация также синхронизирует другую динамическую конфигурацию
    информация, такая как база данных аренды адресов DHCP-сервера, маршрутизация
    обновления таблиц, IPsec SA, таблицы MAC-адресов и т. д. См. Раздел Совместимость FortiGate HA с DHCP и PPPoE для получения дополнительной информации о синхронизации аренды адресов DHCP-сервера и Синхронизация таблиц маршрутизации ядра для получения информации об обновлениях таблиц маршрутизации.

    При внесении изменений
    в конфигурацию кластера инкрементальная синхронизация отправляет
    такое же изменение конфигурации для всех других кластерных единиц через HA
    ссылка сердцебиения.Процесс синхронизации высокой доступности выполняется на каждом
    кластерный модуль получает изменение конфигурации и применяет его к
    кластерный блок. Процесс синхронизации HA делает конфигурацию
    изменить, введя команду CLI, которая, похоже, вводится
    администратор, который внес изменения в конфигурацию в первую очередь.

    Синхронизация занимает
    молча, и никакие сообщения журнала не записываются о
    синхронизация активности. Однако сообщения журнала могут быть записаны
    кластерные блоки, когда процесс синхронизации вводит команды CLI.Ты
    можно видеть эти сообщения журнала на подчиненных единицах, если вы включите событие
    logging и установите минимальный уровень серьезности на Информация , ​​а затем проверьте сообщения журнала событий, записываемые кластерными модулями, когда вы вносите изменения в конфигурацию.
    Вы также можете видеть эти сообщения журнала на основном устройстве, если вы вносите изменения в конфигурацию из подчиненного устройства.

    Периодическая синхронизация

    Инкрементальный
    синхронизация гарантирует, что администратор выполняет настройку
    При изменении конфигурации все блоки кластера остаются прежними.Однако ряд факторов может привести к отключению одного или нескольких блоков кластера.
    не синхронизирован с основным устройством. Например, если вы добавите новый блок
    к функционирующему кластеру, конфигурация этого нового блока не будет
    соответствовать конфигурации других блоков кластера. Непрактично
    используйте инкрементную синхронизацию, чтобы изменить конфигурацию нового
    Блок.

    Периодическая синхронизация
    это механизм, который ищет и устраняет проблемы синхронизации.
    Каждую минуту кластер сравнивает контрольную сумму файла конфигурации
    первичный блок с контрольными суммами файла конфигурации каждого из
    подчиненные подразделения.Если контрольные суммы всех подчиненных единиц такие же, как
    контрольная сумма первичного блока, все блоки кластера считаются синхронизированными.
    Если один или несколько из
    контрольные суммы подчиненного блока не совпадают с контрольной суммой первичного блока,
    конфигурация подчиненного подразделения считается не синхронизированной с
    первичный блок. Контрольная сумма несинхронизированного подчиненного устройства
    проверял снова каждые 15 секунд. Эта повторная проверка происходит в том случае, если
    конфигурации не синхронизированы, потому что добавочная конфигурация
    последовательность не завершена.Если контрольные суммы не совпадают после 5 проверок
    подчиненное устройство, которое не синхронизировано, получает конфигурацию
    от основного блока. Подчиненный юнит затем перезагружает свой
    конфигурации и возобновляет работу в качестве подчиненного подразделения с тем же
    конфигурация в качестве основного устройства.
    Конфигурация
    подчиненное подразделение сбрасывается таким образом, потому что, когда подчиненное подразделение
    конфигурация не синхронизируется с конфигурацией основного устройства.
    не эффективный способ определить различия в конфигурации
    и исправить их.Сброс конфигурации подчиненного устройства
    становится наиболее эффективным способом повторной синхронизации подчиненного устройства.
    Требуется синхронизация
    что все блоки кластера используют одну и ту же сборку прошивки FortiOS. Если некоторые
    кластерные блоки используют разные сборки микропрограмм, затем работают нестабильно
    может произойти операция кластера, и блоки кластера не смогут
    синхронизировать правильно.

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

    Сообщения консоли при успешной синхронизации конфигурации

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

    Конфигурация ведомого устройства не синхронизирована с конфигурацией ведущего, последовательность: 0

    Конфигурация ведомого устройства не синхронизирована с конфигурацией ведущего, последовательность: 1

    Конфигурация ведомого устройства не синхронизирована с конфигурацией ведущего, последовательность: 2

    Конфигурация ведомого устройства не синхронизирована с конфигурацией ведущего, последовательность: 3

    Конфигурация ведомого устройства не синхронизирована с конфигурацией ведущего, последовательность: 4

    ведомое устройство начинает синхронизацию с ведущим устройством

    выйти из системы всех пользователей с правами администратора

    ведомому удалось выполнить синхронизацию с ведущим устройством

    srec_examples

    srec_examples

    ИМЯ
    ОПИСАНИЕ
    ПРЕОБРАЗОВАНИЕ ФОРМАТОВ ФАЙЛОВ
    БИНАРНЫХ ФАЙЛОВ
    СОЕДИНЕНИЕ ФАЙЛОВ ВМЕСТЕ
    ОБРЕЗКА ДАННЫХ
    ПЕРЕМЕЩЕНИЕ ДАННЫХ
    ЗАПОЛНЕНИЕ ПУСТОЙ
    ВСТАВКА ПОСТОЯННЫХ ДАННЫХ
    ДАННЫЕ ОБ ИМЕНИ ДАННЫХ
    УПРАВЛЕНИЕ ДАННЫМИ

    УПРАВЛЕНИЕ ДАННЫМИ

    srec_examples
    - примеры использования SRecord

    ОПИСАНИЕ

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

    Настоящее руководство
    страница описывает, как использовать различные входные файлы, входные
    фильтры и входные генераторы. Но это только примеры,
    для более полной информации см. srec_input (1)
    справочная страница.

    Команды
    Слишком длинные строки

    Если вы застряли в операционной системе с абсурдно
    короткие ограничения длины командной строки, некоторые команды, которые
    следовать может быть слишком длинным. Вы можете обойти этот недостаток,
    поместив вашу командную строку в файл, скажем, fred.текст,
    а затем скажите srec_cat (1) прочитать этот файл для
    остальная часть его командной строки, например

    srec_cat
    @ fred.txt

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

    Конечно, ты
    всегда можно было перейти на Linux, который был отстойным
    уже более 22 лет.

    Ваш
    Примеры Требуются

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

    ПРЕОБРАЗОВАНИЕ ФОРМАТОВ ФАЙЛОВ

    Самый простой из
    srec_cat (1) может конвертировать из одного
    Формат файла EPROM в другой. Имейте в виду, как вы
    прочтите этот раздел, что вы можете делать многие из этих вещей
    одновременно в одной команде.Они только вырваны
    отдельно, чтобы их было легче понять.

    Intel в
    Motorola

    Один из простейших примеров - конвертация файлов от Intel
    шестнадцатеричный формат в формат Motorola S-Record:

    srec_cat
    Intel-файл -intel -o
    srec-файл

    Обратите внимание, что
    спецификатор формата следует сразу за именем файла, который он
    описывает. Выберите любые два формата, которые SRecord
    понимает, и может конвертировать между всеми ними. (Кроме
    выходы ассемблера, BASIC, C и FPGA для записи
    Только.)

    Motorola в
    Intel

    Обратное преобразование так же просто:

    srec_cat
    srec-файл -o Intel-файл
    −intel

    По умолчанию
    формат - это формат Motorola S-Record, поэтому его не нужно
    следует указывать после имени файла.

    Разное
    Формы одного формата

    К сожалению, часто бывает, что некоторые дополненные EPROM
    программисты реализуют только часть спецификации
    используется для представления их шестнадцатеричных файлов. Например, некоторые
    компиляторы производят данные Motorola "s19" (т. е.
    Записи данных S1 со стартовыми записями S9, 16-битный адрес
    полей), что было бы нормально, за исключением того, что какой-нибудь болван EPROM
    программисты настаивают на данных Motorola «s37» (которые
    есть, записи данных S3 с начальными записями S7, 32-битный адрес
    поля).

    Возможно
    преобразовать одну форму Motorola в другую с помощью
    - длина адреса опция:

    srec_cat
    short.srec −o long.srec
    −длина -адреса = 4

    Эта команда
    говорит, что на выходе нужно использовать четырехбайтовые (32-битные) адреса.

    Этот раздел
    также применяется к шестнадцатеричным файлам Intel, так как они тоже имеют
    возможность выбора из множества значений ширины адреса. К
    конвертировать из одной формы Intel в другую, используя ту же самую
    - длина адреса опция:

    srec_cat
    i32.шестнадцатеричный -o i16.hex -длина адреса = 3

    Эта команда
    говорит использовать 20-битные сегментированные адреса «i16hex»
    на выходе. По умолчанию длина адреса равна 4.
    (32-битная линейная адресация «i32hex») и
    длина адреса 2 будет запрашивать «i8hex» 16 бит
    адресация.

    Линия
    Длина

    Время от времени вам попадаются слабоумные СППЗУ.
    программист, который не справляется с длинными текстовыми строками, они
    Предположим, что в строке будет только 46 символов
    и barf, когда они видят длины строк по умолчанию,
    srec_cat (1) пишет (или, что еще хуже, получает каракули стека
    и крах).

    Motorola
    Определение формата S-записи допускает до 255 байтов
    полезная нагрузка или строки по 514 символов плюс строка
    прекращение. Все программисты EPROM должны иметь
    достаточно большие строковые буферы, чтобы справиться с записями этого
    большой. Немногие делают.

    Параметр −line-length может использоваться для указания максимального
    длина строки (не включая новую строку), которая будет использоваться в
    выход. Например, 16-байтовые полезные данные для Motorola hex

    srec_cat
    long.srec −o short.s19 −line-length = 46

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

    Блок вывода
    Размер

    Время от времени попадаешься на старинную чепуху.
    Программатор EPROM, который не справляется с длинными данными
    записи, они предполагают, что будет не более 16
    байтов данных на запись и barf, когда они видят значение по умолчанию
    32-байтовые полезные данные, которые записывает srec_cat (1) (или, что еще хуже,
    переполнение буфера приводит к высокой траве, которая рисует
    на вашем EPROM).

    Шестнадцатеричный Intel
    определение формата допускает до 255 байтов данных полезной нагрузки
    за запись.Все программисты EPROM должны иметь
    достаточно большие буферы данных, чтобы справиться с записями этого
    большой. Удачи с этим.

    -Output-Block-Size можно использовать для указания
    размер данных записи, который будет использоваться на выходе. Например, Intel
    шестнадцатеричный с 16-байтовой полезной нагрузкой:

    srec_cat
    long.srec −o short.hex −intel
    −obs = 16

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

    Просто
    Данные, пожалуйста,

    Есть некоторые программисты EPROM, которые могут только
    справляются с записями данных и не могут справиться с заголовком
    записи или записи адреса начала выполнения.Если у вас есть это
    проблема, параметр −data-only может использоваться для
    подавить практически все, кроме данных. Настоящий
    эффект, конечно, зависит от формата, потому что некоторые
    в любом случае у меня нет этих функций.

    - только данные вариант сокращен. Есть четыре
    свойства, которые могут быть - отключены или
    - включить отдельно. См. Srec_cat (1)
    страница руководства для описания - отключенных и
    - включено опций.

    Например,
    вашему неандертальскому программисту EPROM требуется Motorola hex с
    записи заголовка (S0), но без записей подсчета данных (S5).
    Если не использовать параметр −data-only , ​​он отключен
    запись количества данных, но с использованием -data-only
    опция имеет это barf на отсутствующей записи заголовка. С помощью
    −disable = data-count опция оставит
    запись заголовка не повреждена при подавлении подсчета данных
    записывать.

    Данные
    Заголовки

    Команда srec_cat (1) всегда пытается пройти через
    заголовочные записи остаются неизменными, если они присутствуют.Это даже
    пытается сохранить их при изменении формата файла до предела
    форматы файлов способны.

    Если нет
    запись заголовка файла, и вы хотите добавить ее, или вы
    хотите переопределить существующую запись заголовка файла, используйте
    - заголовок = строковый параметр. Вам нужно будет
    заключите строку в кавычки (чтобы изолировать ее от оболочки), если она
    содержит пробелы или метасимволы оболочки.

    Исполнение
    Начальные адреса

    Команда srec_cat (1) всегда пытается пройти через
    начальные адреса выполнения (обычно в конце
    файл), где бы они ни были.Они настроены
    вместе с записями данных по смещению -
    фильтр. Он даже пытается сохранить их во всех форматах файлов.
    изменяется до предела, на который способны форматы файлов.

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

    Обратите внимание:
    начальный адрес выполнения - это другое понятие, чем
    первый адрес в памяти ваших данных.Думайте об этом как о
    Адрес «goto», на который будет переходить монитор
    когда шестигранная нагрузка завершена. Если вы хотите изменить где
    ваши данные начинаются в памяти, используйте −offset
    фильтр.

    Крепление
    Контрольные суммы

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

    Чтобы исправить
    контрольные суммы файла, используйте - игнорировать контрольные суммы
    вариант.Например:

    srec_cat
    broken.srec −ignore-контрольные суммы −o
    fixed.srec

    Контрольные суммы
    в broken.srec анализируются (это все еще и ошибка, если
    они отсутствуют), но не проверяются. Результирующий
    Файл fixed.srec имеет правильные контрольные суммы. В
    - игнорировать контрольные суммы Опция применима только к
    Вход.

    Эта опция может
    использоваться в любом формате файла, который имеет контрольные суммы, включая
    Intel шестнадцатеричный.

    Открытие
    Mystery Formats

    См. Что это за формат? Раздел ниже, чтобы узнать, как
    обнаруживать и преобразовывать загадочные форматы файлов загрузки СППЗУ.

    ДВОИЧНЫЕ ФАЙЛЫ

    Возможно
    для преобразования в двоичные файлы и обратно. Вы даже можете смешивать двоичные файлы
    файлы и другие форматы вместе в одном
    srec_cat (1) команда.

    Письмо
    Двоичные файлы

    Самый простой способ прочитать шестнадцатеричный файл и преобразовать его в
    двоичный файл выглядит так:

    srec_cat
    fred.hex −o fred.bin −binary

    Это гласит
    Шестнадцатеричный файл Motorola fred.srec и записывает его в
    fred.bin как необработанный двоичный файл.

    Обратите внимание, что
    данные помещаются в двоичный файл по байтовому смещению
    указанные адресами в шестнадцатеричном файле.Если есть
    дыры в данных заполняются нулями. Это из
    конечно, общий с выводом компоновщика, где размещен код
    начиная с определенного места в памяти. Например, когда
    у вас есть изображение, которое начинается с 0x100000, первый 1 МБ
    выходной двоичный файл будет нулевым.

    Можно
    автоматически отменить это смещение с помощью команды типа

    srec_cat
    fred.hex −offset - −minimum-addr fred.hex
    −o fred.bin

    Вышеуказанное
    команда работает, компенсируя fred.шестнадцатеричный файл нижний
    в памяти по наименьшему адресу в fred.hex
    данные файла.

    См. Также
    Справочная страница srec_binary (5) для получения дополнительных сведений.

    Чтение
    Двоичные файлы

    Самый простой способ чтения двоичного файла и его преобразования
    выглядит так

    srec_cat
    fred.bin −binary −o fred.srec

    Это гласит
    двоичный файл fred.bin и записывает все свои данные обратно
    снова в виде файла Motorola S-Record.

    Часто это
    двоичный файл находится не совсем там, где вы хотите, в адресе
    пробел, потому что предполагается, что он находится по нулевому адресу.Если
    вам нужно переместить его, используйте −offset
    фильтр.

    srec_cat
    fred.bin −binary −offset 0x10000 −o
    fred.srec

    Вам также понадобится
    чтобы избежать «дырок» в файлах, заполненных
    нуль. Вы можете использовать фильтр −crop , ​​из вас
    можно использовать фильтр −unfill , ​​если вы не
    точно знаю, где находятся данные.

    srec_cat
    fred.bin −binary −unfill 0x00 512 −o
    fred.srec

    Вышеуказанное
    команда удаляет серии нулевых байтов длиной 512 байт
    или дольше.Если ваш файл содержит 1 ГБ начальных нулевых байтов,
    это будет медленным, может быть лучше использовать
    dd (1), чтобы сначала нарезать и нарезать кубиками.

    СОЕДИНЕНИЕ ФАЙЛОВ ВМЕСТЕ

    Команда srec_cat берет свое имя от UNIX
    cat (1), сокращенно от
    «Catenate» или «присоединиться». В
    Команда srec_cat объединяет файлы загрузки СППЗУ.

    Все включено
    Один

    Объединение файлов загрузки СППЗУ в один файл
    просто, просто назовите столько файлов в командной строке, сколько вы
    нужно:

    srec_cat
    infile1 infile2 −o Outfile

    Этот пример
    все файлы Motorola S-Record, потому что это
    формат по умолчанию.У вас может быть несколько форматов в одном
    command, а srec_cat (1) по-прежнему будет работать. Ты
    даже не нужно выводить тот же формат:

    srec_cat
    infile1 - спектр infile2
    −needham \
    −o Outfile −signetics

    Это все
    древние форматы, однако нередко приходится
    смешивать и сопоставлять форматы Intel и Motorola в одном
    проект.

    Наложение
    два файла данных

    Обычно хотят «соединить» два шестнадцатеричных файла
    вместе, без изменения адреса.на предположении
    ни один файл не пересекается с другим. Это простой
    "Слои", компоновщики довольно часто
    вывод основного кода, а потом целая куча релокаций
    и перейти к месту назначения, записав двухслойные файлы.

     srec_cat one.he two.hex −o three.hex 

    Почти всегда вы видите
    ошибка

    srec_cat: two.srec: 49282:
    противоречивое значение 0x00000000 (предыдущее = 0x00, это =
    0x80)

    Это означает, что
    файлы фактически пересекаются, они пытаются установить одинаковые
    место расположения.Вы можете превратить ошибку в предупреждение, используя
    −contradictory-bytes = предупреждение командная строка
    вариант. Но это, вероятно, сгенерирует миллиард
    предупреждения.

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

     srec_cat \
        one.srec −exclude −within two.srec \
        two.srec −exclude −within one.srec \
        −o three.hex 

    В зависимости от
    ваш компоновщик не будет иметь ошибок (но если он хочет
    еще слой, побольше жиггеры-покеры требуется).

    Фильтрация
    После присоединения

    Бывают случаи, когда вы хотите объединить два набора данных
    вместе, а затем примените фильтр к объединенному результату. К
    для этого вы используете круглые скобки.

     srec_cat \
        ’(’ \
            infile - исключить 0xFFF0 0x10000 \
            −generate 0xFFF0 0xFFF8 −repeat-string ’Bananas’ \
        ’)’ \
        −length-b-e 0xFFF8 4 \
        −checksum-neg-b-e 0xFFFC 4 4 \
        −o Outfile 

    Вышеуказанное
    пример команды создает входной файл (с сгенерированным
    область данных исключена) с постоянной строкой.Это связано
    вход затем фильтруется, чтобы добавить длину 4 байта и 4 байта
    контрольная сумма.

    Присоединение
    Сквозной

    Слишком часто диапазоны адресов в файлах загрузки СППЗУ
    будет перекрываться. Если они это сделают, вы получите сообщение об ошибке. Если оба
    файлы начинаются с нулевого адреса, потому что каждый переходит в
    отдельный СППЗУ, возможно, потребуется использовать фильтр смещения:

    srec_cat
    infile1 \
    infile2 −offset 0x80000 \
    −o Outfile

    Иногда ты
    хотите, чтобы два файла точно следовали друг за другом, но вы
    не знаю заранее зачет:

    srec_cat
    infile1 \
    infile2 −offset −maximum-addr
    infile1 \
    −o Outfile

    Обратите внимание, что
    где раньше было число (0x80000), теперь есть
    расчет (−maximum-addr infile1).Это
    возможно в большинстве случаев число может использоваться (также
    −minimum-addr и −range).

    ОБРЕЗКА ДАННЫХ

    Возможно
    для копирования файла загрузки СППЗУ, выбора адресов для сохранения и
    адреса, которые нужно выбросить.

    Что делать
    Keep

    Обычное действие - обрезать данные, чтобы они соответствовали EPROM.
    место расположения. Ваш компоновщик может добавлять другой мусор, которым вы не являетесь.
    заинтересован, например, в месте ОЗУ. В этом
    Например, на границе 2 МБ находится EPROM размером 1 МБ:

    srec_cat
    infile −crop 0x200000 0x300000 \
    −o Outfile

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

    Адрес
    Offset

    Вполне возможно, у вас дебильный программатор СППЗУ, а он
    barfs, если образ СППЗУ не начинается с нуля. К
    узнать, где именно начинается в памяти, используйте
    srec_info (1) команда:

    $
    srec_info example.srec

     Формат: Motorola S-Record
    Заголовок: компоновщик цепочек Extra-Whiz Tool
    Начальный адрес выполнения: 0x00200000
    Данные: 0x200000 - 0x32AAEF
    

    долл. США

    Вместо
    разделите командный файл компоновщика, просто сместив
    адреса:

    srec_cat
    infile −crop 0x200000 0x300000
    −offset −0x200000 \
    −o Outfile

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

    Этот пример
    также демонстрирует, как можно связать входные фильтры
    вместе: сначала обрезка, а затем смещение, все в одном
    команда без необходимости во временных файлах.

    Если хотите
    нужно сместить данные, чтобы начать с нулевого адреса, это
    можно автоматизировать, поэтому вам не нужно знать
    минимальный адрес заранее, используя srec_cat’s
    умение вычислять некоторые вещи в командной строке:

    srec_cat
    infile −offset -
    −minimum-addr infile \
    −o Outfile

    Обратите внимание на пробелы
    по обе стороны от знака минус, они обязательны.

    Что делать
    Выбросить

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

    Например, если
    вы хотите исключить диапазон адресов, в котором серийный
    номер встроенного устройства сохраняется, скажем, 0x20 байт в
    0x100, вы должны использовать такую ​​команду:

    srec_cat
    input.srec −exclude 0x100 0x120 −o
    выход.srec

    В файле output.srec будет дыра в данных в
    необходимые локации.

    Обратите внимание, что вы
    может иметь как −crop , ​​так и −exclude
    в той же командной строке, в зависимости от того, что работает более естественно для
    ваша ситуация.

    Прерывистый
    Диапазоны адресов

    Диапазоны адресов не обязательно должны быть одним диапазоном, вы
    может создать диапазон адресов, используя более одного
    пара.

    srec_cat
    infile −crop 0x100 0x200 0x1000 0x1200 \

    −o Outfile

    Этот фильтр
    приводит к данным из 0x100..0x1FF и данные из
    0x1000..0x1200 пройти, остальное отбрасывается. Это
    более эффективен, чем соединение −crop и
    - исключить фильтр вместе.

    ДВИЖЕНИЕ ПО ВСЕМУ

    Это также
    можно изменить адрес записей данных, как
    вперед и назад. Также можно переставить где
    записи данных помещаются в память.

    Смещение
    Фильтр

    - смещение = числовой фильтр работает на
    адреса записей.Если число положительное,
    адреса перемещаются в памяти на много байтов выше, отрицательное значение
    значения движутся ниже.

    srec_cat
    infile −crop 0x200000 0x300000
    −offset −0x200000 \
    −o Outfile

    Вышеуказанное
    пример перемещает блок данных размером 1 МБ по адресу 0x200000 до нуля
    (смещение отрицательное) и отбрасывает остальную часть
    данные.

    байт
    Замена

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

    srec_cat
    infile -byte-swap 4 -o
    Outfile

    Это обратное
    байты в 32-битных значениях (4 байта). По умолчанию, если вы
    не указывать ширину, это перевернуть байты в 16 бит
    значения (2 байта). На самом деле вы можете использовать любое странное значение, которое вы
    например, это даже не обязательно должно быть степенью 2. Возможно
    Однажды могут пригодиться 64 бита (8 байтов).

    двоичный
    Вывод

    Вам нужно следить за двоичными файлами на выходе, потому что
    дырки заполнены нулями. Ваша программа размером 100 КБ в
    наверху 32-битной адресуемой памяти будет получен файл размером 4 ГБ.Видеть
    srec_binary (5) о том, как понять и избежать этого
    проблема, обычно с фильтром - смещение .

    Расщепление
    Image

    Если у вас 16-битная шина данных, но вы используете две 8-битные
    EPROM для хранения вашей прошивки, вы можете генерировать четные и
    нечетные изображения с помощью фильтра −SPlit . Предполагая
    ваша прошивка находится в файле firmware.hex, используйте
    следующее:

     srec_cat firmware.hex −split 2 0 −o firmware.even.hex
    srec_cat firmware.hex −split 2 1 −o firmware.odd.hex 

    Это будет
    в результате получатся два необходимых образа СППЗУ. Обратите внимание, что
    выходные адреса делятся на разделенное кратное, поэтому, если
    ваши изображения EPROM имеют определенное смещение (скажем, 0x10000,
    в следующем примере) вам нужно удалить смещение,
    а потом замените ...

     srec_cat firmware.hex \
        −offset −0x10000 −split 2 0 \
        −offset 0x10000 −o firmware.even.hex
    srec_cat firmware.hex \
        −offset −0x10000 −split 2 1 \
        −offset 0x10000 −o firmware.odd.hex 

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

    Чередование

    Второе использование фильтра −SPlit - память
    чередование.

    Вы не
    нужно разбить на байтовые части, вы можете выбрать другие
    размеры. Обычно требуется преобразовать данные шириной 32 бита в
    два набора данных шириной 16 бит.

     srec_cat firmware.hex −split 4 0 2 −o firmware.01.hex
    srec_cat firmware.hex −split 4 2 2 −o firmware.23.hex 

    Это
    относительно просто для понимания, но вы можете использовать еще шире
    полосы.

    В следующем
    Например, оборудование требует, чтобы блоки размером 512 байт
    чередовать 4 EPROM. Создание 4 изображений будет
    сделано следующим образом:

     srec_cat firmware.hex −split 0x800 0x000 0x200 −o firmware.0.hex
    srec_cat firmware.hex -split 0x800 0x200 0x200 -o firmware.1.hex
    srec_cat firmware.hex −split 0x800 0x400 0x200 −o firmware.2.hex
    srec_cat firmware.hex −split 0x800 0x600 0x200 −o firmware.3.hex 

    Асимметричный
    Чередование

    Более своеобразным примером полосатости является микросхема Microchip.
    микроконтроллер dsPIC33F со странным хранилищем памяти
    шаблон, и они могут хранить 3 байта в адресе
    который должен содержать только 2 байта.Результат - шестнадцатеричный файл
    который имеет заполненный нулями старший байт (little-endian), и все
    адреса дублируются по сравнению с тем, что они есть в микросхеме. Здесь
    это пример:

     S1130000000102000405060008090A000C0D0E0098
    S1130010101112001415160018191A001C1D1E00C8
    S1130020202122002425260028292A002C2D2E00F8
    S1130030303132003435360038393A003C3D3E0028 

    Избавиться от
    00 байтов заполнения, оставляя только 3/4 значимых
    байтов, вы также используете разделенный фильтр с его дополнительными
    аргумент ширины, например:

     Пример srec_cat.srec −split 4 0 3 −o no_dross.srec 

    Это приводит к
    файл с удаленными байтами заполнения 00. Это выглядит как
    это:

     S113000000010204050608090A0C0D0E1011121451
    S1130010151618191A1C1D1E2021222425262829EC
    S11300202A2C2D2E30313234353638393A3C3D3E87 

    Обратите внимание, как
    адреса также на 3/4 размера. Вы можете изменить это
    используя −unsplit и −fill = 0
    фильтры.

    Unsplit ING
    Изображения

    Неразделенный фильтр может использоваться для отмены эффектов
    сплит-фильтр.Обратите внимание, что диапазон адресов расширен
    оставляя дырочки между полосами. Используя все полосы,
    вход полностью собран, без каких-либо отверстий.

     srec_cat −o firmware.hex \
        firmware.even.hex −unsplit 2 0 \
        firmware.odd.hex −unsplit 2 1 

    Вышеуказанное
    Пример отменяет предыдущий пример с 16-битной шиной данных. В
    в общем, вы разделяете с теми же параметрами, что и разбиваете
    с участием.

    ЗАПОЛНЕНИЕ ПРОБЕЛОВ

    Часто EPROM
    в загружаемых файлах будут «дыры», места
    куда компилятор и компоновщик ничего не ставили.Для некоторых
    для целей это нормально, а для других целей что-то должно
    делать про дыры.

    Заливка
    Фильтр

    Можно заполнить пробелы, где нет ваших данных
    ложь. Самый простой пример этого заполняет весь
    СППЗУ:

    srec_cat
    infile −fill 0x00 0x200000 0x300000
    −o Outfile

    Этот пример
    заполняет дыры нулями, если таковые имеются. Вы должны указать
    диапазон - с 32-битным адресным пространством, заполнение
    все генерирует огромные файлы нагрузки.

    Если только ты
    хотите заполнить пробелы в ваших данных и не хотите
    залить весь СППЗУ, пробовать:

    srec_cat
    infile −fill 0x00 −over
    infile −o Outfile

    Этот пример
    демонстрирует тот факт, что где бы ни находился диапазон адресов
    указано, что - более и - внутри
    могут быть использованы опции.

    Разливка
    Пробелы

    Обычно требуется «заполнить» образ СППЗУ.
    после того, как вы прочитали его из чипа. Обычно это было
    все дыры заполнены 0xFF (области EPROM вы
    не программа отображается как 0xFF, когда вы их читаете
    назад).

    Избавиться от
    все байты 0xFF в данных, используйте этот фильтр:

    srec_cat
    infile −unfill 0xFF −o
    Outfile

    Это получит
    избавиться от всех байтов 0xFF, включая те, которые вы
    на самом деле хотел туда. Есть два способа справиться с
    это. Во-первых, вы можете указать минимальную длину серии для
    незаполнено:

    srec_cat
    infile −unfill 0xFF 5 −o
    Outfile

    Это говорит о том, что
    прогоны от 1 до 4 байтов 0xFF в порядке, и что дыра должна
    может создаваться только для прогонов 5 или более байтов 0xFF подряд.Второй метод - это повторное заполнение промежуточного
    пробелы:

    srec_cat
    Outfile −fill 0xFF −over
    Outfile \
    −o Outfile2

    Какой метод
    вы выбираете в зависимости от ваших потребностей и формы данных
    в вашем EPROM. Возможно, вам придется комбинировать оба метода.

    Адрес
    Range Padding

    Некоторые форматы данных имеют ширину 16 бит и автоматически заполняются
    с байтами 0xFF, если необходимо заполнить другие
    половина слова, которого нет в данных. Если вам нужно заполнить
    с другим значением вы можете использовать такую ​​команду:

    srec_cat
    infile −fill 0x0A \
    −within infile −range-padding 2
    \
    −o Outfile

    Это дает
    заполнить фильтр диапазона адресов, рассчитанного на основе деталей
    входной файл.Диапазон адресов - это все диапазоны адресов.
    покрыты данными в infile, расширенном вниз (если
    необходимо) в начале каждого поддиапазона до 2-байтового
    кратный и расширенный вверх (при необходимости) в конце
    каждый поддиапазон должен быть кратным 2 байтам. Это также работает для
    большие кратные, например границы страниц размером 1 КБ для флеш-памяти.
    Это заполнение диапазона адресов работает в любом месте диапазона адресов.
    требуется.

    Заполнить
    Copyright

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

    Это
    выполняется с двумя источниками ввода, один из файла данных,
    и тот, который генерируется "на лету".

    srec_cat
    infile \
    −generate ’(’ 0 0x100000 −minus
    −within infile ’)’ \
    −repeat-string ’Авторское право (C) 1812 г. Чайковский.
    ’\
    −o Outfile

    Обратите внимание на
    диапазон адресов для генерации данных: принимает адрес
    диапазон вашего EPROM, в данном случае 1 МБ, начиная с 0, и
    вычитает из него диапазоны адресов, используемые входом
    файл.

    Если хотите
    скрипт это с текущим годом (потому что 1812 немного не
    даты) используйте подстановку вывода оболочки (назад
    клещей) способность:

    srec_cat
    infile \
    −generate ’(’ 0 0x100000 −minus
    −within infile ’)’ \
    −repeat-string "Дата авторских прав (C)’
    +% Чайковский. "\
    −o Outfile

    Строка
    указанное повторяется снова и снова, пока не будет
    залил все дырочки.

    Обфускация
    с шумом

    Иногда вы хотите заполнить изображения СППЗУ шумом, чтобы
    скрыть, где реальные данные заканчиваются и начинаются.Ты можешь сделать
    это с фильтром - случайное заполнение .

    srec_cat
    infile −random-fill 0x200000 0x300000 \

    −o Outfile

    Работает просто
    как фильтр - заполнить , ​​но использует случайные числа
    вместо постоянного байтового значения.

    Заполнить
    16-битные слова

    При заливке изображения постоянным байтовым значением
    не работает, и вам нужно постоянное 16-битное слово
    вместо этого используйте генератор −repeat-data ,
    который требует произвольно длинной последовательности байтов для использования в качестве
    образец заливки:

    srec_cat
    infile \
    −generator ’(’ 0x200000 0x300000
    −minus −within infile
    ’)’ \
    −repeat-data 0x1B 0x08 \
    −o Outfile

    Обратите внимание, как
    диапазон адресов генератора снова избегает
    диапазоны адресов, занятые данными файла.Вы должны сами правильно определить порядок байтов.

    ВСТАВКА ПОСТОЯННЫХ ДАННЫХ

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

    двоичные средства
    Литерал

    Один простой способ - сохранить нужную информацию в файле.
    Чтобы вставить содержимое файла буквально, без
    интерпретация формата, используйте двоичный вход
    формат:

    srec_cat
    infile −binary −o
    Outfile

    Это будет
    возможно, потребуется использовать фильтр смещения для перемещения
    данные туда, где вы действительно хотите, на изображении:

    srec_cat
    infile −binary −offset 0x1234
    −o Outfile

    Это также
    можно использовать стандартный ввод в качестве источника данных, который
    поддается написанию сценария.Например, чтобы вставить
    текущую дату и время в файл загрузки EPROM, вы можете использовать
    труба:

    дата |
    srec_cat - −bin −offset 0xFFE3
    −o Outfile

    Особый
    имя файла «-» означает чтение из
    стандартный ввод. Вывод команды date:
    всегда длиной 29 символов, и показанное смещение поместит
    он находится в верхней части образа EPROM размером 64 КБ.

    Повторяющийся
    Once

    В разделе Fill with Copyright выше показано, как
    повторяйте строку снова и снова.Мы можем использовать один повтор, чтобы
    вставить строку только один раз.

     srec_cat −generate 0xFFE3 0x10000 −repeat-string "’ date ’" \
        −o Outfile 

    Обратите внимание, как
    диапазон адресов для генерации данных точно соответствует
    длина даты (1) размер вывода. Вы можете из
    конечно, добавьте свой входной файл в приведенный выше srec_cat (1)
    команда для привязки вашего образа EPROM вместе с датой
    и время.

    Вставка A
    Long

    Другая возможность - добавить номер фиксации Subversion
    к вашему образу EPROM.В этом примере мы вставляем
    4-байтовое значение с прямым порядком байтов по адресу 0x0008. В
    Номер фиксации Subversion находится в оболочке $ version
    переменная в этом примере:

     srec_cat −generate 0x0008 0x000C −constant-l-e $ версия 4 \
        infile - исключить 0x0008 0x000C \
        −o Outfile 

    Обратите внимание, что мы
    используйте фильтр, чтобы убедиться, что на входе есть дыра, где
    номер версии идет, на всякий случай линкер поставил
    что-то там.

    ДАННЫЕ О ДАННЫХ

    Возможно
    для добавления разнообразных данных о данных к выходным данным.

    Контрольные суммы

    Фильтр −checksum-negative-big-endian может быть
    используется для суммирования данных, а затем вставляется отрицательное значение
    суммировать данные. Это приводит к суммированию до нуля
    когда сама контрольная сумма суммируется, при условии, что сумма
    width соответствует ширине вставленного значения.

    srec_cat
    infile \
    −crop 0 0xFFFFFC \
    −random-fill 0 0xFFFFFC \
    −checksum-neg-b-e 0xFFFFFC 4 4 \
    −o Outfile

    В этом
    Например, у нас есть СППЗУ в самом нижнем мегабайте памяти.Фильтр −crop гарантирует, что мы только суммируем данные
    внутри EPROM, и нигде больше. В
    -Фильтр случайного заполнения заполняет любые дыры, оставшиеся в данных
    со случайными значениями. Наконец, −checksum-neg-b-e
    фильтр вставляет 32-битную (4 байта) контрольную сумму в обратном порядке
    формат в последних 4 байтах образа СППЗУ. Естественно,
    существует также версия этого фильтра с прямым порядком байтов.

    Ваш встроенный
    код может проверить EPROM, используя код C, аналогичный
    следующее:

     беззнаковое длинное * начало = (беззнаковое длинное *) 0;
    беззнаковый длинный * конец = (беззнаковый длинный *) 0x100000;
    беззнаковая длинная сумма = 0;
    в то время как (начало <конец)
        сумма + = * начало ++;
    если (сумма! = 0)
    {
        Ой
    } 

    −checksum-bitnot-big-endian фильтр аналогичен,
    за исключением того, что суммирование по контрольной сумме должно дать значение
    всего один бит (-1).Например, используя шорты, скорее
    чем длинные:

    srec_cat
    infile \
    −crop 0 0xFFFFFE \
    −fill 0xCC 0x00000 0xFFFFFE \
    −checksum-neg-b-e 0xFFFFFE 2 2 \
    −o Outfile

    Если предположить, что вы
    выберите правильный фильтр порядка байтов, ваш встроенный код может
    проверьте EPROM, используя код C, подобный следующему:

     беззнаковое короткое * начало = (беззнаковое короткое *) 0;
    беззнаковый короткий * конец = (беззнаковый короткий *) 0x100000;
    беззнаковая короткая сумма = 0;
    в то время как (начало <конец)
        сумма + = * начало ++;
    если (сумма! = 0xFFFF)
    {
        Ой
    } 

    Также есть
    −checksum-positive-b-e фильтр и соответствующий
    little-endian фильтр, который вставляет простую сумму, и
    который будет проверен в C с помощью теста на равенство.

    srec_cat
    infile \
    −crop 0 0xFFFFFF \
    −fill 0x00 0x00000 0xFFFFFF \
    −checksum-neg-b-e 0xFFFFFF 1 1 \
    −o Outfile

    Если предположить, что вы
    выберите правильный фильтр порядка байтов, ваш встроенный код может
    проверьте EPROM, используя код C, подобный следующему:

     беззнаковый символ * начало = (беззнаковый символ *) 0;
    символ без знака * конец = (символ без знака *) 0xFFFFF;
    беззнаковая сумма символов = 0;
    в то время как (начало <конец)
        сумма + = * начало ++;
    если (сумма! = * конец)
    {
        Ой
    } 

    В 8-битном
    В этом случае не имеет значения, используете ли вы прямой порядок байтов
    или фильтр с прямым порядком байтов.

    Быстрый
    Hex-Dump

    Вы можете посмотреть контрольную сумму ваших данных, используя
    Формат вывода «шестнадцатеричный дамп». Это полезно для
    просмотр расчетных значений или отладка
    srec_cat (1) перед тем, как увековечить ее в
    сценарий.

    srec_cat
    infile \
    −crop 0 0x10000 \
    −fill 0xFF 0x0000 0x10000 \
    −checksum-neg-b-e 0x10000 4 \
    −crop 0x10000 0x10004 \
    −o - −hex-dump

    Эта команда
    читает в файле, проверяет сумму данных и помещает
    контрольная сумма 0x10000, обрезает результат так, чтобы он содержал только
    контрольную сумму, а затем распечатывает контрольную сумму по стандартной
    вывод в классическом шестнадцатеричном формате дампа.Специальный
    имя файла «-» означает «
    стандартный вывод »в этом контексте.

    Циклический
    Проверки избыточности

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

    srec_cat
    infile \
    −crop 0 0xFFFFFC \
    −fill 0x00 0x00000 0xFFFFFC \
    −crc32-b-e 0xFFFFFC \
    −o Outfile

    В приведенном выше
    Например, у нас есть СППЗУ в самом нижнем мегабайте памяти.Фильтр −crop гарантирует, что мы только суммируем
    данные в EPROM, и нигде больше. В
    −fill Фильтр заполняет все дыры, оставшиеся в данных.
    Наконец, фильтр −checksum-neg-b-e вставляет
    32-битная (4 байта) контрольная сумма в формате big-endian в последних 4
    байтов образа СППЗУ. Естественно, есть
    версия этого фильтра с прямым порядком байтов.

    Контрольная сумма
    рассчитывается с использованием стандартной 32-битной CRC. Так как
    SRecord имеет открытый исходный код, вы всегда можете прочитать исходный код
    чтобы увидеть, как это работает.Есть много не-GPL версий этого
    код доступен в Интернете и подходит для встраивания
    в проприетарной прошивке.

    Также есть
    Доступен 16-битный CRC.

    srec_cat
    infile \
    −crop 0 0xFFFFFE \
    −fill 0x00 0x00000 0xFFFFFE \
    −crc16-b-e 0xFFFFFE \
    −o Outfile

    Контрольная сумма
    рассчитывается по формуле CCITT. Потому что SRecord открыт
    исходный код, вы всегда можете прочитать исходный код, чтобы увидеть, как он
    работает. Доступно множество версий этого кода, не относящихся к GPL.
    в Интернете и подходит для встраивания в проприетарные
    прошивка.

    Вы можете посмотреть
    CRC ваших данных, используя «шестнадцатеричный дамп»
    Выходной формат.

    srec_cat
    infile \
    −crop 0 0x10000 \
    −fill 0xFF 0x0000 0x10000 \
    −crc16-b-e 0x10000 \
    −crop 0x10000 0x10002 \
    −o - −hex-dump

    Эта команда
    читает в файле, вычисляет CRC данных и размещает
    CRC на 0x10000, обрезает результат так, чтобы он содержал только
    CRC, а затем выводит контрольную сумму на стандартный вывод в
    классический шестнадцатеричный формат дампа.

    Где мой
    Данные?

    Есть несколько свойств вашего образа EPROM, которые вы
    может пожелать вставить в данные.

    srec_cat
    infile −minimum-b-e 0xFFFE 2 −o
    Outfile

    Вышеуказанное
    пример вставляет минимальный адрес данных (низкий
    вода) в данные, как два байта в обратном порядке
    по адресу 0xFFFE. Сюда входит и сам минимум. Если
    данные уже содержат байты по указанному адресу, вам нужно
    использовать фильтр исключения. Количество байтов по умолчанию равно
    4.

    Также есть
    −minimum-l-e фильтр для вставки прямого порядка байтов
    значения и еще два фильтра, называемые
    −exclusive-minimum-b-e и
    −exclusive-minimum-l-e , ​​которые не включают
    минимум сам по себе при расчете минимальных данных
    адрес.

    srec_cat
    infile -maximum-b-e 0xFFFFFC 4
    −o Outfile

    Вышеуказанное
    пример вставляет максимальный адрес данных (высокий
    water + 1, как и диапазоны адресов) в данные, как
    четыре байта в обратном порядке по адресу 0xFFFFFC.Этот
    включает в себя максимум. Если данные уже содержат
    байтов по заданному адресу, вам нужно использовать
    - исключить фильтр . Количество байтов по умолчанию
    к 4.

    Также есть
    −maximum-l-e фильтр для вставки прямого порядка байтов
    значения и еще два фильтра, называемые
    −exclusive-maximum-b-e и
    −exclusive-maximum-l-e , ​​которые не включают
    максимум себя в расчете максимальных данных
    адрес.

    srec_cat
    infile -length-b-e 0xFFFFFC 4 -o
    Outfile

    Вышеуказанное
    пример вставляет длину данных (высокая вода +
    1 - низкий уровень воды) в данные, как четыре байта в
    порядок обратного порядка байтов по адресу 0xFFFFFC.Это включает
    сама длина. Если данные уже содержат байты в
    длина, вам нужно использовать - исключить
    фильтр. Количество байтов по умолчанию - 4.

    Также есть
    −length-l-e фильтр для вставки
    прямой порядок байтов, а
    −exclusive-length-b-e и
    −exclusive-length-l-e фильтры, которые не
    Включите в расчет саму длину.

    Какой формат
    Это?

    Вы можете получить различную информацию о загрузке СППЗУ.
    файл с помощью команды srec_info (1).Для
    пример:

    $
    srec_info example.srec

     Формат: Motorola S-Record
    Заголовок: «http://srecord.sourceforge.net/»
    Начальный адрес выполнения: 00000000
    Данные: 0000 - 0122
            0456 - 0FFF
    

    долл. США

    Этот пример
    показывает, что файл является Motorola S-Record. Текст в
    печатается заголовок файла вместе с началом выполнения
    адрес. В последнем разделе показаны диапазоны адресов.
    содержащие данные (верхняя граница каждого поддиапазона
    инклюзивная, а не исключительная форма, используемая
    в командной строке.

    $
    srec_info some-weird-file.hex -guess

     Формат: Signetics
    Данные: 0000 - 0122
            0456 - 0FFF
    

    долл. США

    Вышеуказанное
    пример угадывает формат файла загрузки EPROM. Это не
    непогрешимый, но обычно он все делает правильно. Ты можешь использовать
    - угадать везде, где вы дали бы явный
    формат, но он, как правило, медленнее, и по этой причине
    рекомендуемые. Кроме того, для автоматизированных систем сборки вы хотите
    устранение ошибок как можно раньше; если файла нет в
    ожидаемый формат, вы хотите, чтобы он отключился.

    УПРАВЛЕНИЕ ДАННЫМИ

    Возможно
    изменять значения байтов данных несколькими способами.

    srec_cat
    infile −and 0xF0 −o
    Outfile

    Вышеуказанное
    пример выполняет побитовое И байтов данных с
    0xF0 маска. Адреса записей не изменились. я
    не могу придумать, как использовать этот фильтр.

    srec_cat
    infile -или 0x0F -o
    Outfile

    Вышеуказанное
    пример выполняет побитовое ИЛИ байтов данных с
    0x0F бит.Адреса записей не изменились. я
    не могу придумать, как использовать этот фильтр.

    srec_cat
    infile -xor 0xA5 -o
    Outfile

    Вышеуказанное
    пример выполняет побитовое исключающее ИЛИ байтов данных
    с битами 0xA5. Адреса записей не изменились.
    Вы можете использовать это, чтобы скрыть содержимое вашего
    СППЗУ.

    srec_cat
    infile −not −o
    Outfile

    Вышеуказанное
    example выполняет побитовое НЕ байтов данных. В
    адреса записей неизменны.Безопасность
    безвестность?

    АВТОРСКИЕ ПРАВА

    srec_cat
    версия 1.64
    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
    Питер Миллер

    Программа srec_cat поставляется СОВЕРШЕННО БЕЗ ГАРАНТИЙ;
    для получения подробной информации используйте 'srec_cat −VERSion
    Лицензия ». Это бесплатное программное обеспечение, и вы
    могут распространять его при определенных условиях; для
    подробности используйте 'srec_cat −VERSion
    Лицензия ».

    ТЕХНИЧЕСКИЙ ОБСЛУЖИВАНИЕ


    Как работают процессы «проверки» и «записи контрольных сумм на носитель» и почему они необходимы?

    Проблема

    Как работают процессы «проверки» и «записи контрольных сумм на носитель» и почему они необходимы?

    Решение

    Важное примечание. Veritas Technical Services настоятельно рекомендует
    Проверить и
    Записать контрольную сумму на носитель Параметры должны использоваться для всех выполняемых резервных копий.Если
    Проверить после завершения резервного копирования не выбран, успешное резервное копирование только подтверждает, что данные были записаны на ленту или диск; он не проверяет возможность чтения или восстановления ленты / диска с носителя. Так долго как
    Записать контрольные суммы на носитель. выбран, проверка может быть запущена позже. Ошибки проверки ленты могут быть первым признаком неисправности ленты, накопителя, контроллера SCSI или кабеля SCSI. Это также может указывать на устаревшую или несовместимую прошивку устройства.

    Рекомендуется выполнять проверку для всех типов резервных копий. Ленточные носители гораздо более подвержены физическим повреждениям, чем жесткий диск, поэтому данные могут быть записаны неправильно. Простая грязь или пыль также могут повлиять на ленточное резервное копирование, но это не значит, что диск не подвержен физическим повреждениям. Эта проблема может возникать при резервном копировании дисков, но редко.

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

    Проверить после завершения резервного копирования По умолчанию выбран (рис. 1), и когда выбран этот параметр, Backup Exec выполнит операцию с лентой для чтения записанных данных. Это не гарантирует целостности файлов, а только обеспечивает возможность чтения ленты. Если данные, которые копируются на жесткий диск, являются поврежденными, данные на ленте также будут повреждены.Это верно даже при успешной операции проверки.

    Рисунок 1

    Запись контрольных сумм на носитель также выбран по умолчанию (рис. 1) и идет рука об руку с операцией проверки. Во время всех операций записи на ленту (резервное копирование, архивирование и т. Д.) Backup Exec для Windows генерирует и записывает контрольные суммы для всех данных, помещаемых на ленту. Во время всех операций чтения с ленты (каталогизация, восстановление, проверка и т. Д.) Эти контрольные суммы пересчитываются из данных, считанных с ленты, и сравниваются с первоначально рассчитанными контрольными суммами.Создаваемые контрольные суммы используются в процессе проверки, чтобы убедиться в пригодности данных на ленте. Если этот флажок установлен, производительность резервного копирования может немного снизиться, поскольку контрольные суммы вычисляются для каждого потока данных и затем записываются на ленту сразу после потока данных. Если в данных есть ошибка, контрольные суммы не будут совпадать, и программа сообщит об ошибке.

    Данные не сравниваются с исходным файлом на томе или другом источнике, поскольку многие файлы будут изменены с момента окончания резервного копирования определенного файла до начала операции проверки этого файла.Это вызовет множество «ложных срабатываний» при проверке, что может привести к маскировке реальных отказов. Кроме того, время проверки для повторного чтения файлов будет примерно таким же, как и время исходной резервной копии, что сделает невозможным для многих предприятий создание резервной копии и проверку в доступном временном окне. Проверка данных на ленте путем сравнения их с
    Контрольная сумма , ​​вычисленная во время резервного копирования, будет завершена за меньшее время, так как это только чтение ленты (а не чтение тома, для которого создана резервная копия, или запись данных на ленту или диск), а также не будет создавать дополнительную нагрузку на канал диска из-за повторного чтения данные, которые были только что скопированы.

    В Backup Exec эти параметры доступны в
    Свойства задания резервного копирования диалоговое окно в
    Настройки | Общий (Рисунок 2)
    или
    Пункт назначения | Устройство и носитель (Рисунок 3).

    Рисунок 2

    Рисунок 3

    171. VF Offload - документация плана испытаний DPDK

    171,1. Предпосылки для разгрузки контрольной суммы

    При использовании vfio ядро ​​должно быть> = 3.6+ и VT-d должны быть включены в BIOS. Когда
    используя vfio, используйте следующие команды, чтобы загрузить драйвер vfio и связать его
    к тестируемому устройству:

     modprobe vfio
    modprobe vfio-pci
    usertools / dpdk-devbind.py --bind = vfio-pci device_bus_id
     

    Предполагая, что порты 0 и 1 подключены к генератору трафика,
    включить аппаратную разгрузку контрольной суммы rx с помощью «–enable-rx-cksum»,
    запустите testpmd со следующими аргументами:

     ./build/app/testpmd -cffffff -n 1 - -i --burst = 1 --txpt` = 32 \
    --txht = 8 --txwt = 0 --txfreet = 0 --rxfreet = 64 --mbcache = 250 --portmask = 0x5
    --enable-rx-cksum
     

    Установите уровень подробности 1 для отображения информации для каждого полученного пакета:

    Настройка режима пересылки csum :

     testpmd> установить fwd csum
    Установить режим пересылки пакетов csum
     

    Начать пересылку пакетов:

     testpmd> начать
      пересылка пакетов csum - отключение CRC отключено - пакетов / пакет = 32
      кол-во ядер пересылки = 1 - кол-во портов пересылки = 10
      Очереди RX = 1 - RX desc = 128 - Порог свободного RX = 64
      Регистры порога приема: pthresh = 8 hthresh = 8 wthresh = 4
      Очереди TX = 1 - TX desc = 512 - Свободный порог TX = 0
      Регистры порога передачи: pthresh = 32 hthresh = 8 wthresh = 8
     

    Проверьте, сколько пакетов найдено с Bad-ipcsum или Bad-l4csum:

     testpmd> стоп
    ---------------------- Перенаправленная статистика для порта 0 ----------------------
    RX-пакетов: 0 RX-сброшено: 0 RX-total: 0
    Плохой ipcsum: 0 Плохой l4csum: 0
    TX-пакетов: 0 TX-сброшено: 0 TX-total: 0
    -------------------------------------------------- --------------------------
     

    171.2. Контрольный пример: проверка разгрузки контрольной суммы аппаратного обеспечения

    Запустите testpmd и включите разгрузку контрольной суммы на порте rx.

    Настройка режима пересылки csum :

     testpmd> установить fwd csum
    Установить режим пересылки пакетов csum
     

    Включить разгрузку контрольной суммы IPv4 / UDP / TCP / SCTP HW на порте 0:

     testpmd> порт остановить все
    testpmd> csum установить ip hw 0
    testpmd> csum set tcp hw 0
    testpmd> csum установить udp hw 0
    testpmd> csum set sctp hw 0
    testpmd> порт начать все
    testpmd> начать
      пересылка пакетов csum - отключение CRC отключено - пакетов / пакет = 32
      кол-во ядер пересылки = 1 - кол-во портов пересылки = 10
      Очереди RX = 1 - RX desc = 128 - Порог свободного RX = 64
      Регистры порога приема: pthresh = 8 hthresh = 8 wthresh = 4
      Очереди TX = 1 - TX desc = 512 - Свободный порог TX = 0
      Регистры порога передачи: pthresh = 32 hthresh = 8 wthresh = 8
     

    Настройте генератор трафика для отправки нескольких пакетов для следующих
    комбинация: IPv4 / UDP, IPv4 / TCP, IPv4 / SCTP, IPv6 / UDP, IPv6 / TCP.

    Отправлять пакеты с неверной контрольной суммой,
    убедитесь, что dpdk может обработать его и сообщить об ошибке контрольной суммы,
    убедитесь, что такое же количество пакетов правильно получено по трафику
    сторона генератора. И контрольная сумма IPv4, контрольная сумма TCP, контрольная сумма UDP, контрольная сумма SCTP
    пройти проверку тестером.

    Исходный адрес IPv4 не будет изменен testpmd.

    171,3. Тестовый пример: проверка разгрузки контрольной суммы ПО

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

    Настройка режима пересылки csum :

     testpmd> установить fwd csum
    Установить режим пересылки пакетов csum
     

    Включение разгрузки контрольной суммы SW IPv4 / UDP / TCP / SCTP на порте 0:

     testpmd> порт остановить все
    testpmd> csum установить ip sw 0
    testpmd> csum set tcp sw 0
    testpmd> csum установить udp sw 0
    testpmd> csum set sctp sw 0
    testpmd> порт начать все
    testpmd> начать
      пересылка пакетов csum - отключение CRC отключено - пакетов / пакет = 32
      кол-во ядер пересылки = 1 - кол-во портов пересылки = 10
      Очереди RX = 1 - RX desc = 128 - Порог свободного RX = 64
      Регистры порога приема: pthresh = 8 hthresh = 8 wthresh = 4
      Очереди TX = 1 - TX desc = 512 - Свободный порог TX = 0
      Регистры порога передачи: pthresh = 32 hthresh = 8 wthresh = 8
     

    Настройте генератор трафика для отправки нескольких пакетов для следующих
    комбинация: IPv4 / UDP, IPv4 / TCP, IPv6 / UDP, IPv6 / TCP.

    Отправлять пакеты с неверной контрольной суммой,
    убедитесь, что dpdk может обработать его и сообщить об ошибке контрольной суммы,
    убедитесь, что такое же количество пакетов правильно получено по трафику
    сторона генератора. И контрольная сумма IPv4, контрольная сумма TCP, контрольная сумма UDP
    пройти проверку тестером.

    Первый байт исходного IPv4-адреса будет увеличен testpmd. Контрольная сумма
    действительно пересчитывается программными алгоритмами.

    171,4. Предпосылки для TSO

    DUT должен использовать один из портов контроллера Ethernet, подключенный к порту другого.
    устройство, управляемое генератором пакетов Scapy.

    Должен быть известен идентификатор интерфейса Ethernet порта, который будет использовать Scapy.
    На тестере все функции разгрузки должны быть отключены на tx-порту и запускать захват rx-порта:

     ethtool -K  rx off tx off tso off gso off gro off lro off
    ip l set  вверх
    tcpdump -n -e -i <порт rx> -s 0 -w / tmp / cap
     

    На DUT запустите pmd с параметром –enable-rx-cksum. Затем включите TSO на tx-порту
    и контрольная сумма на rx-порту. Тестовые команды ниже:

     # Включить контрольную сумму hw на порте rx
    testpmd> порт остановить все
    testpmd> csum установить ip hw 0
    testpmd> csum set tcp hw 0
    testpmd> csum установить udp hw 0
    testpmd> csum set sctp hw 0
    testpmd> порт начать все
    testpmd> установить fwd csum
    
    # Включить TSO на tx-порту
    testpmd> tso набор 800 1
     

    171.5. Тестовый пример: двигатель csum fwd, используйте TSO

    В этом тесте используется Scapy для отправки одного большого пакета TCP. Пакет дут форвардс
    с включением TSO на tx-порту, в то время как rx-порт включает контрольную сумму. После отправки пакета
    TSO на порт tx, тестер получает несколько небольших пакетов TCP.

    Отключить порт tx с помощью ethtool на тестере:

     ethtool -K  rx off tx off tso off gso off gro off lro off
    ip l set  вверх
     

    Порт RX пакета захвата на тестере:

     tcpdump -n -e -i <порт rx> -s 0 -w / tmp / cap
     

    Запустите приложение userland testpmd на DUT следующим образом:

     testpmd> установить подробный 1
    # Включить контрольную сумму hw на rx-порту
    testpmd> порт остановить все
    testpmd> csum установить ip hw 0
    testpmd> csum set tcp hw 0
    testpmd> csum установить udp hw 0
    testpmd> csum set sctp hw 0
    testpmd> порт начать все
    
    # Включить TSO на tx-порту
    testpmd> tso набор 800 1
    # Установить двигатель fwd и запустить
    
    testpmd> установить fwd csum
    testpmd> начать
     

    Проверить IPv4 () в scapy:

     sendp ([Ether (dst = "% s", src = "52: 00: 00: 00: 00: 00") / IP (src = "192.168.1.1 ", dst =" 192.168.1.2 ") / UDP (sport = 1021, dport = 1021) / Raw (load =" \ x50 "*% s)], iface ="% s ")
     

    Проверить IPv6 () в scapy:

     sendp ([Ether (dst = "% s", src = "52: 00: 00: 00: 00: 00") / IPv6 (src = "FE80: 0: 0: 0: 200: 1FF: FE00: 200 ", dst =" 3555: 5555: 6666: 6666: 7777: 7777: 8888: 8888 ") / UDP (sport = 1021, dport = 1021) / Raw (load =" \ x50 "*% s)], iface = "% s")
     

    OnlineAnalysisConfig - sbnddaq - Fermilab Redmine

    Код онлайн-анализа состоит из трех художественных модулей

    Декодирование¶

    Модуль DaqDecoder - это производитель, который принимает корневой файл искусства с NevisTPCFragments и создает корневой файл искусства, включая rawDigits (полезно для e.грамм. RawHitFinder).

    Варианты конфигурации:

    • roduct_header (bool): следует ли также создавать объект HeaderData (по одному на FEM) для каждого фрагмента, прочитанного в
    • calc_baseline (bool): нужно ли рассчитывать пьедестал. Полученное значение сохраняется в RawDigits, но не вычитается.
    • n_mode_skip (без знака): установить процент значений АЦП, учитываемых при нахождении режима, равным (100 / n_mode_skip)
    • validate_header (bool): запускать ли проверку заголовков.Ошибки выводятся через MessageService.
    • calc_checksum (bool): нужно ли вычислять контрольную сумму для проверки по контрольной сумме прошивки.
    Анализ¶

    Модуль VSTAnalysis и модуль OnlineAnalysis (оба анализатора) являются оболочками для класса Analysis. Класс Analysis принимает RawDigits в качестве входных данных и производит ряд показателей для каждого канала. VSTAnalysis записывает в файл, а OnlineAnalysis записывает в базу данных Redis (используется для онлайн-мониторинга).

    Параметры анализа, используемые обоими модулями:

    • verbose (bool): выводить ли информацию об анализе на печать (Примечание: это очень подробный вариант).
    • threshold_calc (без знака): Метод расчета пороговых значений для обнаружения пика. Параметры:
      • 0: использовать статические пороги, установленные в параметре
      • порогового значения fcl.

      • 1: используйте gauss fitter для вычисления среднеквадратичного значения, затем масштабируйте с помощью параметра threshold_sigma fcl
      • 2: использовать необработанные среднеквадратичные значения сигнала, масштабированные с помощью Trechold_sigma
      • 3: использовать скользящее среднее прошлых среднеквадратичных значений, масштабированных с помощью threshold_sigma
    • n_above_threshold (без знака): количество последовательных выборок АЦП выше порога, необходимого перед объявлением пика
    • noise_range_sampling (unsigned): Метод определения диапазонов для вычисления среднеквадратичных (и других) значений шума.Параметры:
      • 0: предположим, что первые n_noise_samples (параметр fcl) представляют собой образец без сигнала
      • 1: использовать поиск пика для исключения областей сигнала
    • baseline_calc (без знака): Метод определения пьедестала. Параметры:
      • 0: предположим, что пьедестал в каждом канале равен 0.
      • 1: предположим, что пьедестал установлен в RawDigits (т.е. с помощью DaqDecoder)
      • 2: использовать поиск режима для расчета базовой линии
    • Refin_baseline (bool): следует ли пересчитывать пьедестал после обнаружения пика путем взятия среднего значения всех шумовых выборок.Будет произведена более точная базовая линия (особенно при наличии шума большой частоты) за счет некоторого дополнительного времени вычислений.
    • n_mode_skip (без знака): Установите процент значений АЦП, учитываемых при нахождении режима / пьедестала, равным (100 / n_mode_skip)
    • static_input_size (без знака): количество отсчетов АЦП в форме сигнала. Если установлено, немного ускорит вычисления БПФ.
    • n_headers (без знака): количество заголовков для анализа. Если не установлен, код не будет анализировать информацию заголовка.
    • sum_waveforms (bool): следует ли суммировать все формы сигналов по FEM.
    • fft_per_channel (bool): следует ли рассчитывать БПФ для сигнала каждого канала.
    • reduce_data (bool): следует ли записывать ReducedChannelData на диск вместо ChannelData (будет создавать файлы меньшего размера).
    • Timing (bool): распечатывать ли временную информацию при анализе.
    • Производитель

    • (строка): Название производителя цифр

    Возможности онлайн-анализа

    • stream_take (vector ): список шкал времени для усреднения показателей при отправке в Redis.
    • stream_expire (vector ): список времен сохранения метрик в redis. Должен быть такой же длины, как stream_take. Если значение равно 0, оно будет сохранено в Redis навсегда.
    • snapshot_time (без знака): шкала времени (в секундах) между моментальными снимками.
    • hostname (string): Имя хоста базы данных Redis.
    • sub_run_stream (bool): запускать ли поток данных, который обновляет каждую подпрограмму.
    • sub_run_expire (без знака): шкала времени для хранения данных для потока подпрограммы.

    Варианты VSTAnalysis:

    Прочие примечания к конфигурации¶

    Группа разумных параметров по умолчанию установлена ​​в simple_pipeline.fcl и analysis.fcl (для `VSTAnalysis`) и redis_pipeline.fcl (для` OnlineAnalysis`)

    Код анализа должен заранее знать, сколько проводов и FEM / заголовков будет на событие. Количество заголовков может быть установлено параметром конфигурации n_headers fcl. Однако количество проводов (и остальная геометрия детектора) должно быть установлено в ChannelMap.хх Кроме того, перед началом VST необходимо будет установить там отображение каналов «провод -> считывание».

    .