Kernel upgrade?

I've downloaded a fresh development snapshot build of x86_64, installed it and configured a day or 2 ago.
It works fine, but it is already outdated. For instance, I can't install new kernel modules and opkg gives me confusing results:

root@LEDE:~# opkg update
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_core
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/Packages.sig
Signature check passed.
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/base/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_base
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/base/Packages.sig
Signature check passed.
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_luci
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/luci/Packages.sig
Signature check passed.
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_packages
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/packages/Packages.sig
Signature check passed.
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_routing
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/routing/Packages.sig
Signature check passed.
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_telephony
Downloading http://downloads.lede-project.org/snapshots/packages/x86_64/telephony/Packages.sig
Signature check passed.
root@LEDE:~# opkg install kernel
Package kernel (4.9.51-1-d233946afdf598d90ab6df3371b8ec87) installed in root is up to date.
root@LEDE:~# opkg upgrade kernel
root@LEDE:~# opkg upgrade $(opkg list-upgradable | awk '{print $1}')
Upgrading kmod-ath10k on root from 4.9.51+2017-01-31-3 to 4.9.52+2017-01-31-3...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ath10k_4.9.52+2017-01-31-3_x86_64.ipk
Upgrading kmod-lib-crc-ccitt on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-lib-crc-ccitt_4.9.52-1_x86_64.ipk
Upgrading kmod-pppoe on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-pppoe_4.9.52-1_x86_64.ipk
Upgrading kmod-pppox on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-pppox_4.9.52-1_x86_64.ipk
Upgrading kmod-ipt-conntrack on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ipt-conntrack_4.9.52-1_x86_64.ipk
Upgrading kmod-nf-nat on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-nf-nat_4.9.52-1_x86_64.ipk
Upgrading kmod-input-core on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-input-core_4.9.52-1_x86_64.ipk
Upgrading kmod-r8169 on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-r8169_4.9.52-1_x86_64.ipk
Upgrading kmod-mii on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-mii_4.9.52-1_x86_64.ipk
Upgrading kmod-i2c-core on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-i2c-core_4.9.52-1_x86_64.ipk
Upgrading kmod-nf-ipt on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-nf-ipt_4.9.52-1_x86_64.ipk
Upgrading kmod-ip6tables on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ip6tables_4.9.52-1_x86_64.ipk
Upgrading kmod-mac80211 on root from 4.9.51+2017-01-31-3 to 4.9.52+2017-01-31-3...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-mac80211_4.9.52+2017-01-31-3_x86_64.ipk
Upgrading kmod-ipt-core on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ipt-core_4.9.52-1_x86_64.ipk
Upgrading kmod-e1000 on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-e1000_4.9.52-1_x86_64.ipk
Upgrading kmod-ppp on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ppp_4.9.52-1_x86_64.ipk
Upgrading kmod-pps on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-pps_4.9.52-1_x86_64.ipk
Upgrading kmod-nf-conntrack on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-nf-conntrack_4.9.52-1_x86_64.ipk
Upgrading kmod-nf-ipt6 on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-nf-ipt6_4.9.52-1_x86_64.ipk
Upgrading kmod-ptp on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ptp_4.9.52-1_x86_64.ipk
Upgrading kmod-nf-conntrack6 on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-nf-conntrack6_4.9.52-1_x86_64.ipk
Upgrading kmod-ath on root from 4.9.51+2017-01-31-3 to 4.9.52+2017-01-31-3...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ath_4.9.52+2017-01-31-3_x86_64.ipk
Upgrading kmod-e1000e on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-e1000e_4.9.52-1_x86_64.ipk
Upgrading kmod-button-hotplug on root from 4.9.51-3 to 4.9.52-3...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-button-hotplug_4.9.52-3_x86_64.ipk
Upgrading kmod-igb on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-igb_4.9.52-1_x86_64.ipk
Upgrading kmod-i2c-algo-bit on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-i2c-algo-bit_4.9.52-1_x86_64.ipk
Upgrading kmod-slhc on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-slhc_4.9.52-1_x86_64.ipk
Upgrading kmod-cfg80211 on root from 4.9.51+2017-01-31-3 to 4.9.52+2017-01-31-3...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-cfg80211_4.9.52+2017-01-31-3_x86_64.ipk
Upgrading kmod-ipt-nat on root from 4.9.51-1 to 4.9.52-1...
Downloading http://downloads.lede-project.org/snapshots/targets/x86/64/packages/kmod-ipt-nat_4.9.52-1_x86_64.ipk
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ath10k:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-lib-crc-ccitt:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-pppoe:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-pppox:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ipt-conntrack:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-nf-nat:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-input-core:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-r8169:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-mii:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-i2c-core:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-nf-ipt:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ip6tables:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-mac80211:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ipt-core:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-e1000:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ppp:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-pps:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-nf-conntrack:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-nf-ipt6:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ptp:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-nf-conntrack6:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ath:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-e1000e:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-button-hotplug:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-igb:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-i2c-algo-bit:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-slhc:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-cfg80211:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-ipt-nat:
 * 	kernel (= 4.9.52-1-d233946afdf598d90ab6df3371b8ec87) * 

