Рабочий конфиг есть в исходниках любого ядра
linux-2.6.29.2/arch/arm/configs/at91sam9260ek_defconfig
нужно только поправить параметр CONFIG_CMDLINE со своими значениями адреса имиджа и размер памяти.
Нашёл я "ошибку" в конфиге... Сначала сделал его дефолтным, а потом включил EABI... и заработало. Но данный фокус с ядрами 2.6.27 и 2.6.29.1 не проходит ( хотя и расположение rootfs что надо и EABI включен).
Ещё вопрос - как теперь загружать в ситему приложения, без монтирования его в образ файловой системы?
И ещё некоторые ошибки:
at91sam9_wdt: invalid timeout (must be between 1 and 16)
где это значение ставится?
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
umount: Couldn't umount /mnt/mmc: Invalid argument
rmmod: at91_mci: No such file or directory
sysfs: duplicate filename 'at91_mci' can not be created
insmod: cannot insert `/modules/at91_mci.ko': File exists (-1): File exists
mount: Mounting /dev/mmc1 on /mnt/mmc failed: No such file or directory
вариантов много - например загрузка по tftp, ftp, при помощи ssh, внешний носитель (usb, sd, mmc) и тд...
этим не пользуюсь - ничего не могу сказать, у меня просто в ядре отключено.
и тд...
это ругань на пользовательские скрипты - у меня свои, поэтому не знаю где там у вас ошибка.
у меня так не получилось. Параметры ядра передавал через u-boot: ни с usb, ни с initrd не запустилось. kernel panic и всё!
Получилось только когда брал конфигурацию с диска для старого ядра (2.6.26). Даже не знаю что там такого особенного.
Кстати - не забывайте про замечательную команду diff - она все покажет и расскажет :) Например, чтобы узнать что замечательного в конфиге который работает
#cd путь_к_исходникам_ядра
# diff -u arch/arm/configs/at91sam9260ek_defconfig .config | grep -v "is not set" > config.diff
в файле config.diff будет отображена вся разница. с "+" будет то что добавилось по сравнению со стандартным, с "-" то что убрали.
Лучше не так а так например:
#cd путь_к_исходникам_ядра
#mv .config .config_my
#cp arch/arm/configs/at91sam9260ek_defconfig .config
#make ARCH=arm menuconfig
там ничего не меняя говорим exit и сохраняем новую конфигурацию
# diff -u .config .config_my | grep -v "is not set" > config.diff
иначе стандартный конфиг получется причесан под старое ядро и его нужно привести к текущему виду (через menuconfig)