UBIFS的新NAND分区

时间:2016-09-23 08:15:54

标签: linux linux-kernel embedded-linux u-boot ubifs

我正在开发基于恩智浦i.MX7D SoC的定制主板。我想创建新分区以在nand上保存配置数据库。

为此我在mtdparts args中对u-boot进行了更改,这些更改将在命令行上传递给内核。新的nand分区已成功创建,我可以在/ dev。

下看到新的mtd节点

但是要将配置文件保存在新分区上,我需要对其进行格式化并挂载。我已按照以下步骤进行操作。

ubiformat /dev/mtd5
ubiattach /dev/ubi_ctrl -m 5
ubimkvol /dev/ubi1 -Nconf -m
mkdir -p /mnt/conf
mount -t ubifs ubi1:conf /mnt/conf

以上所有步骤均已成功。我能够在/ mnt / conf目录中创建文件。但令我惊讶的是,在下一个启动周期中,我无法在/ dev下看到新的ubi1节点,因此无法安装它。 如果我再次执行上述步骤,则以前的数据库不可用。我认为我需要在u-boot中做一些改变。

如果有人遇到这样的问题或意识到该怎么做,请告诉我。

1 个答案:

答案 0 :(得分:0)

这是UBIFS的启动顺序:

mkdir /data
ubiattach /dev/ubi_ctrl -m 8 -O 2048 | grep "available 0 LEBs"
retval=$?
if [ "$retval" = "1" ]; then # Flash memory doesn't contain UBI image
        ubimkvol /dev/ubi0 -N data_volume -m
fi
mount -t ubifs -o sync ubi0:data_volume /data
retval=$?
if [ "$retval" = "0" ]; then
        echo "Storage is ready"
else
        echo "Storage is not ready"
fi

(在您的情况下,ubiattach-m 5作为参数)。我检查Flash是否已使用可用的LEB编号进行初始化,如果需要格式化,则使用ubimkvol

运行ubiformatubimkvol会破坏以前创建的UBIFS卷。不要在每次创业时都使用它们。

ubiattach启动是否允许您安装分区?