Перейти к содержанию
    

переход на новое ядро

Добрый день!

 

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

 

Решил перейти на новое ядро. с ужасом заметил что в ядре 3.1.10 в menuconfig нет борды Owlboard и соответтсвенно нату файла борды.

Вопрос: как добавить мою борду в конфиг нового ядра? (тупое копирование файла борды и попытка подсунуть в качестве другой борды не увенчалась успехом :smile3046: )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: как добавить мою борду в конфиг нового ядра? (тупое копирование файла борды и попытка подсунуть в качестве другой борды не увенчалась успехом :smile3046: )

В новых ядрах (3.x) изменилась идеалогия (dts file), посмотрите здесь для начала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 3.12 файл Биглборда есть:

http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c

 

Я могу вам рассказать, что надо делать, но будет непросто. Я хорошо знаю 2.6, но не работал с 3 и выше.

Вам надо модифицировать Makefile и Kconfig, тогда ваш файл появится в конфигурации и будет строиться.

Идентификация вашего устройства присутствует в старом файле, а вот если есть изменения в определении устройств, то у вас будет много работы. Зато узнаете много нового.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 3.12 файл Биглборда есть:

http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c

 

Я могу вам рассказать, что надо делать, но будет непросто. Я хорошо знаю 2.6, но не работал с 3 и выше.

Вам надо модифицировать Makefile и Kconfig, тогда ваш файл появится в конфигурации и будет строиться.

Идентификация вашего устройства присутствует в старом файле, а вот если есть изменения в определении устройств, то у вас будет много работы. Зато узнаете много нового.

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Не от меня. Я только знаю куда идти. Так что по дороге вместе узнаем :)

Пока надо будет редактировать ваш файл, чтобы скомпилировать кернел. Потом будем устранять ошибки.

В какой директории находится ваш файл устройства?

arch/arm/mach-?????

 

Не могу найти файл в официальном дереве кернела. Хотя идентификацию нашел:

3736 Owlboard Plus OMAP-L138 l138_owlboard_plus

#define MACH_TYPE_L138_OWLBOARD_PLUS 3736

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В какой директории находится ваш файл устройства?

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 , который есть в ванильном ядре, под мою борду?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне вот просто интересно, а зачем вы обновляете версию ядра если текущая в принципе работает? Это куча проблем на ровном месте, а полезность результата весьма сомнительна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне вот просто интересно, а зачем вы обновляете версию ядра если текущая в принципе работает? Это куча проблем на ровном месте, а полезность результата весьма сомнительна.

я скачал SDK для OMAP-L138. В пакете идёт syslink для межъядерного взаимодействия и Linux-3.1.10 (в виде бинарника). Исходники ядра есть, но они в архиве и не сконфигурированы вообще(что странно), бинарник запускается нормально, но для syslink нужны исходники

Я не уверен что syslink будет работать на ядре 2.6.37. Хотя, если честно, пока не пробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а зачем вы обновляете версию ядра если текущая в принципе работает

Зачастую смысл в этом есть, особенно когда процессор/контроллер достаточно новый часто подправляют, дорабатывают сырые версии драйверов ну и конечно же новые подсистемы ядра (правда если они действительно необходимы в конкретном устройстве).

Также, от себя, я бы посоветовал если и переходить на новую версию ядра, то уж на последнюю стабильную, с долгим временем поддержки. На текущий момент это ядро серии 3.10.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня ядро 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() можно пока закоментировать, а потом посмотрите как сделано и доделаете.

 

я скачал 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С появлением дерева устройств файл устройства разделился на два. Вторая его часть здесь:

http://lxr.free-electrons.com/source/arch/arm/boot/dts/

 

 

Эта часть мне незнакома. Будем читать вместе:

http://devicetree.org/Device_Tree_Usage

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...