Новый раздел NAND для UBIFS
Я работаю над кастомной платой на базе NXP i.MX7D SoC. Я хочу создать новый раздел для сохранения базы данных конфигурации на nand.
Для этого я внес изменения в u-boot в аргументах mtdparts, которые передаются ядру в командной строке. Новый раздел nand создан успешно, и я могу видеть новый узел mtd в /dev.
Но чтобы сохранить файл конфигурации на новых разделах, мне нужно отформатировать и смонтировать его. Я следовал ниже шагов.
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. но, к моему удивлению, в следующем цикле загрузки я не могу увидеть новый узел ubi1 в /dev и не могу его смонтировать. Если я снова выполню вышеуказанные шаги, Предыдущая база данных недоступна. Я думаю, что мне нужно внести некоторые изменения в U-Boot.
Если кто-то сталкивался с такой проблемой или знает, что делать, пожалуйста, дайте мне знать.
1 ответ
Вот моя последовательность запуска для 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 уже инициализирована, используя номер доступного LEBs, и использую ubimkvol
если форматирование необходимо.
Бег ubiformat
или же ubimkvol
уничтожает ранее созданный том UBIFS. Не используйте их при каждом запуске.
Ли ubiattach
запуск позволит вам смонтировать раздел?
Я пишу сценарий запуска вот так:
ubiattach /dev/ubi_ctrl -m 5
if [ $? != 0 ]; then #if ubiattach fail, then ubiformat neccesary
ubiformat /dev/mtd5 -O 512 -y
ubiattach /dev/ubi_ctrl -m 5
fi
vc=$(cat /sys/class/ubi/ubi1/volumes_count)
if [ $vc == 0 ]; then
ubimkvol /dev/ubi1 -N nandubi -s 80MiBmp
mount -t ubifs ubi1:nandubi /mnt/nand
else
mount -t ubifs ubi1:nandubi /mnt/nand
fi