While cleaning up the initramfs related code I thought I could add support for a plain ubifs read/write root. Indeed my 15MB squashfs converted still fits with 3MB spare space. By default for both a sysupgrade.tar will be generated. All that's left is more docs and testing. All that works in openwrt / lede is supposed to still work.
One of the goals was to significantly reduce the amount of kernel patches. So while I'm compiling images for testing I outline where this endeavour went.
Out of the currently 401 patches became 14. Some I could drop by moving to 4.7, some others by simply packaging the drivers properly. Another bunch by using an initramfs to mount root. The rest is mostly irrelevant and in rare cases I did consider them harmful.
So let's have a look at the patches for 4.7:
0001-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch
0002-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
0003-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
0004-openwrt-add-wireless-reg-db-2016-06-10.patch
0005-openwrt-firewall3-support.patch
<--- generic / mvebu --->
0006-gpio-mvebu-add-limited-pwm-support.patch
0007-armada-xp-armada-370-add-pwm-nodes.patch
0008-armada-xp-revert-i2c-delay.patch
0009-linksys-add-shelby-support.patch
0010-linksys-add-mwlwifi-nodes-to-boards.patch
0011-linksys-add-mvneta_bm-nodes-to-boards.patch
0012-linksys-use-pwm-fan-for-mamba.patch
0013-openwrt-add-swconfig-node-to-boards.patch
0014-Revert-mtd-pxa3xx-nand-handle-PIO-in-threaded-interr.patch
1-3: are to prevent broken user space programs from failing with musl, unfortunately netifd belongs to those.
4: alternative to using a crda package, the same way as compat-wireless in openwrt does.
5: firewall3 suppport
6-7, 12: mamba pwm fan
8: unknown, but kept as it only affects mamba which I don't have to test.
9-12: various dts updates for the linksys boards.
13: swconfig support for linksys bords.
14: reverts the upstream commit that causes the nand-driver issues on mamba
Most of the patches in mvebu look upstream-able and 1-3 avoidable.
If someone has the capacity to do a tinderbox run _without_ 1-3 and compile a list of the fallout would be sweet. I suspect most of user space that is used by other distros as well got fixed in the meantime, possibly only house internal tools are left.
This can be done in openwrt / lede just as well by dropping:
270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch
271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch