Compiling

Buildroot:針對核心標頭檔編譯 fbi

  • May 1, 2019

我正在向generic-packageBuildroot 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 中的核心標頭檔進行編譯的正確方法是什麼?

https://www.kraxel.org/releases/fbida/fbi_1.31.tar.gz

如果不將它們集成到根文件系統中,似乎不可能針對標頭檔進行編譯。我試圖從 Buildroot 樹中編譯 fbi,但這需要太多的努力。

我正在嘗試fbv而不是 fbi,因為它已經在 Buildroot 中。

引用自:https://unix.stackexchange.com/questions/515802