This service is available only in Japanese-language.

UBIFSのカーネルコンフィグレーション

Linuxの構築はYocto2.2 core-image-minimalイメージをベースに行っており、
カーネルコンフィグレーションで「UBIFS file system support」の「Advanced compression options」
をOFFで設定しております。(#CONFIG_UBIFS_FS_ADVANCED_COMPR)

そのUBIFSで合計約205MBのファイルを追加したのですが、Linuxの使用容量が約80MBほどしか増えませんでした。
この差分は「df -h」コマンドで使用容量を確認致しました。
「Advanced compression options」 設定が実は有効になっているということでしょうか?
または、何か他の設定が作用してこういった現象が起こっているのでしょうか?

またubifsイメージ生成時に (mkfs.ubifs) "-x none" と非圧縮を指定することで、非圧縮なファイルシステムを作成できます。
mkfs.ubifs のパラメータはMKUBIFS_ARGS変数を使用しているので、この値を変更することで非圧縮で作成可能となります。

zcat /proc/config.gz で確認した所、以下のような設定になっており特段圧縮機能はONになっておりませんでした。

# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS2_FS is not set
CONFIG_UBIFS_FS=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_ATIME_SUPPORT is not set
# CONFIG_LOGFS is not set
# CONFIG_CRAMFS is not set
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y

以下のような設定でNANDフラッシュにUBIFSでフォーマットしています。

flash_erase /dev/mtd9 0 0
ubiformat /dev/mtd9
ubiattach /dev/ubi_ctrl -m 9

ubimkvol /dev/ubi0 -Nrootfs -m
mount -t ubifs ubi0:rootfs /mnt

非圧縮を明示的に指定しないと、デフォルトでは圧縮したファイルシステムになるのでしょうか?

CONFIG_UBIFS_FS_ADVANCED_COMPは、サポートされている圧縮方法を切替可能とする機能となります。
現在の設定では、LZO方式と、ZLIBが有効となっており、デフォルトのLZO圧縮が行われていると考えます。
https://elinux.org/UBIFS
mkfs.ubifs 実行時にオプション -x none を指定することで、圧縮を無効にできると考えます。

CONFIG_UBIFS_FS_ADVANCED_COMPR、UBIFS のオンザフライ圧縮について理解致しました。
ありがとうございました。

mkfs.ubifsをレシピに追加して行うことは可能なのでしょうか?

現在ubifs上にrootfsが構築されていて、そのファイルシステムの圧縮を抑止したい場合は
MKUBIFS_ARGS 変数の指定で " -x none" が有効になるように修正することで変更可能と考えます。