openSUSE-SLE-15.3 conflicts with kernel-syms

Hi openSUSErs,

After successfully updating to Leap 15.3 (running 5.3.18-59.19-default). Now I get this error message when updating software:

openSUSE-SLE-15.3-2021-2687-1.noarch conflicts with 'kernel-syms.x86_64

I have taboo-ed kernel-preempt and kernel-preempt-devel to be installed on the system.
I don’t know why preempt wanted to be pulled, but I learned from another thread that in case I have virtualbox, but I don’t.

sudo zypper repos -d -E
#  | Alias                       | Name                                                         | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                          | Service
---+-----------------------------+--------------------------------------------------------------+---------+-----------+---------+----------+--------+------------------------------------------------------------------------------+--------
 1 | Packman Repository          | Packman Repository                                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.3/          |  
 2 | SoftMaker_Office_Repository | SoftMaker Office Repository                                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://shop.softmaker.com/repo/rpm                                          |  
 3 | gh-cli                      | packages for the GitHub CLI                                  | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://cli.github.com/packages/rpm                                          |  
 4 | google-chrome               | google-chrome                                                | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://dl.google.com/linux/chrome/rpm/stable/x86_64                          |  
 7 | repo-backports-update       | Update repository of openSUSE Backports                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/backports/                     |  
12 | repo-non-oss                | Non-OSS Repository                                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.3/repo/non-oss/            |  
13 | repo-oss                    | Main Repository                                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.3/repo/oss/                |  
15 | repo-sle-update             | Update repository with updates from SUSE Linux Enterprise 15 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/sle/                           |  
18 | repo-update                 | Main Update Repository                                       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/oss                            |  
19 | repo-update-non-oss         | Update Repository (Non-Oss)                                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/non-oss/                       |  
20 | snappy                      | snappy                                                       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.3 | 

Would appreciate guidance.
Thanks in advance.

What do tell you the following cmds?


$ zypper se --details --provides kernel-syms
# zypper up --details patch:openSUSE-SLE-15.3-2021-2687

Appreciate your reply.

These are what I get:


sudo zypper se --details --provides kernel-syms

S  | Name              | Type    | Version           | Arch   | Repository
---+-------------------+---------+-------------------+--------+-------------------------------------------------------------
i+ | kernel-syms       | package | 5.3.18-lp152.87.1 | x86_64 | (System Packages)
i+ | kernel-syms       | package | 5.3.18-lp152.84.1 | x86_64 | (System Packages)
v  | kernel-syms       | package | 5.3.18-59.19.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.16.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.13.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.10.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.5.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-57.1       | x86_64 | Main Repository
  | kernel-syms-azure | package | 5.3.18-38.17.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
  | kernel-syms-azure | package | 5.3.18-38.14.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
  | kernel-syms-azure | package | 5.3.18-38.11.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
  | kernel-syms-azure | package | 5.3.18-38.8.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
  | kernel-syms-azure | package | 5.3.18-38.3.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
  | kernel-syms-azure | package | 5.3.18-36.1       | x86_64 | Main Repository
  | kernel-syms-rt    | package | 5.3.18-8.3.1      | x86_64 | Main Repository
i+ | openSUSE-release  | package | 15.3-lp153.146.1  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.143.2  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.143.1  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.138.1  | x86_64 | Main Repository


and


zypper up --details patch:openSUSE-SLE-15.3-2021-2687
sudo zypper up --details patch:openSUSE-SLE-15.3-2021-2687
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: the to be installed patch:openSUSE-SLE-15.3-2021-2687-1.noarch conflicts with 'kernel-syms.x86_64 < 5.3.18-59.19.1' provided by the installed kernel-syms-5.3.18-lp152.87.1.x86_64
Solution 1: Following actions will be done:
 deinstallation of kernel-syms-5.3.18-lp152.87.1.x86_64
 deinstallation of kernel-syms-5.3.18-lp152.84.1.x86_64
 deinstallation of dkms-2.3-bp153.1.17.noarch
Solution 2: remove lock to allow installation of kernel-preempt-devel-5.3.18-59.19.1.x86_64[repo-sle-update]
Solution 3: do not install patch:openSUSE-SLE-15.3-2021-2687-1.noarch

