在 U-BOOT 中启用 UBIFS

Enabling UBIFS in U-BOOT

我试图在 u-boot 中启用 UBIFS 支持,但在编译时遇到了几个未定义的引用错误。在我的电路板配置中,我启用了以下功能:

#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_CMD_UBI
#define CONFIG_RBTREE
#define CONFIG_CMD_UBIFS
#define CONFIG_LZO

并且在编译时出现如下未定义引用错误:

uboot/fs/ubifs/lpt_commit.c:1232: undefined reference to dbg_chk_lpt_free_spc
uboot/fs/ubifs/lpt_commit.c:1235: undefined reference to `dbg_check_ltab'
fs/built-in.o: In function `layout_cnodes':
uboot/fs/ubifs/lpt_commit.c:322: undefined reference to `ubifs_dump_lpt_lebs'
fs/built-in.o: In function `ubifs_add_bud_to_log':
uboot/fs/ubifs/log.c:194: undefined reference to `ubifs_commit_required'
uboot/fs/ubifs/log.c:225: undefined reference to `ubifs_request_bg_commit'
uboot/fs/ubifs/log.c:265: undefined reference to `ubifs_write_node'
fs/built-in.o: In function `ubifs_log_end_commit':
uboot/fs/ubifs/log.c:479: undefined reference to `ubifs_write_master'
fs/built-in.o: In function `do_write_orph_node':
uboot/fs/ubifs/orphan.c:248: undefined reference to `ubifs_write_node'

dbg_chk_lpt_free_spcdb_check-ltabubifs_dump_lpt_lebsubifs_write_nodeubifs_write_master都"ifdef'd"出来了(#ifndef __UBOOT__但是。 ..显然 __UBOOT__ 已定义)。

通过快速 grep,ubifs_commit_requiredubifs_request_bg_commit 完全缺少实现。

u-boot 是否完全不支持 UBIFS,或者它目前已损坏? (使用 2016.07 版本)。或者我可能错过了一步......

UBIFS 在几个架构的主线中确实被破坏了。可以在 http://lists.denx.de/pipermail/u-boot/2016-September/265474.html 的管道邮件中找到建议的补丁,但尚未获得批准。补丁应用没有问题,我现在可以编译了,尽管文件系统是否能与它一起工作还有待观察...