我正在开发基于恩智浦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中做一些改变。
如果有人遇到这样的问题或意识到该怎么做,请告诉我。
答案 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
。
运行ubiformat
或ubimkvol
会破坏以前创建的UBIFS卷。不要在每次创业时都使用它们。
ubiattach
启动是否允许您安装分区?