[Solved] Nfs-kernel-server missing kernel dependency

You can't.

Kernel modules have a very strict dependency on the running kernel, which must be the exact same version and additionally the exact same kernel config used for building it. Effectively this means both must have been built in the same go.

Community builds are pretty much by definition not complying with that requirement, as even fully official builds will change- and break that tight version requirement between builds; with ~daily builds effectively every day. This particularly affects the kernel config, as they generally don't build all potential packages from all feeds (which have the potential to enable kernel options, which would otherwise remain disabled) to keep build times reasonable. As a consequence you're restricted to the kernel modules provided with the community build (and its version), either preinstalled inside the sysupgrade image or at least explicitly provided alongside it (not the case for the particular community build in question). While this is probably a drawback compared to OpenWrt's official snapshot builds, it's not a huge regression either - as kernel modules from tomorrow's official snapshot build won't remain compatible to today's firmware image either[0].

Your options here are two-fold (aside from running an official release build).

  • switch to an official snapshot build (master or 19.07) and make sure to install everything[1] immediately after sysupgrading to the current sysupgrade image, as tomorrow's packages won't remain compatible (yes, [0]).
  • build the firmware and everything you need for running your system from source[2]

--
[0] it's not quite that strict, as the OpenWrt repositories intentionally keep kernel modules for a little longer, but this retainer policy is still limited to a couple of days/ few weeks for storage reasons.
[1] kernel modules in particular.
[2] either based on the source for the community build or vanilla OpenWrt, all what matters is that image (the installed kernel version) and all packages (kmod-*'s in particular) come from the same firmware build and remain in lockstep; e.g. you'll never need to use opkg as everything is part of your to-be-installed image.

1 Like