[LEDE-DEV] [PATCH v2 00/19] Universal staged sysupgrade and assorted fixes

Philip Prindeville philipp_subx at redfish-solutions.com
Tue May 16 18:09:19 PDT 2017


> On May 13, 2017, at 1:56 PM, Matthias Schiffer <mschiffer at universe-factory.net> wrote:
> 
> Text from my RFC mail:
> 
> ---
> When talking about
> https://bugs.lede-project.org/index.php?do=details&task_id=685 with jow
> and lynxis, we came to the conclusion that the best way to fix sysupgrades
> would be to generalize the staged sysupgrade used on NAND devices to work
> on all targets. That is what this patchset does, with some nice extras
> like staged sysupgrade support from failsafe mode (which did not work at
> all on NAND devices before).
> 
> I have tested these patches on ar71xx (squashfs+jffs2), ramips (squashfs+
> ubifs) and x86 (ext4), and they seems to work perfectly; they should be
> tested on a lot more targets before they are applied though.
> 
> The same patchset can be found the "sysupgrade" branch of my staging tree
> at https://git.lede-project.org/?p=lede/neoraider/staging.git;a=summary
> 
> Note: the diffstat looks a lot scarier than it should; most of the added
> lines are the procd patches that I have included in the LEDE repo for now
> to facilitate testing the series.
> ---
> 
> Some highlights of v2:
> * split whitespace fixes into separate patches
> * add missing include guards to new procd header sysupgrade.h
> * support sysupgrade -p again (suggested by from Daniel Golle)
> * various x86 sysupgrade fixes (now sysupgrade with growing kernel
> partition actually works)
> * apply x86 sysupgrade fixes to sunxi as well
> 
> It would be great if someone with access to sunxi hardware could test my
> changes, the sunxi patches were not tested at all.
> 
> Thanks for the feedback I got so far.
> 
> Matthias
> 
> 
> Matthias Schiffer (19):
>  procd: clean up trailing whitespace in nand.sh
>  procd: prepare NAND sysupgrade for making upgraded dynamically linked
>  procd: system: always support staged sysupgrade
>  procd: upgraded: link dynamically, chroot during exec
>  procd: upgraded: add support for passing a "command" argument to
>    stage2
>  procd: remove procd-nand package
>  base-files: always use staged sysupgrade
>  fstools: clean up trailing whitespace in snapshot script
>  fstools: snapshot: handle jffs2 conversion using upgraded
>  procd: remove code that has become unnecessary after sysupgrade
>    changes
>  procd: init: add support for sysupgrades triggered from preinit
>  base-files: sysupgrade cleanup
>  base-files: add support for staged sysupgrades from failsafe mode
>  ramips: sysupgrade: move nand_do_upgrade call to platform_do_upgrade
>  x86: sysupgrade: move partition table change check to
>    platform_check_image
>  x86: sysupgrade: refactor platform_do_upgrade
>  x86: sysupgrade: explicitly rescan disk after writing partition table
>  sunxi: sysupgrade: don't write partitions twice
>  sunxi: sysupgrade: sync with x86
> 
> package/base-files/Makefile                        |  13 +-
> .../files/lib/preinit/40_run_failsafe_hook         |   6 +-
> .../files/lib/preinit/99_10_failsafe_login         |  11 +-
> package/base-files/files/lib/upgrade/common.sh     | 167 +++----------
> .../files => base-files/files/lib/upgrade}/nand.sh |  63 +----
> package/base-files/files/lib/upgrade/stage2        | 149 +++++++++++
> package/base-files/files/sbin/sysupgrade           |  77 +++---
> package/system/fstools/Makefile                    |   2 +-
> package/system/fstools/files/snapshot              |  16 +-
> package/system/procd/Makefile                      |  41 +--
> package/system/procd/files/nand-preinit.sh         |  21 --
> ...1-system-always-support-staged-sysupgrade.patch | 112 +++++++++
> ...raded-link-dynamically-chroot-during-exec.patch | 231 +++++++++++++++++
> ...d-support-for-passing-a-command-argument-.patch | 104 ++++++++
> ...-that-has-become-unnecessary-after-sysupg.patch | 120 +++++++++
> ...pport-for-sysupgrades-triggered-from-prei.patch | 278 +++++++++++++++++++++
> .../ramips/base-files/lib/upgrade/platform.sh      |   9 +-
> target/linux/sunxi/Makefile                        |   2 +-
> .../linux/sunxi/base-files/lib/upgrade/platform.sh | 120 +++++----
> .../linux/x86/base-files/lib/upgrade/platform.sh   | 104 +++++---
> 20 files changed, 1259 insertions(+), 387 deletions(-)
> rename package/{system/procd/files => base-files/files/lib/upgrade}/nand.sh (89%)
> create mode 100755 package/base-files/files/lib/upgrade/stage2
> delete mode 100644 package/system/procd/files/nand-preinit.sh
> create mode 100644 package/system/procd/patches/0001-system-always-support-staged-sysupgrade.patch
> create mode 100644 package/system/procd/patches/0002-upgraded-link-dynamically-chroot-during-exec.patch
> create mode 100644 package/system/procd/patches/0003-upgraded-add-support-for-passing-a-command-argument-.patch
> create mode 100644 package/system/procd/patches/0004-Remove-code-that-has-become-unnecessary-after-sysupg.patch
> create mode 100644 package/system/procd/patches/0005-init-add-support-for-sysupgrades-triggered-from-prei.patch
> 


I’ve been using the patchset on a Xeon using the x86_64_Generic target.

It works great.

-Philip






More information about the Lede-dev mailing list