Имеется плата SK-MAT91MAS9260 с установленным на неё Linux 2.6.24 (родной, поставлялся вместе с платой). Возникла необходимость подключить к данной плате по SPI устройство MCP2510 (CAN).
Есть ли возможность включить в ядро поддержку CAN и работать с MCP2510 через вот эту программу: http://user.chol.com/~ascbbs/ccscdrv2/can-mcp251x.c ? Если есть, то где можно взять необходимую информацию по закачке, установке и настройке?
Jury093, спасибо за совет. Попробовали собрать ядро 2.6.34 (Проверили, CAN поддерживает). Выставили настройки make файла как в предыдущей версии 2.6.24 (рабочий конфиг для нашей платы) и дополнительно доставили опции CAN.
В неожиданном месте возникла ошибка о том, что структура gpio_spi... не определена.
Скорее всего неправильно был настроен make файл. Шаманство с "отключить вот это" и "включить вот это" не помогло. Может ли кто-нибудь подсказать, как нужно настроить make файл, или (что было бы лучше) дать ссылочку на готовый конфиг? Или может быть есть у кого-то уже готовое ядро для данной платы, буду благодарен. Если найдется готовый конфиг, прошу залить на мыло.
а.. это.. кусок лога приложит, там где ругается..
и что у вас в качестве SPI используется - GPIO доступ или аппаратный вариант? а в файл борды устройство прописали?
я бы "собезьянничал" из файла board-yl-9200.c с поправками под себя, типа:
кстати, make_kernel (если взят из старого ядра) вероятно тут непричем..
то, что внутри драйвера написано, делали?
чет был в задумчивости - посоветовал "от балды", вы этот драйверок повнимательнее проверьте, возможно его "допиливать" придется под конкретную задачу и железо..
Jury093, вопросов касательно CAN пока никаких нету (скорей всего скоро возникнут), ибо ядро не собирается не из-за него. Т.е. в конфиге отключили поддержку CAN и при попытке собрать ядро - возникает та же ошибка, текст которой приведён ниже:
SPI у нас видится и используется как spidev1.0, управляем мы программным способом.
Всё таки мы усомнились в непорочности того ядра, которое у нас было(2.6.34) и попробовали поставить его с чистого листа. Почём не зря, ибо сборка пошла. Ругался только makefile.boot в папке math-at91, если я не ошибаюсь, по 2-м причинам.
1) else ifeq (...), писал, что после else идёт код, чего быть не должно. Перенести ifeq(...) на новую строчку, ошибка пропала.
2) не хватало ifend в конце кода. Дописали - ошибки пропали вообще.
Ядро собралось для нашей платы, как надо. Конфиги более/менее соответствуют тем, что из 24-й версии ядра, которое работает на нашей плате стабильно.
По U-Boot заливаем ядро через putty, всё идёт стабильно, zlinux и rootfs льются.
Перезапускаем плату - ошибка загрузки: пишет, что контрольная сумма не верна "... data CRC"
Попробовали снова залить старую 2.6.24 - всё работает.
Эта проблема уже рассматривалась с не совпадением контрольной суммы конкретно на форуме, но решения так и не было найдено.
Что делать даже и не знаем, и не до конца понимаем, как работает сборка rootfs файла из папки mnt.
угу, я с этим сталкивался достаточно давно - ошибка синтаксиса
пока видятся два варианта:
- слишком большое ядро >5МБ
- "нахлест" рутовой на ядро при записи во флеш или если пишите скриптом из uboot - реальный размер ядра больше прописанного во флеше в скрипте..
не знаю, как сейчас, но раньше лежал имидж рутовой и пара скриптов распаковать/запаковать. исследуйте свои скрипты..