**Choose from above solutions by number or cancel [1/2/3/c/d/?] (c):**

Thank you in advance

A newer kernel-syms version, than what you have installed, is required for the patch openSUSE-SLE-15.3-2021-2687:

david@atronach-opensuse:~> LANG=C zypper if patch:openSUSE-SLE-15.3-2021-2687
...]
Conflicts   : [228]
kernel-syms.x86_64 < 5.3.18-59.19.1
...]

Zypper refuses to install the patch because of an old version of *kernel-syms *which, for a change, can’t be updated because of locked kernel-preempt-devel which is required by kernel-syms:

david@atronach-opensuse:~> LANG=C zypper info --requires kernel-syms
Loading repository data...
Reading installed packages...




Information for package kernel-syms:
------------------------------------
Repository     : repo-sle-update
Name           : kernel-syms
Version        : 5.3.18-59.19.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 345 B
Installed      : No
Status         : not installed
Source package : kernel-syms-5.3.18-59.19.1.src
Summary        : Kernel Symbol Versions (modversions)
Description    : 
    Kernel symbols, such as functions and variables, have version
    information attached to them. This package contains the symbol versions
    for the standard kernels.


    This package is needed for compiling kernel module packages with proper
    package dependencies.




    Source Timestamp: 2021-08-03 14:11:23 +0000
    GIT Revision: 055c4fd5f13cc726bd7b280755e8eb97ffce85be
    GIT Branch: SLE15-SP3
Requires       : [4]
    pesign-obs-integration
    kernel-devel = 5.3.18-59.19
    kernel-default-devel = 5.3.18-59.19
    **kernel-preempt-devel = 5.3.18-59.19**

So, either unlock kernel-preempt-devel or you can just select the solution 2 when installing the patch. I think you can keep kernel-preempt locked since kernel-preempt-devel doesn’t require nor recommend it.

I’ve noticed you have old Leap-15.2-version of kernel-syms:

kernel-syms-5.3.18-**lp152**.87.1.x86_64
kernel-syms-5.3.18-**lp152**.84.1.x86_64

I wonder why is that. You shouldn’t have these after the upgrade to Leap 15.3…

I did choose option 2 and it installed what it had to.
What is preempt and why am I getting it?
Should I put the lock back on?

I still have the lp152 still:


 sudo zypper se --details --provides kernel-syms
Loading repository data...
Reading installed packages...

S  | Name              | Type    | Version           | Arch   | Repository
---+-------------------+---------+-------------------+--------+-------------------------------------------------------------
i+ | kernel-syms       | package | 5.3.18-lp152.87.1 | x86_64 | (System Packages)
i+ | kernel-syms       | package | 5.3.18-lp152.84.1 | x86_64 | (System Packages)
i+ | kernel-syms       | package | 5.3.18-59.19.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.16.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.13.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.10.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-59.5.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
v  | kernel-syms       | package | 5.3.18-57.1       | x86_64 | Main Repository
   | kernel-syms-azure | package | 5.3.18-38.17.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
   | kernel-syms-azure | package | 5.3.18-38.14.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
   | kernel-syms-azure | package | 5.3.18-38.11.1    | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
   | kernel-syms-azure | package | 5.3.18-38.8.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
   | kernel-syms-azure | package | 5.3.18-38.3.1     | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
   | kernel-syms-azure | package | 5.3.18-36.1       | x86_64 | Main Repository
   | kernel-syms-rt    | package | 5.3.18-8.3.1      | x86_64 | Main Repository
i+ | openSUSE-release  | package | 15.3-lp153.146.1  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.143.2  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.143.1  | x86_64 | Main Update Repository
v  | openSUSE-release  | package | 15.3-lp153.138.1  | x86_64 | Main Repository

Thanks

I would prefer Solution 1…

There are several flavors of kernel compiled with different configurations. Each flavor also has correspondent -devel package to allow building of external modules for this specific kernel. You get all -devel packages because you have kernel-syms which requires them. And you get kernel-syms because you have installed dkms.

Should I put the lock back on?

