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

 
 
 
Reply to this topicStart new topic
> Некоторые непонятки с Embedded Linux, разъясните некоторые вещи, пожалуйста :)
Tigrik
сообщение Feb 10 2006, 21:28
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885



Доброго времени суток... объясните мне зеленому несколько совсем простых вещей, пожалуйста smile.gif

1. Есть ядро линуха. Есть его порты для разных платформ.
Означает ли это, что если существует версия ядра уже портированная на какую-то платформу, например ARM, то она обязана запустится на любом представителе этой платформы, будь то девайсы от Atmel или того же Самсунга? Или для этого нужны еще какие-то телодвижения по адаптации ядра для данной платформы к конкретному камню? Т.е. если у меня есть порт линукса для ARM, взятый с того же www.arm.linux.org.uk, то нужно ли мне будет еще что-то с ним делать чтобы запустить на Atmel ARM 9200 или, скажем, на Cirrus'е каком-нить?

2. Кое чего прочитал про патчи для ядра, но так до конца и не понял, что это такое и зачем оно нужно? Просвятите, если "на пальцах"? smile.gif Ясно, что с помощью них (путем их применения к...) можно из сырцов обычного ядра можно что-то получить... а вот что получить? smile.gif

Спасибо! smile.gif
Go to the top of the page
 
+Quote Post
makc
сообщение Feb 11 2006, 06:10
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Tigrik @ Feb 11 2006, 00:28) *
Доброго времени суток... объясните мне зеленому несколько совсем простых вещей, пожалуйста smile.gif

1. Есть ядро линуха. Есть его порты для разных платформ.
Означает ли это, что если существует версия ядра уже портированная на какую-то платформу, например ARM, то она обязана запустится на любом представителе этой платформы, будь то девайсы от Atmel или того же Самсунга? Или для этого нужны еще какие-то телодвижения по адаптации ядра для данной платформы к конкретному камню? Т.е. если у меня есть порт линукса для ARM, взятый с того же www.arm.linux.org.uk, то нужно ли мне будет еще что-то с ним делать чтобы запустить на Atmel ARM 9200 или, скажем, на Cirrus'е каком-нить?


Порт у Вас под процессор. Т.е. в исходниках ядра есть все необходимое (так считается) для того, чтобы ядро могло работать с системой прерываний отдельно взятого процессора, его MMU и т.п. Но процессор-то в вакууме не работает, поэтому в ядре помимо поддержки чистого процессора должна быть поддержка специфических устройств, которые есть в окружении процессора на Вашей плате. Естественно должны быть модули для общей периферии процессора. Без этого никуда.

Цитата
2. Кое чего прочитал про патчи для ядра, но так до конца и не понял, что это такое и зачем оно нужно? Просвятите, если "на пальцах"? smile.gif Ясно, что с помощью них (путем их применения к...) можно из сырцов обычного ядра можно что-то получить... а вот что получить? smile.gif


Патч - это результат сравнения двух версий исходников ядра - измененной и оригинальной. Допустим человек хотел добавить поддержку SPI-контроллера в ядро для AT91RM9200. Для этого он написал модуль и что-то поправил в исходниках ядра. Чтобы поделиться с другими и не передавать все ядро целиком он делает патч с помощью программы diff. Эта команда сравнивает исходные и модифицированные тексты ядра (или чего-то другого) и выдает результаты сравнения. Используя полученные результаты другой человек с помощью программы patch может привести свои исходные тексты ядра в нужному состоянию (наложить патч). Вот, собственно, и все. smile.gif

PS: А вообще патч - это заплатка. smile.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Tigrik
сообщение Feb 13 2006, 09:39
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885



Спасибо, но опять же... smile.gif На том же ftp://ftp.arm.linux.org.uk/pub/armlinux лежит порт линуха именно для платформы(или архитектуры, как хотите) arm, а не для конкретного представителя этой платформы,т.е. проца... Я прав?

Если это порт для платформы arm, то понятно, что его еще придется дополнять дровами для перефирии конкретного проца. Либо, как Вы и предложили, доставать уже порт линуха для конкретного проца smile.gif

Так получается? smile.gif
Go to the top of the page
 
+Quote Post
Olej
сообщение Feb 13 2006, 15:00
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(Tigrik @ Feb 13 2006, 13:39) *
Спасибо, но опять же... smile.gif На том же ftp://ftp.arm.linux.org.uk/pub/armlinux лежит порт линуха именно для платформы(или архитектуры, как хотите) arm, а не для конкретного представителя этой платформы,т.е. проца... Я прав?

Если это порт для платформы arm, то понятно, что его еще придется дополнять дровами для перефирии конкретного проца. Либо, как Вы и предложили, доставать уже порт линуха для конкретного проца smile.gif

