Пытаюсь обновиться из-под линукса.
В sysupgrade нет поддержки UBI, так что пытаюсь сделать обновление вручную.
При попытке переписать в лоб - ошибка (хотя mtd write работает):
Код
root@TestTest:/# ubiupdatevol dev/ubi0_0 /tmp/rootfs.img
[ 2885.328555] UBI error: ubi_open_volume: cannot open device 0, volume 0, error -16
ubiupdatevol: can't open 'dev/ubi0_0': Device or resource busy
[ 2885.328555] UBI error: ubi_open_volume: cannot open device 0, volume 0, error -16
ubiupdatevol: can't open 'dev/ubi0_0': Device or resource busy
Посмотрел, как это делает sysupgrade:
Сначала копирует необходимые бинарники, а затем переключается на работу из оперативки.
У меня переключение рута в tmp/root не удалось (не понял принципа, ибо нуб)
В общем интересуют 2 вопроса:
1. Как переключаться на работу из оперативки, освобождая тем самым /dev/ubi0_0?
2. Если есть более удобный способ обновления системы с UBI?
P.S. разделы у меня такие:
Код
-----------------------------------------------------------------
|bootloader|boot_env| fdt | kernel | root |
MTD | 3M | 256k | 128k | 5M | - |
-----------------------------------------------------------------
|rootfs|rootfs_data|
UBI | 40M | - |
-----------------------------------------------------------------
|bootloader|boot_env| fdt | kernel | root |
MTD | 3M | 256k | 128k | 5M | - |
-----------------------------------------------------------------
|rootfs|rootfs_data|
UBI | 40M | - |
-----------------------------------------------------------------
Части системы (fdt, kernel, rootfs) пишу в пямять по отдельности.