Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LTIB и контроль версий
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Nich
Здравствуйте!

Недавно начали работать над встроенным софтом для процессора Freescale MPC8308. Естественно по ходу дела возникла необходимость внести изменения в конфигурацию ядра Линукса, в конфигурацию и исходники U-Boot'а. Так как над проектом работает несколько человек, да ещё и в двух странах, возник вопрос, как бы правильно синхронизировать все эти изменения. С LTIB'ом раньше никто дела не имел и как правильно синхронизировать изменения в нём, не знаем. Была мысль тупо положить всю папку в SVN, но во-первых в ней вроде полно всякого лишнего, а во-вторых оказалось, что сгенерированный патч для исходников U-Boot'а вообще лежит в другой директории (/opt/freescale/pkgs).

Уже довольно долго гуглю на эту тему, но пока ничего толкового не нашёл. На форуме Freesсale есть аналогичный вопрос 4-летней давности, к сожалению, без ответов.

Есть ощущение, что у LTIB какая-то совсем другая философия и делать нужно что-то совсем как-то по-другому, но пока не могу понять sm.gif
kurtis
ИМХО, LTIB неудобен.
Но 1 раз запустить его нужно:
а) получить установленный тулчейн от производителя
б) опорный образ файловой системы.

Для загрузчика и ядра заведите отдельный репозиторий (git, svn и тд).
Nich
Спасибо за мнение... Тут ещё финский коллега вариант подкинул, будем думать.
Nich
В итоге вопрос решили. Я долго гуглил на тему, как люди это делают. Наткнулся в мэил-листе на аналогичную тему и там есть фраза, что LTIB вообще как бы не предназначен для того, чтобы его клали в SVN sm.gif

Основной проблемой для меня было то, что патчи, которые генерирует LTIB при внесении изменений в пакеты, он кладёт в папку /opt/freescale/pkgs (либо в папку, указанную как значение параметра lpp в файле конфигурации .ltibrc). Если настроить путь в папку самого LTIB'а, то туда же надо перетаскивать гигабайт самих пакетов sm.gif Можно ещё завести папку для патчей, и прописать её в параметр ldirs, но тогда надо руками переносить патчи из /opt/freescale/pkgs, да и нельзя в ldirs использовать относительные пути.

В итоге я просто чуток подправил сам ltib, добавил в него новую параметр our_patches, который подставил в пару мест вместо lpp так, чтобы новые патчи клались в указанную папку "our-patches" (собственно, в подпрограмме, которая делает patchmerge). И прописал эту же папку в значение по умолчанию для ldirs, чтобы ltib находил там патчи при сборке. При этом инициализацию ldirs в файле .ltibrc нужно либо закомментировать, либо прописать этот путь ещё и там.

Код
ldirs        => "$top/our-patches",
our_patches  => "$top/our-patches",


Таким образом, все изменения остаются в той директории, в которую мы установили LTIB. Её мы почти целиком и положили в SVN. Получилось около 20 метров. Я уверен, что там на самом деле много лишнего, и можно хранить намного меньше, но разбираться дальше, что там меняется, а что нет, вроде не особо целесообразно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.