LINUX.ORG.RU

Собрать ядро под ARM


0

0

Ну вот и собрал я ARM-toolchain.

Следующий этап - сборка ядра. Где про это можно почитать? Везде где ставят линукс на КПК лежат уже готовые образы. А хотелось-бы почитать...

★★★★

Ответ на: комментарий от SatanClaus

На чистом ядре? Без патчей?

Меня такой вопрос интересует. Допустим я получил какой-то бинареик ядра. Он позиционно-независим? Как его грамотно запускать?

alexru ★★★★
() автор топика

Судя по вашим постам вы начинающий системный администратор или только что вышли из застенков института. Поэтому я думаю вы пошли не тем путём. Сначала выбирается железка с которой будете работать. Выбирается исходя из интересуещей вас архитектуры(сдесь вы похоже определились) наличия интересующих интерфейсов (через которые скорее всего и будете грузить ядро), поддержки коммунити или какого либо гиганта (Intel TI AD). В вашем случае нужна железка с "попсовым PCшным" интерфейсом USB а лучше Ethernet и прошытым загрузчиком умеюшим грузить ядро по этому интерфейсу. Если же у вас есть эмулятор то вы можете позволить себе большего, но судя по вопросам у вас его нет :).

Всё читаем доки от коммунити или от "гиганта" и наслаждаемся процессом. Советую посмотреть в сторону OMAP5912 OSK. Стоит очень не дорого 300$, легко купить, коммунити, гигант (TI и Nokia). Вот линьк linux.omap.com по нему найдёте полный набор документации, precompiled kernel, и уже собранный набор toolchain.

bizon_art
()
Ответ на: комментарий от bizon_art

Вообще я представляю как все происходит. Но хочу запустить линукс на КПК (RoverPC P3). Объем имеющейся документации соответственно никакой. Если-бы у меня была возможность самому проектирвать устройство, то скорее всего это был-бы PowerPC и вопросов я бы не задавал :)

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Есть один маленький и не приятный момент.

Если ты сделал tool chain то по пределению компилёное в нём ядро должно работать на арм совместимой платформе. Но не всегда так.

Например на ARMCore такая тема не пройдёт. Т.к. плотность монтажа микросхем слишком высокая, в результате чего применены определённые схемотехнические извращения. Т.е. на этой платформе будет работать ядро линукса, которое пропатчено их родным патчем, которое учитывает извраты схемотехники на плате.

Надеюсь изделие ARMCore фирмы Compulab это исключение из правил платформы арм, т.е. остальные платформы сделаны вменяемо без всяких схемотехнических извращений. Конечно же было бы прекрасно если мобильник тоже сделан на совесть.

Напиши о результатах в форум или помести инфу на свою страничку.

;)

Кстати на ровере есть поддержка функция эенргосбережения?

binr ★★
()
Ответ на: комментарий от binr

> Например на ARMCore такая тема не пройдёт. Т.к. плотность монтажа микросхем слишком высокая, в результате чего применены определённые схемотехнические извращения. Т.е. на этой платформе будет работать ядро линукса, которое пропатчено их родным патчем, которое учитывает извраты схемотехники на плате.

а можно подробнее на этом моменте? что патчили и пр.

ps: я в курсе, что такое ARMCore :) и спцификаций на некоторые используемые в нем микросхемы я так и не нашел :(

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Мне не приходилось особенно не заморачивался с ARMCore. Но коллега пытался ставить стандартный ARM патч на debian овское ядро и оно в результате не загружалась. Приходится юзать патчи от compulab.

Зная о некоторых приколах программирования x86, в частности на некоторых моделях нельзя произвести запись в порт outb(), необходимо сначала передвинуть окно так что бы в него попадал необходимый номер порта, в который потом можно произвести запись. Я подумал что это извращение системотехники, иначе как это объяснить?

Кроме того я рапаковал патч diff-2.6.7-armcore.gz в файл и нашёл там:

+/* + * Install handler for IT8152 IRQ. Yes, yes... we are way down the IRQ

+ * cascade which is not good for IRQ latency, but the hardware has been

+ * designed that way... + */

+ + +extern int SearchIT8711(void);

+extern void InitLPCInterface(void);

+ +#ifdef CONFIG_PM

+static unsigned int sio_reset_base = 0;

+static int parallel;

+#endif

+ + +static inline void armcore_irq(int irq, struct pt_regs *regs)

+{ + struct irqdesc *desc;

+ desc = irq_desc + irq;

+ desc->handle(irq, desc, regs);

+}

Коментарий просто прелестный.

Но на http://www.arm.linux.org.uk/developer/machines/: 438 CompuLab ARMCORE module armcore Guennadi Liakhovetski - unknown -

438 Contact: Guennadi Liakhovetski Created: Thu, 15 Jan 2004 12:14:03 GMT Status: Active Machine name: CompuLab ARMCORE module Machine type: armcore Type macro: machine_is_armcore() Config variable: CONFIG_MACH_ARMCORE Machine type: MACH_TYPE_ARMCORE Directory suffix: pxa Web site: http://www.compulab.co.il/armcore.htm

Кстати там же для Ровера: 426 Rover P5+ roverp5p Konstantine A. Beklemishev - unknown -

426 Contact: Konstantine A. Beklemishev Created: Sun, 4 Jan 2004 21:28:01 GMT Status: Active Machine name: Rover P5+ Machine type: roverp5p Type macro: machine_is_roverp5p() Config variable: CONFIG_MACH_ROVERP5P Machine type: MACH_TYPE_ROVERP5P Directory suffix: pxa Web site: http://handhelds.org/projects/rover.html Patch suffix: Description: RoverPC P5+

Я не разработчик и с ARMCore много не работал. нО в патче в коментариях есть почтовые адреса людей которые наверняка знают специфику ARMCore :) пример:

+/*

+ *

+ * BRIEF MODULE DESCRIPTION

+ * ITE Semi IT8712 Super I/O functions.

+ *

+ * Copyright 2001 MontaVista Software Inc.

+ * Author: MontaVista Software, Inc.

+ * ppopov@mvista.com or support@mvista.com

+ *

+ * This program is free software; you can redistribute it and/or modify it

+ * under the terms of the GNU General Public License as published by the

+ * Free Software Foundation; either version 2 of the License, or (at your

+ * option) any later version.

+ *

+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED

+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN

+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,

+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON

+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF

+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ *

+ * You should have received a copy of the GNU General Public License along

+ * with this program; if not, write to the Free Software Foundation, Inc.,

+ * 675 Mass Ave, Cambridge, MA 02139, USA.

+ */

+

+#include <asm/io.h>

+#include <asm/types.h>

+#include <asm/it8711.h>

+#include <asm/arch-pxa/armcore.h>

+

А на какие микросхемы вы не могли найти спецификации?

binr ★★
()
Ответ на: комментарий от binr

> Мне не приходилось особенно не заморачивался с ARMCore. Но коллега пытался ставить стандартный ARM патч на debian овское ядро и оно в результате не загружалась. Приходится юзать патчи от compulab.

я этой платой возился, пытаясь водрузить на нее NetBSD/arm32. заминка вышла с родным первичным загрузчиком - ребята из CompuLab на коленке навояли нечто свое и, как следствие, не умеющее грузить ELF (бо зачем это им под Linux). в принципе, можно конечно перешить их загрузчик на флеше на что-нить более приличное, но я не стал рисковать :)

а их родной Linux вполне нормально работает, вроде без нареканий. так что даже что-то пересобирать не пришлось. хотя при размере флеша в 64Mb за busybox я бы "поубывав бы" бо дюже неудобное поделие :-/

> А на какие микросхемы вы не могли найти спецификации?

там стоят две микросхемы от ITE: IT8152G - это я так понимаю companion chipset и IT8711F-A - это интерфейс на шину LPC и Multi I/O. вроде как по первой, главной, в свое время так ничего и не нашел. а это собссно самая важная вещь. afaiu это тайваньский клон оригинального интеловского чипа для PXA255, но на www.ite.com.tw ничего путного почти год назад на эту тему небыло.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Если микрухи клоны, то наверно надо всё искать на интеле. Маловероятно что тайвань будет докручивать интеловские разработки ;)

Ядра компулаба и ядра пропатченные их патчами работают. Но у моего коллеги не получилось запустить ядро с обычным ARM патчем от debian - это есть плохо.

Технологии уникальные, а включаешь - не работает.

Жванецкий (с)

:)

binr ★★
()
Ответ на: комментарий от binr

> Если микрухи клоны, то наверно надо всё искать на интеле. Маловероятно что тайвань будет докручивать интеловские разработки ;)

в том-то и проблема, что afaiu (sic!) Intel передает/продает технологию производства второстепенных компонентов в Тайвань, а там уже ребята могут "подтачивать" оригинальную разработку под свое видение/нужды/линию/заказы. и может получиться в принципе совместимо, но со своими мелкими и неприятными фишками. я такое несколько раз наблюдал на их x86 совместимых платформах, когда обмен по PC104/ISA шине сурово отличается от стандарта (нет 16ти битного обмена как класса), интерфейс к DiskOnChip вообще кривой и почти убитый, изначально битые чипы ввода/вывода от Winbond и пр. радости.

для выявления этих фишек я и искал оригинальный datasheet на IT8152G. исходники это конечно здорово, но я все-таки предпочитаю работать с документацией.

> Ядра компулаба и ядра пропатченные их патчами работают. Но у моего коллеги не получилось запустить ядро с обычным ARM патчем от debian - это есть плохо.

это да, наводит на мысли :( для таких вещей я предпочитаю LFS на базе NetBSD :)

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.