Так получается? smile.gif


В embedded OS, таких как pSOS | QNX - это всегда называлось BSP - board support port (кажется так?), и представлялось:
- либо BSP для конкретной конфигурации, которую можно брать и использовать;
- либо если подходящего BSP не находилось - то давалась всегда технология: как написать BSP под свою конфигурацию (хотя непростое это дело sad.gif).
При этом всё, что касалось самого ядра под платформу (x86, ARM, MIPS, ...) оставалось неизменным.
Go to the top of the page
 
+Quote Post
Tigrik
сообщение Feb 13 2006, 15:25
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885



Цитата(Olej @ Feb 13 2006, 18:00) *
В embedded OS, таких как pSOS | QNX - это всегда называлось BSP - board support port (кажется так?), и представлялось:
- либо BSP для конкретной конфигурации, которую можно брать и использовать;
- либо если подходящего BSP не находилось - то давалась всегда технология: как написать BSP под свою конфигурацию (хотя непростое это дело sad.gif).
При этом всё, что касалось самого ядра под платформу (x86, ARM, MIPS, ...) оставалось неизменным.


Т.е. к тому и приплыли... Берется порт ОС для конкретной платформы и обвешивается дровами/настройками для конкретного проца в конкретной конфигурации....
Go to the top of the page
 
+Quote Post
d__
сообщение Feb 15 2006, 11:52
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548



Истина, как всегда, находится посередине. Если исследовать иходники ядра линукса, то можно обнаружить определенную иерархию каталогов файлов. Иерархия выражается в том, что на самом верху находится подкаталог arch, в котором размещаются подкаталоги определяющие тип платформы например: i386,arm,m68k и т. д. Внутри каждого такого подкаталога размещаются подкаталоги начинающиеся с mach- в которых определяются конкретные структуры нажодящиеся на борту данного экземпляра платформы например в случае платформы arm: mach-at91rm9200, mach-pid7 и т.д. еще ниже находятся файлы описывающие допонительную периферию для данного экземпляра платформы, например для mach-at91rm9200 это board-dk board-ek и т.д. Исторически сложилось так, что наиболее полно в кернеле представлена платформа i386 и ее разновидности. Другие платформы представлены по разному и от версии кернела то более обширно то менее. Поэтому расчитывать на то, что сразу удастся запустить линукс на конкретном приборе не стоит, необходимо исследовать исходники кернеля на наличие ветки подкаталогов описывающие даную пратформу и ее разновидности в виде устройства и конкретного экземляра конфигурации. Как правило она не представлена в стандарной поставке исходника кернела, хотя в последнее время кернел постоянно пополняется новыми разновидностями аппаратных конфигураций. В случае отсутствия данной конфигурацию, необходимо произвести поиск по интернету такой конфигурации кернела, как правило представляющей из себя патч к определенной версии стандартной поставки кернеля, в котором находятся описания и драйвера устройств не имеющихся в стандартной поставке.
Go to the top of the page
 
+Quote Post
Tigrik
сообщение Feb 15 2006, 12:03
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885



Цитата(d__ @ Feb 15 2006, 14:52) *
Истина, как всегда, находится посередине. Если исследовать иходники ядра линукса, то можно обнаружить определенную иерархию каталогов файлов. Иерархия выражается в том, что на самом верху находится подкаталог arch, в котором размещаются подкаталоги определяющие тип платформы например: i386,arm,m68k и т. д. Внутри каждого такого подкаталога размещаются подкаталоги начинающиеся с mach- в которых определяются конкретные структуры нажодящиеся на борту данного экземпляра платформы например в случае платформы arm: mach-at91rm9200, mach-pid7 и т.д. еще ниже находятся файлы описывающие допонительную периферию для данного экземпляра платформы, например для mach-at91rm9200 это board-dk board-ek и т.д. Исторически сложилось так, что наиболее полно в кернеле представлена платформа i386 и ее разновидности. Другие платформы представлены по разному и от версии кернела то более обширно то менее. Поэтому расчитывать на то, что сразу удастся запустить линукс на конкретном приборе не стоит, необходимо исследовать исходники кернеля на наличие ветки подкаталогов описывающие даную пратформу и ее разновидности в виде устройства и конкретного экземляра конфигурации. Как правило она не представлена в стандарной поставке исходника кернела, хотя в последнее время кернел постоянно пополняется новыми разновидностями аппаратных конфигураций. В случае отсутствия данной конфигурацию, необходимо произвести поиск по интернету такой конфигурации кернела, как правило представляющей из себя патч к определенной версии стандартной поставки кернеля, в котором находятся описания и драйвера устройств не имеющихся в стандартной поставке.


Ну вот, все четко, ясно и по теме smile.gif)
Большое спасибо! smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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