ebuild для кросскомприляции ядра
Гость 29 мая, 2006 - 23:17
Добрый день!
Что почитать что-бы написать сабж? Чтение документации разработчика пока ясности не приносит. Задача наложить определеные патчи на стандартные исходники и сделать ARCH=... CROSS_COMPILE=... make zImage, ну может еще подсунуть нужный .config
»
- Для комментирования войдите или зарегистрируйтесь
Речь идет о
Речь идет о компиляции ядер под sharp zaurus и другие КПК.
В генту ядра - единственный компонент, который не компилируется автоматически. Все ебилды только вытаскивают ядра из интернета, распаковывают в /usr/src/ и накладывают на них соответствующие патчи. Я думаю, что не стоит отступать от этой традиции.
Я бы для каждого девайса завел бы по USE флагу и исходя из этих флагов накладывал бы патчи на ядро. И еще подсунул бы дефолтный конфиг, но клал бы его как .config.example, может пользователь сам захочет что-то изменять.
Компилировать же будет сам пользователь.
И в конце распаковки написать, какой командой ему надо собирать ядро, написать про пример конфига.
PS Я думаю проще всего будет модифицировать существующий ебилд для ядра. А насколько правильно определять тап устройства по USE флагу?
Я думаю ничего
Я думаю ничего страшного не случится если будет отдельный ebuild для zaurus ядер ;)
У меня уже есть /usr/local/portage где автоматически созданы eduild-ы для кросс-компилятора (с помощью crossdev). Туда же я и хочу положить sys-kernel/corgi-sources итд итп... и пусть они собираются по emerge - это ведь только упростит жизнь при сборке прошивки (мета-портежа ;).
Ну конечно
Ну конечно отдельный ебилд. Просто проще всего адаптировать уже имеющийся, скопировать и переправить. Просто я думаю, что если для каждого КПК делать свое ядро, то некрасиво получится, поэтому сделать нечто вроде arm-sources.
согласен
согласен
а конфиг можно подсовывать иcходя из USE
Но актуальность сабж от этого не падает!
Я сейчас
Я сейчас просматриваю ебилды для ядер. При кросскомпиляци срабатывает вот это:
gvim /usr/portage/eclass/kernel-2.eclass
Т.е. он складывает их в правильную директорию, где кросскомпилятор находится. И ARCH=... CROSS_COMPILE=... он тоже автоматически правильно выставляет.
Я правильно понимаю, что тут надо обязательно конфигурировать и собирать ядро в той же консоли, откуда emerge было вызвано?
А вот сюда надо
А вот сюда надо записать, какие патчи накладывать:
UNIPATCH_LIST
Сообщи, что собираешься накладывать, и линки на патчи, я тогда сваяю ебилд.