24ая версия Linux, которая идет на диске с платой, работает нормально, но не поддерживает драйвер CAN-контроллера MCP2510.
Поэтому решили залить Linux посвежее.
Под VMWare с сайта kernel.org загрузили файл linux-2.6.38.tar.bz2, сконфигурировали его с помощью make_menuconfig и далее собрали с помощью make_kernel.
Однако в процессе загрузки Linux на плату получаем ошибку Bad Checksum. То же самое происходит с 34ой версией Linux.
Не совсем понятно требуется ли при изменении версии Linux как-то менять rootfs - мы оставили его без изменений - может ли в этом быть причина ?
Ядро распаковали в папку /home/user/ , скрипт сборки правили с помощью make_menuconfig если речь об этом, нужно сказать что точно правили ? (в целом, сконфигурировали ядро под нашу плату, отключили видеоконтроллер, подключили CAN).
выбрал минутку - посмотрел дома что к чему..
первое что проверьте по возможности - загрузите ядро по сети
после включения питания остановите работу Uboot любой клавишей в терминалке и наберите две команды:
и проследите начало запуска ядра
и еще - выложите тут то, что выдает Uboot по команде printenv
Не знаю насколько к Вам это применимо, но был у меня случай - в напортачил что-то при конфигурировании - и толи адресация ехала, толи "драйверок" не тот был... кароче. Затягиваю ядро по тфтп - у-бут кладет его на нанд, и запускает из сдрам. А вот когда питание отрубишь - валилось с вашей ошибкой. Потом переконфигурировал и все стало нормально. Посмотрите внимательно конфиг ядра на тему нанда.
ЧТД :)
все просто:
вот строка в юбуте вашей загрузки из датафлеш:
где размер бинарника под ядро равен 0x170000 а это 1507328 в десятичке.. а вот это истинный размер вашего ядра (из лога сообщ №3).
исход распаковки закономерен..
чтобы исправить ситуацию, надо поправить в скриптах окружения юбута размеры и адреса для бинарников и помнить что датафлеш "не резиновый" :)
тишина после запуска ядра..
опишите кратко - что делали и как собирали..
Как собирали... 1) Скачали файл linux-2.6.38.2.tar.bz2, залили его в линуху и там распаковали tar jxvf linux-2.6.38.2.tar.bz2 2) Скопировали в распакованную папку файлы make_menuconfig и make_kernel. 3) Запустили make_menuconfig, в нём выставили
system type -> ARM system type (Atmel AT91)
Atmel AT91 System-on-chip -> Atmel AT91 Processor (AT91SAM9260 or AT91SAM9XE)
В найстройках Board Type возвели Atmel AT91SAM9260-EK.
Отключили в Device Drivers ненужности вроде Sound, Bluetooth...
После чего сохранили в .config. 4) Запустили make_kernel.
Ядро собралось, появился zlinux.
Дальше всё по сценарию -
Копирование, запуск:
Verifying checksum ... OK