generic-package
Buildroot 2019.02.1에 추가하고 있습니다 . 패키지(fbi) <asm/page.h>
는 에 포함되어 있지만 fbtools.c
헤더는 에서 사용할 수 없습니다 output/target
. 이 패키지를 컴파일하면 다음 오류가 발생합니다.
$ make fbi-rebuild
[...]
CC fbi.o
CC fbtools.o
fbtools.c:24:30: fatal error: asm/page.h: No such file or directory
#include <asm/page.h>
^
compilation terminated.
[...]
FBI용 패치를 추가하고 필요한 패키지를 선택했습니다.
$ grep -E '^[^#].*(HEADERS|FBI|JPEG)' .config
BR2_KERNEL_HEADERS_VERSION=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
BR2_DEFAULT_KERNEL_HEADERS="4.9.17"
BR2_PACKAGE_LINUX_HEADERS=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y
[...]
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.9"
BR2_PACKAGE_FBI=y
BR2_PACKAGE_JPEG=y
BR2_PACKAGE_JPEG_SIMD_SUPPORT=y
BR2_PACKAGE_LIBJPEG=y
BR2_PACKAGE_HAS_JPEG=y
BR2_PACKAGE_PROVIDES_JPEG="libjpeg"
$ for i in `ls package/fbi/000*`; do echo $i; cat $i | grep -E '^[-+][^-+]'; done
package/fbi/0001-fix-verion.patch
- fprintf(stderr, "fbi version " VERSION
+ fprintf(stderr, "fbi version 1.32 "
package/fbi/0002-fix-makefile.patch
- @echo -e "$(make-config-q)" > $@
+ @echo "$(make-config-q)" > $@
$ find output/ -name page.h
output/build/linux-headers-4.9.17/fs/nilfs2/page.h
output/build/linux-headers-4.9.17/include/asm-generic/page.h
[...]
output/build/linux-headers-4.9.17/arch/score/include/asm/page.h
내가 사용하고 있는 커널(또한 4.9.17)은 Buildroot의 일부가 아니지만 그것이 문제가 될 것이라고는 생각하지 않습니다.
Buildroot의 커널 헤더에 대해 컴파일하는 올바른 방법은 무엇입니까?
답변1
헤더를 루트 파일 시스템에 통합하지 않고는 헤더에 대해 컴파일하는 것이 불가능해 보입니다. Buildroot 트리에서 FBI를 컴파일하려고 시도했지만 너무 많은 노력이 필요했습니다.
fbv
이미 Buildroot에 있으므로 FBI 대신 시도하고 있습니다 .