Собираем собственный arm-linux toolchain...
and73y
Пункты: 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
Пункты: 77115
Регистрация: 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
Группа: Клиенты
Пункты: 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
Пункты: 1154
Регистрация: 25.11.2009
Воспользовался скриптом sasamy.
Ядро собралось
, на вид нормальное (3 Мб не сжатое, 1 МБ сжатое). Буду тестить на плате.
and73y
Пункты: 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
Пункты: 77115
Регистрация: 14.08.2009
Цитата RAMDISK: Couldn't find valid RAM disk image starting at 0.
rootfs ни причем - ядро не находит имидж в ram - туда его загрузчик должен скопировать и сообщить адрес ядру либо как у Павла - адрес указывается через командную строку ядра. непонятно - почему оно ищет по адресу 0.
# grep "CONFIG_CMDLINE" .config
что говорит ? и надо смотреть начало лога загрузки - там ядро сообщает что ему передано в командной строке.
and73y
Пункты: 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
Пункты: 77115
Регистрация: 14.08.2009
[quote]почему оно ищет по адресу 0. [quote]
image starting at 0 - я не правильно перевел, начиная с 0, а не по адресу 0.
and73y
Пункты: 1154
Регистрация: 25.11.2009
Спасибо за подсказки!
Заработало.