Ports/arm/Experience
Материал из ALT Linux Wiki
(Import from freesource.info) |
м (+кат) |
||
(1 промежуточная версия не показана) | |||
Строка 1: | Строка 1: | ||
- | [ | + | === [http://lists.altlinux.org/pipermail/devel-ports/2007-August/000233.html kas@] === |
- | + | Bootstrap лучше делать на каком-нибудь готовом порту. Очень облегчает жизнь. Я использовал неофициальный порт Debian ARM EABI. Кстати, на MIPS что-нибудь типа EABI есть? | |
- | + | Собирал я так: | |
- | + | # в Debian пересобрал руками пропатченый на тему ARM альтовский rpm, поставил и снова пересобрал rpm уже rpm'ом. Дальнейшая сборка идет только rpm'мом. На этапе Bootstrap'а допустимо подсовывания некоторого количества костылей. Первоначально базу rpm'ок собирал по принципу "лишь бы собралось". | |
- | + | # пересобрал toolchain (binutils, gcc, glibc), устанавливая в систему по мере сборки. Тулчейну и опциям gcc в rpm следует уделить особое внимания, чтобы с одной стороны полученный дистрибутив запускался на как можно большем количестве железа, с другой - не терял много производительности из-за поддержки устаревшего железа. Я для этого покопался в Debian'овских рассылках (это ж opensource -- у кого хочу, у того и тырю:). Ещё нужно проследить, что бы использовались современные технологии. Поясню: в случае ARM есть два ABI: EABI (Embedded ABI) и OABI (Old/Obsoleted ABI). Собирать под OABI сейчас нецелесообразно, ибо со временем он отомрёт. Портов полноразмерных дистрибутивов под EABI не так много (официального порта Debian, к примеру, ещё нету), следовательно придёться ходить по минам, но это того стоит ;) | |
- | + | # Пересобрал все не-noarch пакеты, требуемые для работы hasher'а. У меня получилось примерно 130-150 исходных пакетов. Естественно на этом этапе я безжалостно резал BuildRequires, чтобы не пересобирать половину xorg и gnome'а ;). Хотя в случае ALT это не так сложно -- много где есть %if_enabled/%if_with. С Федорой мучались больше. | |
+ | # Дальше пересобираются всё те же 130-150 пакетов, но теперь в hasher'е с разворачиванием всех BuildRequires и фиксированием изменений (вот где git здорово помогает). Итого у меня получилось около 350 исходных пакетов. Местами хорошо помучился: например с большими кольцами в BuildRequires. Типа "tetex хотят все, tetex хочет всех" ;) | ||
+ | # После этого уже можно работать с community для включения изменений в пакеты и включения порта в Sisyphus. | ||
- | + | [[Category:Sisyphus]] | |
- | + | [[Категория:ARM]] | |
- | + | {{Category navigation|title=Ports|category=Ports|sortkey=*}} | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
Текущая версия на 21:01, 7 февраля 2016
kas@
Bootstrap лучше делать на каком-нибудь готовом порту. Очень облегчает жизнь. Я использовал неофициальный порт Debian ARM EABI. Кстати, на MIPS что-нибудь типа EABI есть?
Собирал я так:
- в Debian пересобрал руками пропатченый на тему ARM альтовский rpm, поставил и снова пересобрал rpm уже rpm'ом. Дальнейшая сборка идет только rpm'мом. На этапе Bootstrap'а допустимо подсовывания некоторого количества костылей. Первоначально базу rpm'ок собирал по принципу "лишь бы собралось".
- пересобрал toolchain (binutils, gcc, glibc), устанавливая в систему по мере сборки. Тулчейну и опциям gcc в rpm следует уделить особое внимания, чтобы с одной стороны полученный дистрибутив запускался на как можно большем количестве железа, с другой - не терял много производительности из-за поддержки устаревшего железа. Я для этого покопался в Debian'овских рассылках (это ж opensource -- у кого хочу, у того и тырю:). Ещё нужно проследить, что бы использовались современные технологии. Поясню: в случае ARM есть два ABI: EABI (Embedded ABI) и OABI (Old/Obsoleted ABI). Собирать под OABI сейчас нецелесообразно, ибо со временем он отомрёт. Портов полноразмерных дистрибутивов под EABI не так много (официального порта Debian, к примеру, ещё нету), следовательно придёться ходить по минам, но это того стоит ;)
- Пересобрал все не-noarch пакеты, требуемые для работы hasher'а. У меня получилось примерно 130-150 исходных пакетов. Естественно на этом этапе я безжалостно резал BuildRequires, чтобы не пересобирать половину xorg и gnome'а ;). Хотя в случае ALT это не так сложно -- много где есть %if_enabled/%if_with. С Федорой мучались больше.
- Дальше пересобираются всё те же 130-150 пакетов, но теперь в hasher'е с разворачиванием всех BuildRequires и фиксированием изменений (вот где git здорово помогает). Итого у меня получилось около 350 исходных пакетов. Местами хорошо помучился: например с большими кольцами в BuildRequires. Типа "tetex хотят все, tetex хочет всех" ;)
- После этого уже можно работать с community для включения изменений в пакеты и включения порта в Sisyphus.