Why did you lock it in the first place? It costs several megabytes on disk and over network when updating, otherwise it does no harm, it just sits there. If you do not need dkms, just remove it then you can also remove kernel-syms and kernel-preempt-devel.

I presume if user has installed dkms then user needs it. dkms requiring kernel-syms is overkill as was mentioned in 1184989 – kernel-preempt selected for installation by kernel-preempt-devel and kernel-syms while kernel-default is installed. Unfortunately this bug was closed by reporter without any actions on dkms side (the original problem of installing unwanted kernel-preempt - not kernel-preemp**-devel **- was fixed elsewhere). If someone cares enough, one should clone this bug with explicit subject of removing kernel-syms from dkms requirements.

There is no reason to lock it. It was a bug in Leap 15.2 that kernel-preempt was installed unintentionally; this bug was fixed long ago and existed only for a short time (I think one kernel update before it was reverted).

Can I do something about that now?
Thank you.

I followed this post to lock it, and prevent preempt to be installed.

How can I find out which application needs dkms? I haven’t installed it myself, I don’t recall.
What is the best solution for me.
My apologies I am not an advanced user and that is why I am asking these questions. I really like openSUSE, and since switching to it in 2016, am very satisfied with it.

rpm -q --requires kernel-syms | grep kernel
**kernel**-default-devel = 5.3.18-lp152.84
**kernel**-devel = 5.3.18-lp152.84
**kernel**-preempt-devel = 5.3.18-lp152.84
**kernel**-default-devel = 5.3.18-lp152.87
**kernel**-devel = 5.3.18-lp152.87
**kernel**-preempt-devel = 5.3.18-lp152.87
**kernel**-default-devel = 5.3.18-59.19
**kernel**-devel = 5.3.18-59.19
**kernel**-preempt-devel = 5.3.18-59.19

preempt kernel is a kernel flavor compiled with a tuned CPU scheduler aiming at lower latencies, thus improving desktop interactivity which is noticeable during desktop use, but at the expense of throughput which is, for a change, preferred for servers.

If you put the lock back on, sometime in the future it might trigger a similar warning about some patch not being able to get installed because of conflicting with an older version of some package whose newer version requires the locked kernel-preempt-devel package.

However, if you didn’t remove the lock explicitly and went ahead with the solution #2 during installation of the patch instead - in that case the lock was removed only temporarily for the sake of the patch installation, and then the lock has been put back on. In such a case you should remove the lock explicitely with zypper removelock.

I think that’s fine since you also have newer kernel-syms versions. I guess the old lp152 versions are there remaining because of old Leap 15.2 kernels remaining on your system as well. ZYpp keeps old kernel versions in case one needs to boot them because of potentially having problems with some new kernels. This is controlled with multiversion.kernels = directive in **/etc/zypp/zypp.conf.**​

Well, that post is not really suitable for beginners since it induces them to breaking dependencies. Such a thing should be done only in the short term for some testing.

There’s no harm to have -preempt packages installed. Actually, booting with the preempt kernel might improve your situation as stated above.

david@atronach-opensuse:~> LANG=C zypper se dkms
Repository 'kde-extra' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...


S | Name | Summary                                 | Type
--+------+-----------------------------------------+--------
  | dkms | Dynamic Kernel Module Support Framework | package

If there’s “+” sign in the S column, it means you’ve installed it explicitly. If there’s just **“i” or “v”**​ without the plus sign, it means it got installed automatically as a dependency of another package.

$ zypper search --requires --recommends dkms

…this command should theoretically list packages which require or recommend dkms. Unfortunatelly, it doesn’t work reliably for me. Sometimes during zypper update, some package which I removed before, gets pulled in to my system again (unless it’s locked) even if zypper lists no installed packages among those requiring or recommending said package. Maybe some other users know of a more reliable command.

It really depends on you. Either tolerate kernel-devel-preempt being installed on your system.

Or you can even install kernel-preempt and boot it to check whether it doesn’t improve your desktop experience.

Or remove kernel-preempt-devel along with kernel-syms and dkms. In that case you loose the ability to having automatically compile kernel modules for new kernels during booting (dkms) and to compile modules manually against the preempt kernel flavor (kernel-preempt-devel) but some kernel modules available in repos are already precompiled for preempt and default kernel flavors:

