собрать свой кернель

КПК с Linux, установка Linux на iPaq и другие модели, программы
Закрыто
sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

собрать свой кернель

Сообщение sg » Сб фев 28, 2004 20:52

хочу собрать кернел для себя. или модуль/модули к уже имеющемуся. думаю это хочется не только мне, но сложность (недостаток информации) отпугивает. вот начинаю тему, где хочется увидеть комментарии от тех, кто уже делал. после удачного завершения нарисую хаутушку по мотивам форума :)

значит берем обычный линух и такие файлы:
binutils-cross-arm-2.11.2-0.i386.rpm
gcc-cross-sa1100-2.95.2-0.i386.rpm
glibc-arm-2.2.2-0.i386.rpm

ставим эти рпмки. они распаковываются в
/opt/Embedix

далее заводим юзера, прописываем ему в окружение что-то типа PATH=/opt/Embedix/tools/arm-linux/bin:/opt/Embedix/tools/arm-linux/sbin:$PATH и далее собираем под этим юзером

это кернел + патчи. патчить в такой последовательности
linux-2.4.18.tar.bz2
patch-2.4.18-rmk7.bz2
diff-2.4.18-rmk7-pxa3.gz
linux-c750-20030620-rom1_10.tar.bz2

урлы не указываю так как не знаю уже где собирал. но думаю на погуглить сигнатуры хватит :)

далее нужно сделать симлинки include/linux ->
/opt/Embedix/tools/arm-linux/include
include/asm -> /opt/Embedix/tools/arm-linux/include/asm

дефолтный для завра 750/760 конфиг - arch/arm/def-configs/husky. что с ним дальше делать понятно.

делаю make menuconfig и вылазит заморочка:

/opt/Embedix/tools/arm-linux/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status

>> Unable to find the Ncurses libraries.
>>
>> You must have Ncurses installed in order
>> to use 'make menuconfig'

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

ладна. можно пока оставить дефолтовый, а конфиг ручками подправить если что. делаю make dep и:

