Cannot satisfy dependencies / kernel is not compatible
You will get the message “Cannot satisfy the following dependencies for...” or “The installed version of package kernel is not compatible, require...”
- if the kernel version installed on your device does not match the kernel version required by the package you want to install. This happens very easily when you are using a snapshot image or a self-compiled image.
- if you are using a snapshot image, and the snapshot packages are missing in current builds.
- Solution: Wait some days, then check if the packages are being built again.
I'm using a snapshot image
- Solution #1: Install all needed packages directly after installing the snapshot image, not on the next day.
- Solution #2: Try to install via opkg with option
--force-depends
(=Install/remove despite failed dependencies). Mind that this is likely to fail for kernel related packages (kmods). Note that failing/incompatible kernel modules may cause the device to crash or not to reboot properly. - Solution #3: Make local copy of snapshot packages (not recommended, needs much space!)
- Solution #4: Use persistent kmods for snapshots for 3 months since the snapshot build:
# Enable kmods repository . /etc/os-release KERNEL="$(opkg list-installed kernel)" cat << EOF >> /etc/opkg/distfeeds.conf src/gz openwrt_kmods http://downloads.openwrt.org/\ snapshots/targets/${OPENWRT_BOARD}/kmods/${KERNEL##* } EOF
As general advice, especially for inexperienced users: Go for the latest stable release (if available for your device), not a snapshot version, then the package repositories will match and packages will be available.
I'm using a self-compiled image
- Solution #5: Do not install packages after flashing, but include them in your image.
- Solution #6: Compile the packages you want to install after flashing as modules. They will be built, but not included in the image.