|
|
  |
Некоторые непонятки с Embedded Linux, разъясните некоторые вещи, пожалуйста :) |
|
|
|
Feb 10 2006, 21:28
|
Частый гость
 
Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885

|
Доброго времени суток... объясните мне зеленому несколько совсем простых вещей, пожалуйста  1. Есть ядро линуха. Есть его порты для разных платформ. Означает ли это, что если существует версия ядра уже портированная на какую-то платформу, например ARM, то она обязана запустится на любом представителе этой платформы, будь то девайсы от Atmel или того же Самсунга? Или для этого нужны еще какие-то телодвижения по адаптации ядра для данной платформы к конкретному камню? Т.е. если у меня есть порт линукса для ARM, взятый с того же www.arm.linux.org.uk, то нужно ли мне будет еще что-то с ним делать чтобы запустить на Atmel ARM 9200 или, скажем, на Cirrus'е каком-нить? 2. Кое чего прочитал про патчи для ядра, но так до конца и не понял, что это такое и зачем оно нужно? Просвятите, если "на пальцах"?  Ясно, что с помощью них (путем их применения к...) можно из сырцов обычного ядра можно что-то получить... а вот что получить?  Спасибо!
|
|
|
|
|
Feb 11 2006, 06:10
|

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

|
Цитата(Tigrik @ Feb 11 2006, 00:28)  Доброго времени суток... объясните мне зеленому несколько совсем простых вещей, пожалуйста 1. Есть ядро линуха. Есть его порты для разных платформ. Означает ли это, что если существует версия ядра уже портированная на какую-то платформу, например ARM, то она обязана запустится на любом представителе этой платформы, будь то девайсы от Atmel или того же Самсунга? Или для этого нужны еще какие-то телодвижения по адаптации ядра для данной платформы к конкретному камню? Т.е. если у меня есть порт линукса для ARM, взятый с того же www.arm.linux.org.uk, то нужно ли мне будет еще что-то с ним делать чтобы запустить на Atmel ARM 9200 или, скажем, на Cirrus'е каком-нить? Порт у Вас под процессор. Т.е. в исходниках ядра есть все необходимое (так считается) для того, чтобы ядро могло работать с системой прерываний отдельно взятого процессора, его MMU и т.п. Но процессор-то в вакууме не работает, поэтому в ядре помимо поддержки чистого процессора должна быть поддержка специфических устройств, которые есть в окружении процессора на Вашей плате. Естественно должны быть модули для общей периферии процессора. Без этого никуда. Цитата 2. Кое чего прочитал про патчи для ядра, но так до конца и не понял, что это такое и зачем оно нужно? Просвятите, если "на пальцах"?  Ясно, что с помощью них (путем их применения к...) можно из сырцов обычного ядра можно что-то получить... а вот что получить?  Патч - это результат сравнения двух версий исходников ядра - измененной и оригинальной. Допустим человек хотел добавить поддержку SPI-контроллера в ядро для AT91RM9200. Для этого он написал модуль и что-то поправил в исходниках ядра. Чтобы поделиться с другими и не передавать все ядро целиком он делает патч с помощью программы diff. Эта команда сравнивает исходные и модифицированные тексты ядра (или чего-то другого) и выдает результаты сравнения. Используя полученные результаты другой человек с помощью программы patch может привести свои исходные тексты ядра в нужному состоянию (наложить патч). Вот, собственно, и все. PS: А вообще патч - это заплатка.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Feb 13 2006, 09:39
|
Частый гость
 
Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885

