Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Собираем собственный arm-linux toolchain...
and73y
Добавлено 07.04.2010 12:36 Редактировалось 07.04.2010 12:37 Сообщение: 141
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
1. Собирал пропатченое ядро, которое идет в комплекте с платой (2.6.28).
Собирал следующим скриптом (поменял только компилятор из исходного):
Код
#!/bin/sh

make ARCH=arm CROSS_COMPILE=/root/x-tools/arm-unknown-linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-

/root/x-tools/arm-unknown-linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
gzip -c -9 linux.bin > linux.bin.gz

./mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d linux.bin.gz zlinux
cp ./zlinux /tftpboot/zlinu


2. Посмотрел arch/arm/boot/Image. Действительно нормального размера. Это ядро??? Как оно там оказалось??
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.04.2010 13:27 Сообщение: 142
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
Цитата

Собирал следующим скриптом (поменял только компилятор из исходного):


Что-то слишком мудрый скрипт :) у меня так:
Код

#!/bin/sh

make -j3 ARCH=arm CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi-
./mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage zlinux
cp zlinux /var/tftpboot


У меня путь к кросскомпилятору прописан в профиле в переменной PATH - сильно облегчает жизнь :)
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 07.04.2010 13:47 Сообщение: 143
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Это "проблема" нового objcopy, то что вы нашли собирается "само" так:

arm-linux-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux arch/arm/boot/Image
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 07.04.2010 15:37 Редактировалось 07.04.2010 15:37 Сообщение: 144
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Воспользовался скриптом sasamy.
Ядро собралось , на вид нормальное (3 Мб не сжатое, 1 МБ сжатое). Буду тестить на плате.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 08.04.2010 15:22 Сообщение: 145
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Пытаюсь загрузить ядро и получаю:

Код
RAMDISK: Couldn't find valid RAM disk image starting at 0.
List of all partitions:
No filesystem could mount root, tried: ext4 ext2 cramfs vfat
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)


Данный rootfs отлично работал с предыдущей версией ядра...
Неверно сконфигурировано ядро?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.04.2010 15:34 Редактировалось 08.04.2010 15:35 Сообщение: 146
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
Цитата
RAMDISK: Couldn't find valid RAM disk image starting at 0.


rootfs ни причем - ядро не находит имидж в ram - туда его загрузчик должен скопировать и сообщить адрес ядру либо как у Павла - адрес указывается через командную строку ядра. непонятно - почему оно ищет по адресу 0.
# grep "CONFIG_CMDLINE" .config
что говорит ? и надо смотреть начало лога загрузки - там ядро сообщает что ему передано в командной строке.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 08.04.2010 15:41 Редактировалось 08.04.2010 15:51 Сообщение: 147
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 roow

параметры были указаны неверно, подправил
теперь так:
Kernel panic - not syncing: Attempted to kill init!

Добавил - с этим тоже разобрался. Проблема в OABI.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.04.2010 15:52 Редактировалось 08.04.2010 15:52 Сообщение: 148
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
[quote]почему оно ищет по адресу 0. [quote]

image starting at 0 - я не правильно перевел, начиная с 0, а не по адресу 0.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 08.04.2010 16:06 Сообщение: 149
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Спасибо за подсказки!
Заработало.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux