Настройте buildroot за стари ядра

Опитвам се да настроя buildroot за кръстосано компилиране на персонализирано приложение.

/ # uname -a
Linux Venus 2.6.12.6-VENUS #323634 Wed May 25 13:40:36 CST 2011 mips unknown

Досега избрах версия на ядрото 2.6.12.6 в buildroot. Сега имам проблема, че командата make се проваля и вика, че правилото headers_install е неизвестно.

Ето пълния изход:

~/buildroot-2011.11$ make
(cd /root/buildroot-2011.11/output/toolchain/linux-2.6.12.6; \
         /usr/bin/make -j2 ARCH=mips \
                HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
                HOSTCXX="/usr/bin/g++" \
                INSTALL_HDR_PATH=/root/buildroot-2011.11/output/toolchain/linux headers_install; \
        )
make[1]: Entering directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
Makefile:485: .config: Datei oder Verzeichnis nicht gefunden
make[1]: *** Keine Regel, um »headers_install« zu erstellen.  Schluss.
make[1]: Leaving directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
make: *** [/root/buildroot-2011.11/output/toolchain/linux/.configured] Fehler 2

Мисля, че проблемът е, че това старо ядро ​​няма тази опция в своя makefile.

Следващият ми опит беше да използвам Makefile и директорията със скриптове на новото ядро ​​3.2.6, като заменя старото.

Ето резултата:

# make
(cd /root/buildroot-2011.11/output/toolchain/linux-2.6.12.6; \
         /usr/bin/make -j2 ARCH=mips \
                HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
                HOSTCXX="/usr/bin/g++" \
                INSTALL_HDR_PATH=/root/buildroot-2011.11/output/toolchain/linux headers_install; \
        )
make[1]: Entering directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
  CHK     include/linux/version.h
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/unifdef
Makefile:1059: *** Headers not exportable for the mips architecture.  Schluss.
make[1]: Leaving directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
make: *** [/root/buildroot-2011.11/output/toolchain/linux/.configured] Fehler 2

Нямам идея какво мога да опитам сега. Какво трябва да направя?


person rekire    schedule 19.02.2012    source източник
comment
Най-простото нещо вероятно би било да преминете към по-стара версия на Buildroot.   -  person Shawn J. Goff    schedule 29.04.2012
comment
Здравей, ekire, аз се сблъсках със същия проблем, трябва да изградя mipsel инструментална верига, базирана на ядро ​​2.6.10. Успяхте ли да заобиколите този проблем? Ще се радвам на всякаква информация...   -  person Oleg    schedule 24.03.2015
comment
Не, просто се отказах от този проект. Преминах на RaspberryPi.   -  person rekire    schedule 24.03.2015


Отговори (3)


Всички съвременни инструменти, които изграждат вериги от инструменти за кръстосано компилиране, разчитат на ядрото, изпълняващо целта headers_install. Както беше предложено от Шон, можете да опитате с по-стара версия на Buildroot, но мисля, че използваме изключително headers_install от доста дълго време, така че ще трябва да се върнете далеч назад в миналото и да се сблъскате с много други проблеми.

Какво ще кажете вместо това да надстроите ядрото си?

person Thomas Petazzoni    schedule 11.05.2012
comment
можете да опитате с по-стара версия на Buildroot -- Ранните версии на Buildroot (напр. 20070706) нямат възможност за изграждане на Linux ядрото; той просто прави това, което подсказва името му: изграждане на основна файлова система. Buildroot-20080424 може да компилира Linux ядрото, но се връща само към 2.6.20. - person sawdust; 20.12.2014
comment
Какво ще кажете вместо това да надстроите ядрото си? - това предложение не е начално в общия случай за вградени системи със собствен IP хардуер, като радио с базова лента, видео през IP, мрежов процесор и други подобни. Тези системи често се продават със собствен фърмуер и други двоични петна, които изискват значителна поддръжка от доставчика, за да надстроят ядрото. - person Jonathan Ben-Avraham; 14.01.2020

Ако използвате toolchain от нулата с buildroot, можете да персонализирате заглавните файлове на toolchain, след това персонализирано ядро, за да съответства на toolchain, това би било добре.

person liunx    schedule 19.08.2013

Трябва да замените headers_install с install във файла:

пакет/linux-fusion/linux-fusion.mk

Има линия

$(TARGET_CONFIGURE_OPTS) $(MAKE) $(LINUX_FUSION_MAKE_OPTS) INSTALL_MOD_PATH=$(STAGING_DIR) -C $(@D) headers_install

Намерено тук.

person Stanislav Reshetnev    schedule 23.06.2015