david@atronach-opensuse:~> LANG=C zypper se *-kmp-*
Repository 'kde-extra' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...


S  | Name                               | Summary                                                                    | Type
---+------------------------------------+----------------------------------------------------------------------------+--------
   | akvcam-kmp-default                 | Virtual camera driver for Linux (V4L2)                                     | package
   | akvcam-kmp-default-debuginfo       | Debug information for package akvcam-kmp-default                           | package
   | akvcam-kmp-preempt                 | Virtual camera driver for Linux (V4L2)                                     | package
   | akvcam-kmp-preempt-debuginfo       | Debug information for package akvcam-kmp-preempt                           | package
   | bbswitch-kmp-default               | Bumblebee ACPI kernel module                                               | package
   | bbswitch-kmp-preempt               | Bumblebee ACPI kernel module                                               | package
   | broadcom-wl-kmp-default            | Wireless driver for Broadcom 43xx series of chips                          | package
   | broadcom-wl-kmp-default-debuginfo  | Debug information for package broadcom-wl-kmp-default                      | package
   | broadcom-wl-kmp-preempt            | Wireless driver for Broadcom 43xx series of chips                          | package
   | broadcom-wl-kmp-preempt-debuginfo  | Debug information for package broadcom-wl-kmp-preempt                      | package
   | cluster-md-kmp-azure               | Clustering support for MD devices                                          | package
   | cluster-md-kmp-default             | Clustering support for MD devices                                          | package
   | cluster-md-kmp-preempt             | Clustering support for MD devices                                          | package
   | cluster-md-kmp-rt                  | Clustering support for MD devices                                          | package
   | cluster-md-kmp-rt_debug            | Clustering support for MD devices                                          | package
...]

Solution for what? I fail to see a problem in the first place.

There is no single command.

  1. Package can be Required, Recommended or Suggested by other package, or package can Supplement some other packages or features.
  2. RPM works with opaque “provides”, not with package names.

So you need at least four commands.

Search if some other package actively wants to install this package via anything this package provides:

zypper search --requires-pkg dkms
zypper search --recommends-pkg dkms
zypprt search --suggests-pkg dkms

Check whether package supplements something already installed or e.g. existing hardware and so is indirectly selected for installation:

zypper info --supplements dkms

The –suggests-pkg option is superfluous here since ZYpp never automatically selects suggested pkgs for installation during dependency solving. Try to install some pkg that has some suggestions - those will not get selected for installation when installing the pkg that suggests them. Suggestions are there only for user information but zypper ignores them during dependency solving.

One of the packages I’ve removed from my system and haven’t locked because no other package requires nor recommend it and yet it gets automatically selected for installation during some zypper update tasks, is grub2-systemd-sleep-plugin. When I run zypper info --supplements grub2-systemd-sleep-plugin according to your advice, it indeed shows some items it supplements and which are installed on my system so it might really work in my use case. Thanks for that hint.

I just tried to force-reinstall** systemd and grub2** which both grub2-systemd-sleep-plugin supplements and this triggered the autoinstallation of grub2-systemd-sleep-plugin unless it’s locked so this time it worked as expected. However, then I tried this for all the other packages I’ve uninstalled from the default openSUSE installation and unfortunatelly out of about 58 pkgs, 5 of them weren’t selected for autoinstallation when force-reinstalling a package they supplement. E.g.:

david@atronach-opensuse:~> LANG=C zypper se yast2-snapper
Loading repository data...
Reading installed packages...


S | Name          | Summary                             | Type
--+---------------+-------------------------------------+--------
  | yast2-snapper | YaST - file system snapshots review | package

david@atronach-opensuse:~> LANG=C zypper if --supplements yast2-snapper
Loading repository data...
Reading installed packages...




Information for package yast2-snapper:
--------------------------------------
Repository     : repo-oss
Name           : yast2-snapper
Version        : 4.2.0-1.152
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 107.1 KiB
Installed      : No
Status         : not installed
Source package : yast2-snapper-4.2.0-1.152.src
Summary        : YaST - file system snapshots review
Description    : 
    YaST module for accessing and managing file-system snapshots
