[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