Estou tentando configurar o buildroot para compilação cruzada de um aplicativo personalizado.
/ # uname -a
Linux Venus 2.6.12.6-VENUS #323634 Wed May 25 13:40:36 CST 2011 mips unknown
Até agora eu escolhi a versão do kernel 2.6.12.6 em buildroot. Agora, tenho o problema de que o comando make
falha ao gritar que a regra headers_install
é desconhecida.
Aqui está a saída completa:
~/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
Eu acho que o problema é que este kernel antigo não tem essa opção em seu makefile.
O que devo fazer?
Eu dei uma olhada no makefile do kernel 3.2.6. Eu encontrei lá:
headers_install: __headers
$(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/asm/Kbuild),, \
$(error Headers not exportable for the $(SRCARCH) architecture))
$(Q)$(MAKE) $(hdr-inst)=include
$(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst)
Isso parece chamar um segundo makefile chamado Makefile.headersinst
.
Mas o que isso faz?
Eu tentei usar o Makefile e o diretório de scripts do novo kernel 3.2.6 substituindo o antigo.
Aqui está a saída:
# 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
Não faço ideia do que posso experimentar agora.