Вы здесь

Новый стабильный стейж для кпк

Сегодня стала доступна первая стабильная версия stage-3+ для hx4700 и других кпк с поддержкой iwmmxt (на базе процессоров pxa27x), разработанная в рамках проекта Gentoo on PDA, поддерживаемого нашим сообществом.

  • Используемый профайл 2007.0
  • Ядро 2.6.21-hh0 (ядро и модули пока только для hx4700 внутри тарбола в каталоге /root)
  • glibc-2.5-r2
  • GCC-4.1.2
  • binutils-2.17.50.16
  • baselayout-2.0.0_alpha3

Стейж можно скачать отсюда ftp://gentoo.ru/projects/handhelds/stages/stage3-armv5te-iwmmxt-gnueabi-20070520.tar.bz2
Все собранные пакеты доступны через рсинк rsync://gentoo.ru/gentoo-pda-eabi-iwmmxt

Публикации: 
Теги блога: 

Комментарии

Отличная новость!

Будем тестить!

Как же хочется на глофише м700 генту... =/

А будет ли работать на серии hx2100 (например, iPAQ 2190b)?

Про поддержку ядра смотри тут:
http://www.handhelds.org/moin/moin.cgi/HpIpaqHx2000
Вроде в основном поддержка есть. Основан на PXA270, используй стейдж от Alexxy. Работать будет.

а мне более интересен процесс создания данного стейджа, так как нет желания выкачивать сотню мегабайт бинарей при наличии исходников

Пара месяцев есть лишних? Сначала надо собрать кросскомпилятор, им собрать минимальную систему для КПК, которая будет безбожно глючить т.к. кросскомпилятор глючит, например bash и binutils надо просто брать бинарные, мы брали от другого дистрибутива и тупо копировали файлы. Когда оно со скрипом заработает, производится нативная пересборка чистого chroot окружения на КПК, после чего КПК переключается на нативный стейдж. А дальше идет процесс выбора и сборки отдельных пакетов. Чисто по времени нативная сборка минимального окружения займет на КПК недельку-другую.
Проще скачать готовый стейдж.

со сборкой кросскомпилятора как раз проблем никаких нет, только что собрал arm-elf-binutils+gcc+gdb в линуксе под mingw (также самосборным mingw32-binutils+gcc). со временем тоже проблем быть не должно :) - на работе переходим под армы. меня интересует именно сам процесс :) и на сколько сильно он отличается от "linux from scratch" (книжка такая есть :)

Процесс в принципе описан во в этом документе:
http://arcanux.org/guidexml/cross-development.html
Смысл заключается в том, что при помощи небольшой оболочки система портежей перенастраивается на сборку пакетов в нестандартный корень. Т.е. получается, что сборочная система находится вне собираемой системы (это штатная фишка портежей, но мало кто о ней знает). Кроме того активируется режим кросскомпиляции. Это тоже штатная фишка портежей.
В оптимистическом случае просто запустив xmerge --root /my/arm/root system получаем готовую базовую систему для arm. По крайней мере для mips роутеров так точно сибирали системы, это в GVN было. Но в реальности натываемся на две проблемы:
1) Для некоторых пакетов кросскомпиляция невозможно, если не ошибаюсь, например для perl. Ну берут эти приложения и собирают утилиты, которыми потом пытаются собирать себя. В принципе есть хитрые утилиты (кажись buildroot называется), коорые выполняют все приложения, кроме кросскомпилятора как такового на виртуальной машине соответсвующей архитектуры. На portage вроде пока так не умеет. Так что с такими пакетами облом.
2) Бажные компиялторы. Мы пытаемся собирать стейджи с eabi, который реализован только в 4ом gcc, коорый еще не совсем стабилизовался. В общем он хреново кросскомпилирует. Что-то работает (больщая часть минимально необходимых утилит), что-то вообще не работает (bash, глючит адски), что-то поглючивает (кросовео ядро для A620 играло звук очень тихо и с огромными искажениями, я его долго дебажил, пока простой kprintf() не решил проблему, тогда я понял, что баг в компиляторе, а не в ядре). Можете использовать gcc 3.сколько.то.там, тогда эта проблема отпадет.

