Hello David, Two questions were raised just after publishing 'all-flash-space' patch. Now I am ready to provide more information on these issues:
0. Downgrade to vendor firmware. It is possible. Just don't forget to erase both ubi concat partitions: 'mtd -r erase ubi' does the job fine. 1. Sysupgrade: > > > > Have you tried if this breaks sysupgrade from an older OpenWrt > > firmware? I'm not sure if an UBI resize works without additional > > steps. > > You were right, rootfs_data volume stays small after sysupgrade. My approach is to execute 'ubirsvol' command for /dev/ubi0_1 and allocate all available space. There are caveats however: * command cannot be run after rootfs_data is mounted (device busy) * command cannot be run in sysupgrade sequence (sysupgrade works in old system that is not mtd-concat aware) I came out with a solution - to plug into preinit phase after ubi is available but before ubi rootfs_data volume is started and incorporated into overlayfs. Here is script (only for ath79/nand target so path is target/linux/ath79/nand/base-files/lib/preinit/78_ubi_grow_rootfs_data). I've tested it by running sysupgrade on my WNDR4300 and volume was resized correctly. ---- #!/bin/sh grow_ubi_volume() { local free_lebs="$(ubinfo /dev/ubi0 | awk '$1=="Amount" && $3=="available" { print $6 }')" local used_lebs="$(ubinfo /dev/ubi0_$1 | awk '$1=="Size:" { print $2 }')" if [ $free_lebs -eq 0 ] ; then return fi echo "- grow ubi volume (id $1) -" ubirsvol /dev/ubi0 -n $1 -S $(($used_lebs+$free_lebs)) } do_grow_ubi_rootfs_data() { local board_name="$(cat /tmp/sysinfo/board_name || echo '')" case "$board_name" in netgear,wndr3700-v4|\ netgear,wndr4300) grow_ubi_volume 1 ;; esac } boot_hook_add preinit_main do_grow_ubi_rootfs_data ---- I'll gladly read your opinion on above solution. Can it be accepted into mainline ? Best regards Michal _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel