Ports/arm/Experience: различия между версиями

Материал из ALT Linux Wiki
< Ports‎ | arm
(Import from freesource.info)
(нет различий)

Версия от 16:01, 28 июля 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


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 (Embeded 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.

Если есть какие-то вопросы, постараюсь ответить.