Кросс-компиляция ядра Linux для ARM в Windows с использованием Sourcery Toolchain - PullRequest
3 голосов
/ 22 января 2012

Я пытаюсь кросс-компилировать ядро ​​Linux для ARM-цели ( Freescale i.Mx28 ) на хосте Windows.Я знаю, что этот подход не лучший по сравнению с использованием хоста Linux, но, к сожалению, я не могу решить, что.

Ограничения:

все должно быть сделано. Я дошел до того, что обошел проблему отсутствия чувствительности к регистру в Windows, чтобы можно было извлечь исходники ядра с помощью Cygwin.Но теперь у меня проблемы с ядром Makefile.Я думаю, что есть некоторые проблемы с путями Windows, поскольку я получаю сообщение об ошибке *** multiple target patterns. Stop., которое исходит из : путей и других ошибок, касающихся проверки зависимостей при настройке:

      HOSTCC  scripts/basic/fixdep
    /usr/bin/sh: scripts/basic/fixdep: cannot execute binary file
    make[1]: *** [scripts/basic/fixdep] Error 126
    make: *** [scripts_basic] Error 2

Есть лиспособ портировать Makefile без необходимости переписывать его или есть другой способ собрать ядро ​​без использования данного Makefile?Могу ли я использовать исходный инструментарий или IDE для обработки Makefile?Есть ли способ собрать ядро ​​в рамках данных ограничений?

Ответы [ 2 ]

2 голосов
/ 24 мая 2012

Для кросс-компиляции ядра вам понадобятся два компилятора: один, который может создавать инструменты, работающие в вашей среде сборки, и другой, который может создавать исполняемые файлы для вашей цели.

Похоже, что вы на самом деле не кросс-компиляция, а только что заменили ваш компилятор. Теперь вы создаете инструменты, необходимые для сборки для ARM, и пытаетесь запустить их в Windows.

Вы можете указать, какой кросс-компилятор использовать:

make ARCH=arm CROSS_COMPILE=your-compiler-prefix- ...

У вас также может быть проблема с файловой системой. Файловая система в Windows нечувствительна к регистру, и сборка ядра может создавать файлы там, где важен регистр. Чтобы получить поддержку файловой системы без учета регистра в Windows, вы можете взглянуть на Службы Windows для UNIX .

1 голос
/ 17 января 2013

Используйте другой набор инструментов!CodeBench НЕ совместим с созданием Linux на хостах Windows, независимо от того, какую конфету (ложь) они размещают на своем веб-сайте об использовании CYGPATH и т. Д.

Я пробовал это сам несколько недель, и проблема в том, что CodeBenchпринимает пути POSIX, но настаивает на выводе путей Win32, которые трудно, если не невозможно, контролировать в процедурах Linux Kernel Make.

Я не говорю, что это невозможно;Я уверен, что это возможно.Но это не стоит времени, независимо от того, что говорит ваш начальник.Есть еще проблемы для рассмотрения.Другая проблема заключается в том, что инструменты в каталоге Linux sources ./scripts не совместимы напрямую со средой Windows и, таким образом, хотя они могут компилироваться, они не работают должным образом.Они должны быть исправлены!

Наилучший шанс, который у вас есть, - это скомпилировать свой собственный кросс-компилятор с помощью Cygwin.Или найди уже приготовленный для тебя.

...