|
Embedded linux bootstraping, ликбез |
|
|
|
Jul 16 2007, 10:20
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Начало обсуждения здесь: http://electronix.ru/forum/index.php?showtopic=33796Т.е. на данный момент, моя железяка после загрузки ядра пытается смонтировать корневую через NFS (насколько я понимаю). Начитавшись этого http://www.opennet.ru/base/sys/initrd_intro.txt.html я окончательно запутался. Здесь инструкции по сборке и запуску линуха на колибри: http://www.vollmann.net/colibri/colibri-bs...ing-started.txtТам ни слова не говорится о initrd файловой системе ... Прокомментируйте плиз следующие инструкции по сборке ядра линуха: Цитата $ arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin $ gzip -c -9 linux.bin > linux.bin.gz $ $PROJECT/colibri-bsp-x.x/bin/mkimage -A arm -O linux -T kernel -C gzip \ -a 0xa0008000 -e 0xa0008000 -n "Linux Kernel Image" -d linux.bin.gz uImage
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
 |
Ответов
|
Jul 17 2007, 08:40
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Спасибо. В общем, корневуху на NOR флешку я разместил и теперь линух нормально грузится ... На данный момент имею следуюшие аргументы загрузки ядра: noinitrd root=/dev/mtdblock2 rootfstype=jffs2 ip=:::::eth0: console=ttyS0,115200n8 Но в последствии, на своей железяке, у меня будет маленькая NOR флешка (4Мбайт), соответственно развесистая корневуха не по силам (да и ни к чему, всего одно приложение крутится будет). Т.е. для моего случая идеальный вариант это небольшой виртуальный диск (initrd) на котором и будет корневуха с моим приложением. Отсюда вопрос, как это организовать? Допустим я соберу образ этого виртуального диска по этим инструкциям http://www.opennet.ru/base/sys/initrd_intro.txt.html , но какие аргументы загрузки ядра тогда должны быть при этом? Еще, откуда (на данный момент) ядро знает что устройство /dev/mdtblock находится по адресу 0x480000 (из BSP платы)?
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
Jul 17 2007, 11:19
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Собрал образ ramdisk, по следующему скрипту: Код #!/bin/sh RDSIZE=4000 BLKSIZE=1024
dd if=/dev/zero of=./ramdisk.img bs=$BLKSIZE count=$RDSIZE
/sbin/mke2fs -F -m 0 -b $BLKSIZE ./ramdisk.img $RDSIZE
mount ./ramdisk.img ./mnt -t ext2 -o loop=/dev/loop0
mkdir ./mnt/bin mkdir ./mnt/sys mkdir ./mnt/dev mkdir ./mnt/proc
cp ./busybox ./mnt/bin/busybox pushd ./mnt/bin ln -s busybox ash ln -s busybox mount ln -s busybox echo ln -s busybox ls ln -s busybox cat ln -s busybox ps ln -s busybox dmesg ln -s busybox sysctl popd
cp -a /dev/console ./mnt/dev cp -a /dev/ramdisk ./mnt/dev cp -a /dev/ram0 ./mnt/dev cp -a /dev/null ./mnt/dev cp -a /dev/tty1 ./mnt/dev cp -a /dev/tty2 ./mnt/dev
pushd ./mnt ln -s bin sbin popd
cat >> ./mnt/linuxrc << EOF #!/bin/ash echo echo "Simple initrd is active" echo mount -t proc /proc /proc mount -t sysfs none /sys /bin/ash --login EOF
chmod +x ./mnt/linuxrc
umount ./mnt #gzip -9 ./ramdisk.img затем: Код #!/bin/sh ./mkimage -A arm -O linux -T ramdisk -C gzip -a 0xa1000000 -e 0xa1000000 -n "Initial RAM disk image" -d ramdisk.img.gz ramdisk Аргументы запуска ядра:root=/dev/ram0 rw initrd=0xa1000000,0x400000 ramdisk_size=4000 console=ttyS0,115200n8 mem=16M В итоге, ядро все равно в панике, не может смонтировать "ram0" or unknown-block(2,0). Не понятно, u-boot-у нужно говорить что перед загрузкой ядра загрузить рамдиск? В логах обычной загрузки про рамдиск ни слова ... Я пробовал в ручную, после загрузки u-boot, принудительно загрузть образ рамдиск "bootm 48000" а после этого стартонуть ядро, ничего не меняется.
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
Сообщений в этой теме
3.14 Embedded linux bootstraping, ликбез Jul 16 2007, 10:20 amw Цитата$ arm-linux-objcopy -O binary -R .note ... Jul 17 2007, 08:33  S_agent Цитата(3.14 @ Jul 17 2007, 14:19) В итоге... Jul 17 2007, 21:16 S_agent Цитата(3.14 @ Jul 17 2007, 11:40) Еще, от... Jul 17 2007, 18:34 PsM Если используешь ядро 2.6 я бы посоветовал использ... Jul 18 2007, 04:56 3.14 2 S_agent.
В том то и дело, что никаких сообщений ... Jul 18 2007, 05:51 S_agent 3.14, почитайте вот это, там все необходимые дейст... Jul 18 2007, 08:15 amw Цитата(3.14 @ Jul 18 2007, 08:51) 2 S_age... Jul 19 2007, 15:12 3.14 Итак, начал ковыряться с самодельной железякой на ... Aug 31 2007, 08:48 amw Цитатаu-boot$ boot
## Booting image at 000600... Sep 1 2007, 10:10 3.14 ЦитатаА рамдиск где грузится в память?
Перед запус... Sep 1 2007, 11:42 amw Цитата(3.14 @ Sep 1 2007, 14:42) Перед за... Sep 3 2007, 07:10 3.14 Странно, если образ рамдиска не GZIP-ить, тогда яд... Sep 3 2007, 07:50 amw Цитата(3.14 @ Sep 3 2007, 10:19) Странно,... Sep 3 2007, 07:51 3.14 Спасибо, нашел причину ошибочной загрузки образа, ... Sep 3 2007, 07:54 amw К стати не понял что за второй параметр у initrd=0... Sep 3 2007, 07:59 3.14 Сам пока не понял
Чего то еще не то ... ядро упор... Sep 3 2007, 08:21 3.14 Уперся ...
В качестве init (linuxrc) у меня ash ск... Sep 3 2007, 11:08 3.14 Еще, если попробовать залить не GZIP-нутый образ р... Sep 3 2007, 12:29 amw Чтобы не заморачиватся с либами на этапе загрузки ... Sep 3 2007, 19:13 amw В дополнение,
Поскольку ldd не работает в кросс-ва... Sep 4 2007, 08:16 3.14 Итак ... взял образ рамдиска отсюда http://heavy-o... Sep 4 2007, 13:02 amw Цитата(3.14 @ Sep 4 2007, 16:02) Итак ...... Sep 4 2007, 14:33 v_shamaev Цитата(3.14 @ Sep 4 2007, 17:02) Итак ...... Sep 5 2007, 07:18 3.14 Итак, с налету uClib не собирается (под ARM), ошиб... Sep 5 2007, 08:15 v_shamaev Цитата(3.14 @ Sep 5 2007, 12:15) Итак, с ... Sep 5 2007, 08:47 3.14 А разве для glib и uClib разные тулчейны нужны? Sep 5 2007, 08:56 Idle Цитата(3.14 @ Sep 5 2007, 12:56) А разве ... Sep 5 2007, 09:08 amw Вообще-то glib и glibc - разные вещи.
Судя по имен... Sep 5 2007, 10:13 3.14 А что в скрипте all.sh должно быть?
Попробовал со... Sep 5 2007, 12:17 amw Цитата(3.14 @ Sep 5 2007, 15:17) А что в ... Sep 5 2007, 13:24  v_shamaev Цитата(amw @ Sep 5 2007, 17:24) Если пере... Sep 5 2007, 14:11 3.14 В продолжение сборки buildroot, сегодня, видимо из... Sep 6 2007, 06:40 amw Цитата(3.14 @ Sep 6 2007, 09:40) В продол... Sep 6 2007, 07:49 vanokuten Цитата(3.14 @ Sep 6 2007, 09:40) В продол... Oct 11 2007, 18:02 3.14 Чего то я не пойму ... buildroot сам качает ядро, ... Sep 6 2007, 08:11 v_shamaev Цитата(3.14 @ Sep 6 2007, 12:11) Чего то ... Sep 6 2007, 08:22 amw Цитата(3.14 @ Sep 6 2007, 11:11) Чего то ... Sep 6 2007, 09:33 3.14 В /usr/local/arm-linux/arm-linux/lib лежит одна ли... Sep 6 2007, 10:27 amw Цитата(3.14 @ Sep 6 2007, 13:27) В /usr/l... Sep 6 2007, 11:18 3.14 Спасибо, уже лучше, по крайней мере собраный бузиб... Sep 7 2007, 08:08 amw Цитата(3.14 @ Sep 7 2007, 11:08) Спасибо,... Sep 7 2007, 08:52 3.14 собрал новое ядро, дык оно упорно не хочет распако... Oct 3 2007, 11:31 amw CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=4
CO... Oct 5 2007, 13:28 3.14 Это все в ядро включено ...
Ядро 2.6.14-intcl (ин... Oct 11 2007, 10:26 amw Цитата(3.14 @ Oct 11 2007, 13:26) Это все... Oct 11 2007, 14:49 3.14 Насчет 0x500000, я так понимаю, это область памяти... Oct 11 2007, 16:24 amw Цитата(3.14 @ Oct 11 2007, 19:24) Насчет ... Oct 12 2007, 09:42 3.14 Ладно, с корневухой разобрался, был клубок нюансов... Oct 15 2007, 10:10 S_agent Цитата(3.14 @ Oct 15 2007, 12:10) ..Созда... Oct 16 2007, 14:29 amw Запустить busybox на консоль, сгенерить пароль, со... Oct 16 2007, 11:43 Frox_SzC А какая нибудь литература есть по этому вопросу??? Aug 10 2009, 07:06 Idle Цитата(Frox_SzC @ Aug 10 2009, 11:06) А к... Aug 11 2009, 18:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|