zaurus@big ~/src/linux$ make dep
rm -f include/asm-arm/arch include/asm-arm/proc
(cd include/asm-arm; ln -sf arch-pxa arch; ln -sf proc-armv proc)
make[1]: Entering directory `/home/users/zaurus/src/linux/arch/arm/tools'
/home/users/zaurus/src/linux/scripts/mkdep -D__KERNEL__ -I/home/users/zaurus/src
/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-a
liasing -fno-common -fno-common -pipe -mapcs-32 -march=armv4 -Wa,-mxscale -mtun
e=strongarm -mshort-load-bytes -msoft-float -- getconstants.c |\
sed s,getconstants.o,constants.h, > .depend
/bin/sh: line 1: /home/users/zaurus/src/linux/scripts/mkdep: cannot execute binary file

я так понимаю, что он собрался под арм процессор, а запускаю его на интеле. как это обойти?

sash
Доктор (4 lvl)
Сообщения: 338
Зарегистрирован: Пт июл 04, 2003 13:33

Сообщение sash » Сб фев 28, 2004 20:57

sg, а вы в Томске (чисто любопытство из предыдущих сообщений)?

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Сб фев 28, 2004 22:29

да

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Сб фев 28, 2004 22:29

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

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Сб фев 28, 2004 23:51

Все почти прравильно, но не совсем. Лучше всего ядро собирать так:

1. Ставим вот это:
http://downloads.zaurususergroup.com/do ... 0.i386.rpm
http://downloads.zaurususergroup.com/do ... 0.i386.rpm
http://downloads.zaurususergroup.com/do ... 0.i386.rpm
http://downloads.zaurususergroup.com/do ... 3.i386.rpm

2. Исходники ядра лучше всего брать готовые, уже патченные, от 860-го завра:

http://developer.ezaurus.com/sl_j/sourc ... 10.tar.bz2

3. Ncurses нужны для той машины, на которой собирается ядро, кросс компилятор тут не причем. Нужно их установить, соответствующий пакет должен быть в составе дистрибутива линукса.

4. Перед сборкой запускаем вот этот скрипт:
http://downloads.zaurususergroup.com/do ... arm-qpe.sh
Он установит все нужные переменные.

5. Советую обратить внимание на вот эт страничку, где описан набор очень полезных патчей для ядра:
http://babelfish.altavista.com/babelfis ... 26stq%3D10

Ну вроде все.

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Вс фев 29, 2004 08:23

спасибы

выставил переменные окружения из скрипта и инсталлировал хедеры (это наверное ненужно, если линки сделать). после чего оно собралось. странно, что я сказал собирать bzImage, а собрался zImage

еще непонятная вещь:
взял конфиг husky и переименовал в .config
после make menuconfig и выхода с записью (ничего не правил)
из .config удалены следующие строчки:
> # CONFIG_BLK_DEV_COLLIE_MMCSD is not set
> CONFIG_BLK_DEV_SL_MMCSD=m
> CONFIG_BLK_DEV_SL_MMCSD_PSAVE=y

снова беру конфиг husky и иду в раздел Block devices:
< > Normal PC floppy disk support
<*> Loopback device support
< > Network block device support
<*> RAM disk support
(8192) Default RAM disk size
[*] Initial RAM disk (initrd) support

никаких MMCSD тут нету... хотя ядро и модули собираются вместе с этими параметрами (я снова беру husky и собираю с ним). и собранные модули не отличаются, хотя должно быть на один больше -
CONFIG_BLK_DEV_SL_MMCSD=m

кстати, а рам диск разве ему нужен? всё что нужно для загрузки и доступа к руту вроде бы уже в ядре вкомпилено. и initrd никто не собирает...

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Вс фев 29, 2004 08:26

это я пока что стандартное 760 пробую собрать. начну с него, чтобы баги отсеивать постепенно :)

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Вс фев 29, 2004 17:10

выставил переменные окружения из скрипта и инсталлировал хедеры (это наверное ненужно, если линки сделать). после чего оно собралось. странно, что я сказал собирать bzImage, а собрался zImage
Для заурусовского ядра это одно и тоже.

Код: Выделить всё

никаких MMCSD тут нету... хотя ядро и модули собираются вместе с этими параметрами (я снова беру husky и собираю с ним). и собранные модули не отличаются, хотя должно быть на один больше - 
CONFIG_BLK_DEV_SL_MMCSD=m
Драйвер SD - с закрытым исходным кодом. Исходников к нему нету. Используется готовый бинарник, который идет с РОМом от Шарпа.

Код: Выделить всё

кстати, а рам диск разве ему нужен?
В нем скорее всего создается /var

sg
Кандидат (3 lvl)
Сообщения: 194
Зарегистрирован: Пн фев 02, 2004 14:46

Сообщение sg » Вс фев 29, 2004 18:53

maslovsky писал(а): Драйвер SD - с закрытым исходным кодом. Исходников к нему нету. Используется готовый бинарник, который идет с РОМом от Шарпа.
а тут нужно поподробнее: собираю я своё ядро. разумеется хочу работать с SD карточками и мне для этого нужно с шарпового ядра какой-то модуль брать? какой?

еще такой момент: я пока не понимаю как там "биос" работает. тот самый, который перепрошивает и восстанавливает. сделал я копию прошивки на SD карточку. потом загрузил свою с ядром без поддержки SD. что-то не склеилось и висит... смогу ли я откатить с SD карточки?

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пн мар 01, 2004 12:16

Код: Выделить всё

а тут нужно поподробнее: собираю я своё ядро. разумеется хочу работать с SD карточками и мне для этого нужно с шарпового ядра какой-то модуль брать? какой? 
Если обираешься прошивать только ядро, можешь на эту тему не заморачиваться
еще такой момент: я пока не понимаю как там "биос" работает. тот самый, который перепрошивает и восстанавливает. сделал я копию прошивки на SD карточку. потом загрузил свою с ядром без поддержки SD. что-то не склеилось и висит... смогу ли я откатить с SD карточки?
Самое плохое, что может случится при прошивке ядра - не загрузится заурус. Однако поскольку для служебных целей (прошивка например) используется второе ядро, которое не трогается, то можно будет просто прошить заведомо работающее ядро.

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»