|
Спасибо, но опять же...  На том же ftp://ftp.arm.linux.org.uk/pub/armlinux лежит порт линуха именно для платформы(или архитектуры, как хотите) arm, а не для конкретного представителя этой платформы,т.е. проца... Я прав? Если это порт для платформы arm, то понятно, что его еще придется дополнять дровами для перефирии конкретного проца. Либо, как Вы и предложили, доставать уже порт линуха для конкретного проца  Так получается?
|
|
|
|
|
Feb 13 2006, 15:00
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(Tigrik @ Feb 13 2006, 13:39)  Спасибо, но опять же...  На том же ftp://ftp.arm.linux.org.uk/pub/armlinux лежит порт линуха именно для платформы(или архитектуры, как хотите) arm, а не для конкретного представителя этой платформы,т.е. проца... Я прав? Если это порт для платформы arm, то понятно, что его еще придется дополнять дровами для перефирии конкретного проца. Либо, как Вы и предложили, доставать уже порт линуха для конкретного проца  Так получается?  В embedded OS, таких как pSOS | QNX - это всегда называлось BSP - board support port (кажется так?), и представлялось: - либо BSP для конкретной конфигурации, которую можно брать и использовать; - либо если подходящего BSP не находилось - то давалась всегда технология: как написать BSP под свою конфигурацию (хотя непростое это дело  ). При этом всё, что касалось самого ядра под платформу (x86, ARM, MIPS, ...) оставалось неизменным.
|
|
|
|
|
Feb 13 2006, 15:25
|
Частый гость
 
Группа: Свой
Сообщений: 77
Регистрация: 18-07-05
Из: Питер
Пользователь №: 6 885

|
Цитата(Olej @ Feb 13 2006, 18:00)  В embedded OS, таких как pSOS | QNX - это всегда называлось BSP - board support port (кажется так?), и представлялось: - либо BSP для конкретной конфигурации, которую можно брать и использовать; - либо если подходящего BSP не находилось - то давалась всегда технология: как написать BSP под свою конфигурацию (хотя непростое это дело  ). При этом всё, что касалось самого ядра под платформу (x86, ARM, MIPS, ...) оставалось неизменным. Т.е. к тому и приплыли... Берется порт ОС для конкретной платформы и обвешивается дровами/настройками для конкретного проца в конкретной конфигурации....
|
|
|
|
|
Feb 15 2006, 11:52
|
Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548

|
Истина, как всегда, находится посередине. Если исследовать иходники ядра линукса, то можно обнаружить определенную иерархию каталогов файлов. Иерархия выражается в том, что на самом верху находится подкаталог arch, в котором размещаются подкаталоги определяющие тип платформы например: i386,arm,m68k и т. д. Внутри каждого такого подкаталога размещаются подкаталоги начинающиеся с mach- в которых определяются конкретные структуры нажодящиеся на борту данного экземпляра платформы например в случае платформы arm: mach-at91rm9200, mach-pid7 и т.д. еще ниже находятся файлы описывающие допонительную периферию для данного экземпляра платформы, например для mach-at91rm9200 это board-dk board-ek и т.д. Исторически сложилось так, что наиболее полно в кернеле представлена платформа i386 и ее разновидности. Другие платформы представлены по разному и от версии кернела то более обширно то менее. Поэтому расчитывать на то, что сразу удастся запустить линукс на конкретном приборе не стоит, необходимо исследовать исходники кернеля на наличие ветки подкаталогов описывающие даную пратформу и ее разновидности в виде устройства и конкретного экземляра конфигурации. Как правило она не представлена в стандарной поставке исходника кернела, хотя в последнее время кернел постоянно пополняется новыми разновидностями аппаратных конфигураций. В случае отсутствия данной конфигурацию, необходимо произвести поиск по интернету такой конфигурации кернела, как правило представляющей из себя патч к определенной версии стандартной поставки кернеля, в котором находятся описания и драйвера устройств не имеющихся в стандартной поставке.
|
|
|
|
|
Feb 15 2006, 12:03
|
Частый гость
 
Группа: Свой
Сообщений: 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 и ее разновидности. Другие платформы представлены по разному и от версии кернела то более обширно то менее. Поэтому расчитывать на то, что сразу удастся запустить линукс на конкретном приборе не стоит, необходимо исследовать исходники кернеля на наличие ветки подкаталогов описывающие даную пратформу и ее разновидности в виде устройства и конкретного экземляра конфигурации. Как правило она не представлена в стандарной поставке исходника кернела, хотя в последнее время кернел постоянно пополняется новыми разновидностями аппаратных конфигураций. В случае отсутствия данной конфигурацию, необходимо произвести поиск по интернету такой конфигурации кернела, как правило представляющей из себя патч к определенной версии стандартной поставки кернеля, в котором находятся описания и драйвера устройств не имеющихся в стандартной поставке. Ну вот, все четко, ясно и по теме  ) Большое спасибо!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|