Пытаюсь запустить плату с SD карточки с отключенным NAND (отключен джампером), однако возникли проблемы.
1. "Заводской" вариант:
Если на SD флешку залить файлы из папки
\SK-MAT91SAM9G45\Images\SD_boot\
которая идет в комплекте с платой SK-MAT91SAM9G45
то плата стартует ОК, однако почему-то в safe mode:
ВОПРОС: это нормально? Почему она стартует в safe режиме, а не в нормальном?
2. Вариант "пробуем сами"
Хочу запустить плату с HDMI. Согласно инструкции надо пересобрать ядро с дровами для HDMI.
За основу берем тот конфиг ядра который лежит изначально в VMWare образе, запускаем make_menuconfig,
добавляем дрова HDMI.
- запускаем build_system.
Полученные файлы копируем поверх старых на SD:
mat91_sd.bin
rootfs_mat9g45.tgz
zlinux
Вставляем карточку в плату, жмем резет, загрузка прекращается со следующими строчками:
Посоветуйте, с чего начать диагностику? Уже 3 дня ломаю голову
Слова safe mode в данном случае роли не играют, размер ядра как можете увидеть 5,8 М - это ядро + корневая фс (initramfs), так что это нормально, замените at91_sd.bin своим ядром и будет так как вам нужно (только переименуйте в at91_sd.bin)
Если вы грузитесь с SD то размыкаете перемычку NAND_CS, внимание вопрос - где ядро должно искать nand flash если у нее отключен CS :) Впринципе можно сразу как появятся первые сообщения от ядра быстро замкнуть ее, но второй вопрос возникает - зачем грузиться с SD а корневую держать в NAND ?
Так что вам нужно вернуться сюда
и изменить командную строку, чтобы указать в качестве корневой фс раздел с SD.
спасибо за подсказки стартовал с SD успешно.
делал так:
1. в make_menuconfig выставил
запустил make_kernel и собрал ядро* (см. замечание по этому поводу ниже в п.3)
2. отформатил флешку:
- первая партиция FAT32
туда залил BOOT.BIN и mat91_sd.bin
- вторая партиция EXT2
туда залил rootfs_mat9g45.tgz и распаковал в корне
всё, плата стартует с отключенным NANDом с SD карточкой успешно.
3. Замечание по поводу сборки make_kernel:
в vmware образе который мы скачали с фтп изготовителя как приложение к плате MAT91SAM9G45, по умолчанию выставлен путь:
Соответственно make_kernel не работает и выдает ошибку
./make_kernel: line 9: arm-none-linux-gnueabi-objcopy: command not found
Проблема решается добавлением в путь нужной папки, так: