2014-12-19 3 views
2

У меня возникла проблема при попытке настроить кросс-компилятор для старого ядра Linux.Настройка Buildroot для старого ядра linux

cp -dpRf package/config/buildroot-config /tmp/buildroot/buildroot-2009.02/project_build_mips/uclibc/buildroot-config 
(cd /tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15; \ 
    /usr/bin/make -j1 ARCH=mips \ 
     HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \ 
     HOSTCXX="/usr/bin/g++" \ 
     INSTALL_HDR_PATH=/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux headers_install; \ 
    ) 
make[1]: Entering directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15' 
Makefile:486: .config: No such file or directory 
make[1]: *** No rule to make target `headers_install'. Stop. 
make[1]: Leaving directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15' 
make: *** [/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux/.configured] Error 2 

извещение make[1]: *** No rule to make target 'headers_install'. Stop. линия. Я сделал поиск в stackoverflow и наткнулся на эту тему: Setup buildroot for old kernels.

Парень сталкивался с той же проблемой, что и я. Ответ, предложенный с использованием старой версии buildroot. Поэтому я использовал buildroot-2009.02, который является самой старой версией buildroot, но все же получил тот же результат.

Пожалуйста, не советуйте мне обновлять мое ядро ​​до более новой версии, я должен использовать особенно эту версию.

Я хотел бы получить объяснение о том, что он говорит, и, возможно, кто-то может помочь мне исправить это.

Заранее спасибо.

+0

Если вам нужно только перекрестно скомпилировать ядро, то зачем вам строить Buildroot? Назад в день Linux 2.6.15 (около 2006?), Buildroot был довольно новым и не был стабильным, и я без него создавал ядро ​​Linux и rootfs. – sawdust

+0

Можете ли вы дать мне ссылку для начала? – CodeNinja

+0

Файл ** README ** (а также каталог ** Documentation **) в вашем источнике ядра описывает, как настроить и скомпилировать ядро. BTW Я посмотрел на старый Buildroot 20070706, и он оправдывает его имя: он только строит корневую файловую систему. ** Старый Buildroot не создает ядро ​​Linux. ** Таким образом, у вас, похоже, нет выбора, кроме как использовать основную процедуру сборки ядра Linux. – sawdust

ответ

1

Ошибка, которую вы показываете, по-видимому, не связана с построением ядра, но, похоже, она возникает во время сборки toolchain (= cross-compiler). Инструментальной цепочке необходимо установить заголовки ядра, которые используются библиотекой C для создания системных вызовов. Для этого buildroot использует цель 'headers_install' ядра.

К сожалению, эта цель была представлена ​​в Linux 2.6.18. Таким образом, с вашей версией ядра вы не можете использовать buildroot для создания кросс-компилятора.

Я также не знаю, как вы должны строить кросс-компилятор для такого старого ядра. Вы можете попробовать использовать оригинальный проект crosstool (а не crosstool-NG, который также слишком современен).

+0

lol, спасибо за ответ. Я постараюсь это сделать. Я также рассказываю о чем-то другом, например о попытке сделать этот make-файл 'headers_install' – CodeNinja

+0

Есть ли обновление? Вам удалось создать кросс-компилятор? Если да, то как? – bzupnick

Смежные вопросы