#yocto #patch #bitbake #dts
Вопрос:
Я не гуру Йокто, и я действительно не понимаю всех фоновых и закулисных действий. Но я уверен, что мою идею можно реализовать.
Позвольте мне объяснить:
- У меня есть файл DTS для управления уровнями подсветки дисплея LVDS и всеми процессорами GPIO и т. Д…
- Исходный файл предоставлен поставщиком процессора SMARTC (cpu.dts)
- У меня есть 3 100% разных уровня кандел для тестирования. Почему? приложение, управляющее подсветкой, установит ее на 100%, и на данный момент мы не хотим изменять поведение приложения, но нам нужны 3 регулируемых уровня.
- Я произвел математические расчеты, чтобы установить отображение подсветки для установки в файл DTS для каждого значения кандел для 3 максимальных уровней (200, 300, 500), что легко сделать.
что я сделал:
- Я создал свои файлы 3 .patch с соответствующими изменениями, используя git format-patch …
- В папке «Файлы мета-рецептов» я добавил 3 файла исправлений
- В моем рецепте bbappend я установил файл://xxxx-200-candelas.patch
- Я перекомпилировал (bitbake …), нашел новый сгенерированный dtb в рабочих папках*
- Разкомпилируйте dtb, чтобы убедиться, что он содержит соответствующие изменения (dtb dtc-I….), новые значения здесь
- Вручную, Я:
- скопируйте и переименуйте новый файл cpu.dtb в cpu-200-candelas.dtb
- смонтируйте загрузочный раздел из final .wic (сделано только один раз)
- скопируйте файл в FS
- выполните цикл в точке #3, чтобы изменить файл исправления и перезапустить компиляцию
Хорошо, как только это будет сделано, все будет сделано. Но каждый раз, когда я адаптирую что-то в другие разделы dts, мне приходится перестраивать 3 файла, поэтому мой подход не очень хорош. Это работает, но это расстраивает, потому что, если я изменю другое значение в другие разделы, я застряну, и мне придется перезапустить все для 1 измененного значения.
Итак, в конце, через 40 минут, у меня есть 4 файла с именами: cpu.dtb, cpu-200-candelas.dtb, cpu-300-candelas.dtb, cpu-500-candelas.dtb. Я написал небольшой сценарий для баша «set-max-candelas.sh $1» и этот скрипт принимает значение канделябра в 1 доллар, удаляет cpu.dtb, копирует нужный dtb канделябра в cpu.dtb, перезагружается, и все готово.
Я уверен, что могу сделать что-то лучше, чем это, сгенерировав мои 3 файла dtbs и автоматически поместив их в загрузочный раздел wic без моих «человеческих» действий, но я не знаю, не понимаю, с чего и как начать, кроме как выполнить сценарий, который будет циклически, удалит мой файл bbappend и перезапустит компиляцию, чтобы сгенерировать 3 файла, но добавление в файл wic все равно будет ручным.
Есть какие-нибудь идеи, процессы, примеры, опыт? Любая помощь будет оценена по достоинству.
С уважением,