Supplements    : (snapper and yast2)


david@atronach-opensuse:~> LANG=C sudo zypper in -f yast2
Loading repository data...
Reading installed packages...
Forcing installation of 'yast2-4.3.65-3.11.1.x86_64' from repository 'repo-sle-update'.
Resolving package dependencies...


The following package is going to be reinstalled:
  yast2


1 package to reinstall.
Overall download size: 546.7 KiB. Already cached: 0 B. No additional space will be used or freed after the operation.
Continue? [y/n/v/...? shows all options] (y): n

So as you can see, the yast2-snapper package is not installed and supplements both snapper and yast2 packages. If I try to force-reinstall yast2, zypper doesn’t auto-select yast2-snapper for installation. So unfortunately, even zypper if --supplement command isn’t 100% reliable indicator of which packages get auto-added during zypper update (provided it behaves the same as ​zypper in --force <pkg>).

Thank you for your through explanation.

sudo zypper locks      

# | Name           | Type    | Repository
--+----------------+---------+-----------
1 | kernel-preempt | package | (any)

zypper se dkms
Repository 'Packman Repository' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...

S | Name | Summary                                 | Type
--+------+-----------------------------------------+--------
i | dkms | Dynamic Kernel Module Support Framework | package

sudo zypper search --requires --recommends dkms
Loading repository data...
Reading installed packages...

S | Name | Summary                                 | Type
--+------+-----------------------------------------+--------
i | dkms | Dynamic Kernel Module Support Framework | package

Does it mean I didn’t install it myself?! Hmmm!

So there is nothing wrong with having preempt installed instead of the default kernel?
I don’t have any problems/challenges with my desktop to run preempt. I don’t know!

I was referring to your preferred options. But I think in my case it was to late, because I chose option 2.
Is there a way to revert back?

This is what I get:

simorgh@SimorghSUSE:~> zypper search --requires-pkg dkms
Loading repository data...
Reading installed packages...


S | Name | Summary                                 | Type
--+------+-----------------------------------------+--------
i | dkms | Dynamic Kernel Module Support Framework | package


simorgh@SimorghSUSE:~> zypper search --recommends-pkg dkms
Loading repository data...
Reading installed packages...
No matching items found.

simorgh@SimorghSUSE:~> zypper search --suggests-pkg dkms
Loading repository data...
Reading installed packages...
No matching items found.

simorgh@SimorghSUSE:~> zypper info --supplements dkms
Loading repository data...
Reading installed packages...




Information for package dkms:
-----------------------------
Repository     : Main Repository
Name           : dkms
Version        : 2.3-bp153.1.17
Arch           : noarch
Vendor         : openSUSE
Installed Size : 203.7 KiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : dkms-2.3-bp153.1.17.src
Summary        : Dynamic Kernel Module Support Framework
Description    : 
    This package contains the framework for the Dynamic
    Kernel Module Support (DKMS) method for installing
    module RPMS as originally developed by Dell.
Supplements    : ---

It does it here so you probably have some additional configuration that blocks it.

I see, I was wrong then. zypper installation dialog removes locks permanently.

Correct. You can check various statuses in the zypper man page, under the “search” query command section.

Unless you’ve removed kernel-default explicitely, you have both kernel-default and kernel-preempt installed after kernel-preempt installation. By default, ZYpp doesn’t remove kernels when installing a different flavor. So you can select kernel-default in the Grub2 menu → Advanced options after restarting or turning on your PC in case kernel-preempt is causing problems. Once you check kernel-preempt runs fine, you can remove kernel-default.

However, kernel-preempt is otherwise identical to kernel-default except having preemption enabled:

david@atronach-opensuse:~> zgrep -i preempt /proc/config.gz
CONFIG_LOCALVERSION="-59.19-preempt"
**# CONFIG_PREEMPT_NONE is not set**
# CONFIG_PREEMPT_VOLUNTARY is not set
**CONFIG_PREEMPT=y**
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT_TRACER is not set
CONFIG_PREEMPTIRQ_DELAY_TEST=m