Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
AT91SAM9260 Linux-2.6.38 Bad_CRC
CerJo
Добавлено 25.03.2011 11:42
0
Сообщение: 1
CerJo
5

Пункты: 365
Регистрация: 01.02.2011
Добрый день,

работаем с платой Starterkit AT91SAM9260-EK.

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 - мы оставили его без изменений - может ли в этом быть причина ?

Спасибо
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 25.03.2011 13:21 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
лог, плз, выложите от строчки запуска Юбута до bad checksum

куда распаковали ядро и правили ли скрипты сборки?

когда я последний раз касался сборки новых ядер для 9260 то таких проблем не испытывал..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
CerJo
Добавлено 25.03.2011 16:33 Сообщение: 3
CerJo
5

Пункты: 365
Регистрация: 01.02.2011
Вот лог запуска:

Код
RomBOOT
>Start AT91Bootstrap...
Copy application ...
Run ...


U-Boot 1.1.5 (Apr 9 2008 - 23:02:52)

DRAM: 32 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C041FFFF
In: serial
Out: serial
Err: serial
KS8721 PHY Detected
ETH: 100M Full Duplex.
End of Autonegociation
Hit any key to stop autoboot: 0
## Booting image at 20400000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1706968 Bytes = 1.6 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... Bad Data CRC


Ядро распаковали в папку /home/user/ , скрипт сборки правили с помощью make_menuconfig если речь об этом, нужно сказать что точно правили ? (в целом, сконфигурировали ядро под нашу плату, отключили видеоконтроллер, подключили CAN).
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 26.03.2011 18:21 Сообщение: 4
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
выбрал минутку - посмотрел дома что к чему..
первое что проверьте по возможности - загрузите ядро по сети
после включения питания остановите работу Uboot любой клавишей в терминалке и наберите две команды:
Код
tftpboot 20400000 zlinux
bootm 20400000

и проследите начало запуска ядра

и еще - выложите тут то, что выдает Uboot по команде printenv

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 26.03.2011 18:55 Сообщение: 5
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Не знаю насколько к Вам это применимо, но был у меня случай - в напортачил что-то при конфигурировании - и толи адресация ехала, толи "драйверок" не тот был... кароче. Затягиваю ядро по тфтп - у-бут кладет его на нанд, и запускает из сдрам. А вот когда питание отрубишь - валилось с вашей ошибкой. Потом переконфигурировал и все стало нормально. Посмотрите внимательно конфиг ядра на тему нанда.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 26.03.2011 19:16 Сообщение: 6
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Посмотрите внимательно конфиг ядра на тему нанда.

ТС нанд как рыбе зонтик :)

Код
DataFlash:AT45DB321

если и косяк, то в датафлеш, поэтому я и попросил выложить printenv

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
CerJo
Добавлено 31.03.2011 10:15 Сообщение: 7
CerJo
5

Пункты: 365
Регистрация: 01.02.2011
Спасибо за ответы.

Jury093, вот результат printenv:
Код
U-Boot> printenv
bootdelay=3
baudrate=115200
tftp_update=tftpboot 20400000 zlinux; cp.b 20400000 c0038000 170000; tftpboot 20400000 rootfs; cp.b 20400000 c01a8000 277fff
tftp_boot=tftpboot 20400000 zlinux; tftpboot 21100000 rootfs; bootm 20400000
boot_df=cp.b c0038000 20400000 170000; cp.b c01a8000 21100000 277fff; bootm 20400000
ipaddr=192.168.0.136
netmask=255.255.255.0
ethaddr=00:1f:f2:00:00:00
serverip=192.168.0.2
bootcmd=run boot_df
stdin=serial
stdout=serial
stderr=serial

Environment size: 470/16380 bytes


После загрузки посредством
Код
tftpboot 20400000 zlinux
bootm 20400000

Чексумма ... ОК
Starting kernel..
и на этом работа платы закончилась.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 31.03.2011 11:01 Сообщение: 8
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Чексумма ... ОК

ЧТД :)
все просто:
вот строка в юбуте вашей загрузки из датафлеш:
Код
boot_df=cp.b c0038000 20400000 170000; cp.b c01a8000 21100000 277fff; bootm 20400000

где размер бинарника под ядро равен 0x170000 а это 1507328 в десятичке.. а вот это истинный размер вашего ядра (из лога сообщ №3).
Код
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1706968 Bytes = 1.6 MB

исход распаковки закономерен..
чтобы исправить ситуацию, надо поправить в скриптах окружения юбута размеры и адреса для бинарников и помнить что датафлеш "не резиновый" :)

тишина после запуска ядра..
опишите кратко - что делали и как собирали..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
CerJo
Добавлено 05.04.2011 17:50 Редактировалось 05.04.2011 17:55 Сообщение: 9
CerJo
5

Пункты: 365
Регистрация: 01.02.2011
Как собирали...
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

Starting kernel...

Тишина.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 05.04.2011 17:54 Редактировалось 05.04.2011 17:55 Сообщение: 10
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Starting kernel...
Тишина

а defconfig натянуть? в фак (в хорошем смысле) загляните..
убегаю..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux