[devel-ports] Fwd: Re: Порт Alt Linux под MIPS-32 и процессор КОМДИВ-64/ RM7000

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Ср Авг 22 14:24:46 MSD 2007


----- Forwarded message from Michael Shigorin <mike/osdn.org.ua> -----

Date: Wed, 15 Aug 2007 10:51:41 +0300
From: Michael Shigorin <mike/osdn.org.ua>
To: gosha <embedded/nm.ru>
Subject: Re: Порт Alt Linux под MIPS-32 и процессор КОМДИВ-64/ RM7000
Cc: "Kirill A. Shutemov" <k.shutemov/velesys.com>,
	Хихин Руслан <hihin/rambler.ru>,
	Alexey Rusakov <ktirf/altlinux.org>

перебрасываю ответ Кирилла, почему-то ко мне он не добрался;
также здесь:

http://www.freesource.info/wiki/ALTLinux/Sisyphus/porting

---

On Tue, Aug 14, 2007 at 11:12:58AM +0300, Michael Shigorin wrote:
> По общественному же порту -- пишите Кириллу Шутемову (kas@),
> он сейчас озадачился сборкой под ARM и вроде как MIPS на qemu

Под MIPS я портировать не планирую. Могу помочь с поддержкой MIPS
в qemu, если интересно. Благо в hasher поддержку qemu
втянули(пока лежит у ldv@ в git'е, в следующем релизе будет).

> -- вдруг сможет поделиться опытом (у него сейчас совсем мало
> времени) именно по переносу базовой системы и зависимостей
> rpm-build.

1. Нужно оценить насколько целесообразна нативная сборка. Думаю для MIPS
она более целесообразна, чем для ARM, но всё же зависит от количества
доступного железа и его производительности. _Вероятно_ стоит выделить
железку для доступа по ssh заинтересованным, а собирать в qemu(хотя его
ещё придётся допиливать под MIPS).

2. Bootstrap лучше делать на каком-нибудь готовом порту. Очень облегчает
жизнь. Я использовал неофициальный порт Debian ARM EABI. Кстати на MIPS,
что-нибудь типа EABI есть?

3. Собирал я так:
- в 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.

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

> Дам-ка я тем, кто судя по отложенным письмам -- имел интерес
> к теме, копии (отвечайте всем).

--
Regards,  Kirill A. Shutemov
+ Belarus, Minsk
+ Velesys LLC, http://www.velesys.com/
+ ALT Linux Team, http://www.altlinux.com/

---

----- End forwarded message -----

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



Подробная информация о списке рассылки devel-ports