реклама на сайте
подробности

 
 
> переход на новое ядро, проблема с файлом борды
TigerSHARC
сообщение Nov 10 2013, 18:01
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Добрый день!

Использую однолплатный компьютер на базе AM1808. Ранее использовал пакет от производителя, где поставлялось ядро 2.xx.xx и в конфиге указывался файл борды owlboard-mini.c, соответственно в menuconfig присутстовала строка для выбора этого типа борды.

Решил перейти на новое ядро. с ужасом заметил что в ядре 3.1.10 в menuconfig нет борды Owlboard и соответтсвенно нату файла борды.
Вопрос: как добавить мою борду в конфиг нового ядра? (тупое копирование файла борды и попытка подсунуть в качестве другой борды не увенчалась успехом smile3046.gif )
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Nov 10 2013, 20:09
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



В 3.12 файл Биглборда есть:
http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c

Я могу вам рассказать, что надо делать, но будет непросто. Я хорошо знаю 2.6, но не работал с 3 и выше.
Вам надо модифицировать Makefile и Kconfig, тогда ваш файл появится в конфигурации и будет строиться.
Идентификация вашего устройства присутствует в старом файле, а вот если есть изменения в определении устройств, то у вас будет много работы. Зато узнаете много нового.

Что такое не увенчалось успехом? Кернел грузится? Где падает? Вам надо подключить консоль и исследовать сообщения.

Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 11 2013, 05:03
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(Tarbal @ Nov 11 2013, 00:09) *
В 3.12 файл Биглборда есть:
http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c

Я могу вам рассказать, что надо делать, но будет непросто. Я хорошо знаю 2.6, но не работал с 3 и выше.
Вам надо модифицировать Makefile и Kconfig, тогда ваш файл появится в конфигурации и будет строиться.
Идентификация вашего устройства присутствует в старом файле, а вот если есть изменения в определении устройств, то у вас будет много работы. Зато узнаете много нового.

Что такое не увенчалось успехом? Кернел грузится? Где падает? Вам надо подключить консоль и исследовать сообщения.


буду рад узнать от вас много нового!

Не увенчалась успехом значит что вывалилась ошибка во время сборки ядра (подробности выложу сегодня вечером). Я пытался подсунуть код моей платы Owlboard, тупо вставив его в файл hawkboard (он есть в исходниках ядра 3.1.10).
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 11 2013, 20:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(TigerSHARC @ Nov 11 2013, 08:03) *
буду рад узнать от вас много нового!

Не увенчалась успехом значит что вывалилась ошибка во время сборки ядра (подробности выложу сегодня вечером). Я пытался подсунуть код моей платы Owlboard, тупо вставив его в файл hawkboard (он есть в исходниках ядра 3.1.10).


Не от меня. Я только знаю куда идти. Так что по дороге вместе узнаем sm.gif
Пока надо будет редактировать ваш файл, чтобы скомпилировать кернел. Потом будем устранять ошибки.
В какой директории находится ваш файл устройства?
arch/arm/mach-?????

Не могу найти файл в официальном дереве кернела. Хотя идентификацию нашел:
3736 Owlboard Plus OMAP-L138 l138_owlboard_plus
#define MACH_TYPE_L138_OWLBOARD_PLUS 3736
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 12 2013, 05:23
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(Tarbal @ Nov 12 2013, 00:02) *
В какой директории находится ваш файл устройства?
arch/arm/mach-?????


у меня ядро 2.6.37
файл борды лежит в .../arch/arm/mach-davinchi/board-l138-owlboardplus.c

только сейчас заметил, похоже в ванильном ядре вообще такого файла нет. у меня папка с ядром называется linux-2.6.37_DAVINCI_03.21.00.04
подозреваю что это пропатченое ядро...

тогда как переделать файл board-omapl138-hawk.c , который есть в ванильном ядре, под мою борду?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 12 2013, 17:19
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(TigerSHARC @ Nov 12 2013, 09:23) *
у меня ядро 2.6.37
файл борды лежит в .../arch/arm/mach-davinchi/board-l138-owlboardplus.c

только сейчас заметил, похоже в ванильном ядре вообще такого файла нет. у меня папка с ядром называется linux-2.6.37_DAVINCI_03.21.00.04
подозреваю что это пропатченое ядро...

тогда как переделать файл board-omapl138-hawk.c , который есть в ванильном ядре, под мою борду?


Первым делом ищите в своем файле L138_OWLBOARD_PLUS и переписываете строчку в переделываемом файле на строчку с этим значением. Обычно это одна из последних строк файла.

MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
замените на
MACHINE_START(L138_OWLBOARD_PLUS, "AM18x/OMAP-L138 Hawkboard")
Только сначала проверьте если в вашем файле используется L138_OWLBOARD_PLUS. Надо именно то, что там.
Текст пока не трогайте. Заработает -- поменяете. Этот текст консоль напишет при старте.
А вот если не поменять, то кернел не стартует вообще.

Пройдите по всем структурам и дефайнам, определяющим устройства и пины и переопределите под свой борд.
Особое значение имеет PMIC. Я не нашел этого в ястребе (hawk -- OMAP-L138 Hawkboard).
Проверьте есть ли опреденление PMIC параметров, напряжений, токов в вашем файле.

Если сделать это неправильно, то консоли не будет:
316 #ifdef CONFIG_SERIAL_8250_CONSOLE
317 static int __init omapl138_hawk_console_init(void)
318 {
319 if (!machine_is_omapl138_hawkboard())
320 return 0;
321
322 return add_preferred_console("ttyS", 2, "115200");
323 }
324 console_initcall(omapl138_hawk_console_init);
325 #endif

Проверку machine_is_omapl138_hawkboard() можно пока закоментировать, а потом посмотрите как сделано и доделаете.

Цитата(TigerSHARC @ Nov 12 2013, 13:48) *
я скачал SDK для OMAP-L138. В пакете идёт syslink для межъядерного взаимодействия и Linux-3.1.10 (в виде бинарника). Исходники ядра есть, но они в архиве и не сконфигурированы вообще(что странно), бинарник запускается нормально, но для syslink нужны исходники
Я не уверен что syslink будет работать на ядре 2.6.37. Хотя, если честно, пока не пробовал.


Получить содержимое конфигурации легко:
Установите бинарники, запустите машину и считайте конфигурацию одним из способов:
из файла /boot/config-версия-кернела
из архива /proc/config.gz
Скопируйте содержимое в файл .config. Поместите .config в корне исходников кернела. Где вы запустите команду make ARCH=arm configure


Не запуская тоже можно:
http://stackoverflow.com/questions/1495819...ux-kernel-image


Только имейте ввиду, что образ ядра обычно сжат и его надо сначала разархивировать.

Сообщение отредактировал Tarbal - Nov 12 2013, 17:40
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016