В итоге в режиме кросскомпиляции был сделан начальный образ, это выполнил Alexxy, частично в него жестко были встроены бинарные пакеты от ангстрома, например binutils, после чего из этого кое-как работающего стейджа с использованием xmerge был собран нативно относительно стабильный стейдж, который сейчас и выложен на ftp. Ну а дальше пакеты к ним собираем.

Я не знаю, что написано в книже "linux from scratch", но если это то, о чем я думаю, то многим. В идеале, процесс создания стейджа под другую архитектуру мало отличается от нативной сборки, после насройки окружения. В любом случае, имеем многочисленные прелести gentoo.

PS Также можно обратить внимение на проект tinyGentoo, там описано, как максимально выкинуть все ненужное,обещают, что можно уложиться и в 20 метров. Но так как нам нужна нативная сборка и мы используетм glibc, то размер самого базового стейдже требует немало места, метров 200-300, а мой текущий образ, с кучей ненужный пакетов (экспериментирую, ищу те, которые нужны) требует уже гигововй карточки. Кроме того можно использовать uclibc вместо glibc, чем дополнительно снизить аппетит системы. Но я лично хочу C++.

PS Сейчас система собрана с -Os, возможно перейдем на -O2

спасибо, буду разбираться :)

не..
не совсем так ...
я coreutils и bash из ангстрома выколупывал...
бинутилсы только нестабильные работают...

_________________
Gentoo GNU/Linux 2.6.21 GCC 4.1.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Цитата:
я coreutils и bash из ангстрома выколупывал

Ну я вроде так и написал. Но теперь можно использовать и бинарные гентушные пакеты, собранные нами. Так чище получится и проще.

Кроме того я обновил статью:
http://ru.gentoo-wiki.com/HOWTO_Gentoo_на_КПК
Исправил там то, что изменилось, немного дописал на тему создания стейджа с нуля. Писать более развернуто я сейчас не в состоянии, да и к очередному экзамену надо готовиться.

В общем я просто хотел сказать, что это весьма большое шаманство с нестабильными и несобирающимися пакетами. Куча проблем. И нормально функционирует только нативная сборка на КПК, котороая очень медленная. Если интерес все равно не пропал, то могу конечно и поподробнее написать.

KiberGus написал:
Если интерес все равно не пропал, то могу конечно и поподробнее написать.

Интерес только возрос :) а то до сих пор видел только готовые сборки с handhelds.org

А есть ли возможность устанавливать на кпк с SD карты? Т.е. на SD создать 2 раздела и распаковать стэйдж туда?

Ставить можно =) Если будете ядро загружать через haret
Читайте вики =)
___________________________________________
Gentoo GNU/Linux 2.6.22 GCC 4.1.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Alexxy написал:
Ставить можно =) Если будете ядро загружать через haret
Читайте вики =)
___________________________________________
Gentoo GNU/Linux 2.6.22 GCC 4.1.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)

Имеется 2 карточки: SD на гиг и CF на 128 метров. Могу ли я залить ядро на CF а систему на SD и при этом нормально работать, не пользуясь всяческими загрузчиками типа haret и т.п.?

Собственно вопрос: можно ли использовать данный стейдж для развертывания на rx1950?

Нашел ядро для сего девайса, распаковал стейдж, гружусь с помощью haret, грузится, но виснит на:

"Freeing init memory: 120K"

До этого пробовал с стейджем Opae-rootfs-h1240 работало. :\

Содержание default.txt:

set MTYPE 0x3b8
set KERNEL "zImage-2.6.20"
set RAMADIR 0x30000000
set REMSIZE 0x2000000
set CMDLINE "root=/dev/mmcblk0p2 rootdelay=5 panic=30"

bootlinux