It says kernel is not up to date and it is up to date at the same time. WTF?

My installation is VM (which simplifies re-installation, but still) and is using combined-ext4.img version.

So why can't I just upgrade the kernel? Seems a very basic thing to do.
I've also found sysupgrade thing, but do not see how to get it for x86_64.

You'll have to sysupgrade to a newer snapshot. On most targets LEDE has to deal with extremely low storage sizes (starting with 4 MB - in many cases vmlinuz itself isn't even part of the rootfs, not even mentioning that kernel and rootfs are usually confined to a readonly filesystem), this puts limits on the in-place upgrade options, which preclude kernel- and other more fundamental upgrades of the running system.

If you wanted in-place upgrades of the running system to actually work, a lot more effort would have to go into ABI compatibility checks, co-installability of different library SONAMES, the package manager, etc. This would require significantly more manpower (easily tenfold or more) - and much more primary storage (at the very least 500+ MB, easy on x86, possible on ARM devboards, but a straight out death penalty for pretty much all router systems which make out the bulk of LEDE's target audience).

Distributions like this exist, they're called Debian, RedHat/ Fedora, SuSE, Ubuntu, Gentoo, arch, ... or one of the BSD derivatives focussing on router uses (OPNsense/ pfsense) - and accordingly they do have very different minimum system requirements, precluding them to work on most real (plastic) hardware routers.

2 Likes

So how do I sysupgrade on x86_64 with ext4 filesystems? To be precise, which binary should I use to upgrade? I've tried newer lede-x86-64-combined-ext4.img image using LUCI, it didn't work at all.

I understand well the primary target of LEDE, but at the same time I see no reason why on x86_64 with ext4 r/w root filesystem it should be able to upgrade kernel like it does with any other package. Just unpack one file over another and run initramfs update if it is needed at all. If 1G of memory needed, I can throw 1G at it, just do it.

Also Debian..Gentoo do not have Wi-Fi support and configuration UI like LEDE, OPNsense/pfSense have terrible Wi-Fi adapters support and speaking with folk on their forums they do not want to do much about it.

So my instance of LEDE is in VM alongside another VM with pfSense. The whole purpose of LEDE is to bridge virtual LAN interface to Wi-Fi like a dumb AP (no firewall, no DHCP server, nothing like that). This is very specific purpose and LEDE works perfectly when combined with supported Wi-Fi adapter. So no need to suggest another distributive for this single purpose, nothing fits here better.

Turns out upgrade works with combined-ext4.img.gz, but doesn't with extracted combined-ext4.img.
I can live with that, no problem, but all of my apps are gone after upgrade. Sure, networking settings are there, but packages with Wi-Fi drivers and firmware are gone and I have to install them manually:frowning:
Any workaround here?

development snapshots are like that, this is well-known behaviour.

What I do on devices that must follow snapshots for some reason or another is using the snapshot repo's imagebuilder https://lede-project.org/docs/user-guide/imagebuilder to create a upgrade image with all my packages already integrated in it, so when I sysupgrade everything is still there.

1 Like

The issue with packages reinstalling seems to also be present on release builds.
Haven't found anything reasonably easier than creating installation script and adding it to the list of files that are included in backups.

The issue with packages reinstalling seems to also be present on release builds.

Yes, but on release builds you don't need to upgrade the kernel/whole system every day to install kernel-related packages, as the images/packages in release repository are kept stable (receive only security/important bugfix patches, which is not very common, only a handfew patches are selected for the release branch).

In development snapshots everything is rebuilt daily-ish integrating newer code, making it different.

1 Like

When eve one upgrades form one version, snapshot or release, to another you go back to square one (all packages are gone), so in that respect if you can use image builder as bobafetthotmail suggests you can rebuild with your packages in the file.

As I do not build I, keep track of what I install in a text file and just build myself a "Update" string that I can use when I install a new version.

Also, for snapshots, you should download the package library which matches your snapshot if you are not going to build or install all the packages immediately. The kernel mismatch issue is a common scenario with the dev builds (virtually by definition). search the wikis (including openwrt) for how to install from local files.

I know how to install from files, doing that working on RTL8814AU driver a lot recently, but still I think that kernel should be upgradable just like any other package, very surprised it is not yet supported.
Also image building is something that I'm going to try, but several minutes on pulling changes and image building is a bit awkward comparing to grabbing of the shelf upgrade image.

this is absolutely terrible .. i working with linux/unix systems many years, but situation inability to upgrade the kernel or bind the bin itself to the version .. i have never seen it .. yes i understand it's easy for developers .. but it should especially be easy for users .. I believe that in the future there will be the possibility of dist-upgrade ... (using a mounted usb drive, etc.)

Development snapshot is not supposed to be "easy to use" by end users as it's not stable, breaking changes happen all the time and things can change without notice.

Apart from that, you can upgrade the kernel with a sysupgrade/firmware upgrade.

The main reason for this is that OpenWrt targets embedded devices and each of them expect to find the kernel in a different place in the onboard flash, and this is best done as a "firmware upgrade" procedure than as a package.

I don't think anyone is working on that.

4 Likes