HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: gentoo on zaurus [not gentooforzaurus]
Страницы: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[Ответить]
Civil [12.01.2007 03:44] :
Mesk
Спасибо. Я уже вобщем-то много чего нашёл за это время. Сейчас пока энтузиазм не иссяк хочу попробовать ебилд написать, делающий kernel 2.6.19.2 на основе gentoo-sources-2.6.19-r3 (только качающий gentoopatches-r5, а не r4 => не 2.6.19.1, а 2.6.19.2 получаем). hrw подкинул ссылку на OE'шный сайтик с патчами:
http://www.openembedded.org/filebrowser/org.openembedded.dev/packages/linux
ща смотрю как сделан linux-rp-2.6.19.bb...
У меня C3100 просто. Был-бы Ц1000 - не мучался бы.
gentoo-sources тянет много патчей, которые не нужны на завру.
Но изредка встречаются полезные фиксы (в r3 баги с ext3fs пофиксили некоторые например).
Mesk [12.01.2007 04:05] :
на вскидку - не вижу патча корректирующего партиции у нандфлэша
без него будет отпределяться размером в 2 раза меньше чем есть.
в pdaxrom он называется 308_2.6.18-nandparts.patch
zs_ftp [12.01.2007 06:31] :
Жду, когда придут диски с Генту и я с вами )))
А то обленился и ушел на Убунту...
Говорите, чем можно помочь проекту!
Потому-что идея очень классная.
hrhr [12.01.2007 09:35] :
как ни странно, когда я пытал HRW по поводу ядер, он сказал что OZ патчей нет на хандхелдах
Civil [12.01.2007 13:53] :
как ни странно, когда я пытал HRW по поводу ядер, он сказал что OZ патчей нет на хандхелдах
Мне он упорно твердил:
Read about linux-rp on OE
после чего дал ссылку и сказал, мол там читай.
Ведь handheld и OE связаны...
alexxy [12.01.2007 14:10] :
Ну допустим я буду все переносить под gnueabi
на своем hx4700 а в сочетании с softfloat работать оно должно на ура...
Civil [12.01.2007 15:47] :
ARCH=arm CROSS_COMPILE=...

mkimage -A arm -O linux -T kernel -C none -a 0xa0008000 -e 0xa0008000 -n "Linux 2.6" -d arch/arm/boot/zImage kernel.img
Частью какого пакета является mkimage?
P.S. Прикладываю попытку сделать ебилд... несамая удачная думаю... но ядро он собирает, вот нет пока возможности проверить, будет ли ядро грузится... В основе используются патчи от OZ (единственное что модифицировал - это подправил пути по котором их накладывать надо, что-бы можно их было использовать). В теории должно работать деление на "машинки" - т.е. USE="akita" emerge gentoo-zaurus - попробует собрать ядро для C1000 (используя ОЗшный конфиг). USE="spitz" - для C3000. USE="borzoi" - для 3100/3200 и т.п.
P.S.S. Обновил. Ибо не тот патч в комплекте.
P.S.S. 3-я версия ебилда.
Доступные USE флаги:
akita - приложить конфиг для C1000
spitz - приложить конфиг для C3000
borzoi - приложить конфиг для C3100/3200
c7x0 - приложить конфиг для c7x0 (700/750/760/860)
collie - приложить конфиг для SL-5000/5500
poodle - приложить конфиг для SL-5600
tosa - приложить конфиг для SL-6000
pc - отключить патчи для зауруса.
eabi - CROSS_COMPILE="armv5te-softfloat-linux-gnueabi" вместо CROSS_COMPILE="armv5te-softfloat-linux-gnu"
build - собрать с конфигом и сделать kernel.img (на чём-то отличном от akita, borzoi и spitz - скорее всего работать не будет, т.к. собирается с одними и теми-же параметрами)
для ck-zaurus-sources ещё несколько доп. флагов:
reiser4 - поддержка reiser4
unionfs - поддержка unionfs
P.S.S.S. Некоторое подобие инструкции по сборке crossdev ( пока что gentoo-only и по сути перевод gentoo-wiki слегка адаптированный под нужды, немного грубый )
1) нужно выбрать место для оверлая. Допустим /usr/local/arm_portage
Выполняем:
mkdir -p /usr/local/arm_portage/
Соответственно добавим в /etc/make.conf строчку:
PORTDIR_OVERLAY = "/usr/local/portage"
2) Нам нужен crossdev - собираем его:
emerge -av crossdev
3) По сути crossdev может собрать различные стадии:
-s0 - только binutils
-s1 - s0 + gcc (без libc и g++!)
-s2 - s1 + kernel headers
-s3 - s2 + libc
-s4 - s3 + g++
Выбираем название для архитектуры.
Рекомендуется прочесть дальше тему что-бы правильно выбрать (т.е. что-бы не городить огород из кучи компиляторов для одной цели с разным названием у каждого сборщика)
Допустим мы определилсь, что будем собирать самую общую систему для нашего zaurus'а. Тогда делаем:
crossdev -s4 --target armv5te-softfloat-linux-gnu
Вкратце поясню по какому критерию выбрано такое обозначение:
armv5te - архитектура процессора, используемая в заурусе. Softfloat - показывает, что собирать мы планируем с эмуляцией вещественных вычислений (с плавающей точкой), linux - no comments, gnu - glibc со стандартным ABI.
Далее будет идти продолжительный процесс сборки (как никак glibc, gcc и g++ - достаточно крупные пакеты).
После чего мы готовы к работе. И можем приступить к самой сборке
[К сообщению приложены файлы: uboot-mkimage.zip (2 кб), kernel-zaurus-r2.zip (523 кб), ck-zaurus-r1.zip (1302 кб)]
Mesk [12.01.2007 16:06] :
> ARCH=arm CROSS_COMPILE=...
да, пардон
> Частью какого пакета является mkimage?
в генте ее нет
http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/1.1.0beta3/src/mkimage-u-boot-1.1.4.tar.bz2
Civil [12.01.2007 23:37] :
Более-менее работает ебилд (нужно конфиги редактировать, т.к. OZ'ые иногда несовсем правильные + для старой версии ядра - 2.6.16 и 2.6.17 - вопросов многовато). По сравнению с пред. версией изменений почти никаких (добавил зависимость от u-boot-mkimage, и в конце дописал /usr/local/arm/mkimage -A arm -O linux -T kernel -C none -a 0xa0008000 -e 0xa0008000 -n "Linux 2.6" -d arch/arm/boot/zImage kernel.img ). Далее в идеале надо makefile ядра редактировать, что-б модули на в /lib/modules ставил он.
Скриншот (rootfs взял ftp://gentoo.ru/projects/handhelds/zaurus-c1000/stageX_sd_snap-20060111.tar.bz2 - этот)
[URL=http://img110.imageshack.us/my.php?image=p1010013minbw8.jpg]http://img110.imageshack.us/img110/7715/p1010013minbw8.th.jpg[/URL]
P.S.S. Ебилд к u-boot-mkimage перенесён в пост выше.
Mesk [12.01.2007 23:51] :
CROSS_COMPILE лучше не держать в ебилде, а передавать переменной, у всех он разный
> Далее в идеале надо makefile ядра редактировать, что-б модули на в /lib/modules ставил он.
зачем? make modules_install это сам сделает
хотя стоит поправить так, чтобы он ставил в какой нить ${HH_ROOT}/lib/modules, такую переменную можно использовать в других инструкциях
хотя вообще сборку лучше предоставить юзеру, не делать ебилде
[Ответить]
[< Назад] [Вперед >]