Msi-ec absent from kernel?

Hi there,

I’m using Tumbleweed with GNOME on my MSI laptop.

I usually install mcontrolcenter, but I see this time that msi-ec is absent from the kernel.

And while we can still install it, it’s impossible to do it on kernel-longterm since I have an unclear “Error 2” when using “make”. Anything we can do about it?

Better is:
where do you get the sources?

and

post the complete Installation from Terminal here in Code-Tags.

Here GitHub - BeardOverflow/msi-ec

~/msi-ec> make
make[1]: ingresso nella directory «/usr/lib/modules/6.12.25-1-longterm/build»
make[1]: ***  Nessuna regola per generare l'obiettivo «modules».  Arresto.
make[1]: uscita dalla directory «/usr/lib/modules/6.12.25-1-longterm/build»
make: *** [Makefile:13: modules] Error 2

~/msi-ec> sudo make
make[1]: ingresso nella directory «/usr/lib/modules/6.12.25-1-longterm/build»
make[1]: ***  Nessuna regola per generare l'obiettivo «modules».  Arresto.
make[1]: uscita dalla directory «/usr/lib/modules/6.12.25-1-longterm/build»
make: *** [Makefile:13: modules] Error 2

~/msi-ec> cat /sys/devices/platform/msi-ec/shift_mode
cat: /sys/devices/platform/msi-ec/shift_mode: File o directory non esistente


Post:
LANG=C zypper se -si kernel gcc

Have you downloaded the zip Version from the git Repo?

@shishimaru kernel module support is there in the default kernel?

zcat /proc/config.gz | grep MSI_EC
CONFIG_MSI_EC=m

Did you try modprobing?

Yep, seems that the module is correctly present in the default kernel.

For longterm instead:

~> zcat /proc/config.gz | grep MSI_EC
CONFIG_MSI_EC=m
~> sudo modprobe msi-ec/
[sudo] password di root: 
modprobe: FATAL: Module msi-ec/ not found in directory /usr/lib/modules/6.12.25-1-longterm
~> LANG=C zypper se -si kernel gcc
Loading repository data...
Reading installed packages...

S  | Name                        | Type    | Version             | Arch   | Repository
---+-----------------------------+---------+---------------------+--------+----------------------------
i  | gcc                         | package | 14-3.1              | x86_64 | Repository principale (OSS)
i  | gcc                         | package | 14-3.1              | x86_64 | repo-oss
i  | gcc-c++                     | package | 14-3.1              | x86_64 | Repository principale (OSS)
i  | gcc-c++                     | package | 14-3.1              | x86_64 | repo-oss
i  | gcc14                       | package | 14.2.1+git11702-1.1 | x86_64 | Repository principale (OSS)
i  | gcc14                       | package | 14.2.1+git11702-1.1 | x86_64 | repo-oss
i  | gcc14-c++                   | package | 14.2.1+git11702-1.1 | x86_64 | Repository principale (OSS)
i  | gcc14-c++                   | package | 14.2.1+git11702-1.1 | x86_64 | repo-oss
i+ | kernel-default              | package | 6.14.4-1.1          | x86_64 | Repository principale (OSS)
i+ | kernel-default              | package | 6.14.4-1.1          | x86_64 | repo-oss
i  | kernel-default-devel        | package | 6.14.4-1.1          | x86_64 | Repository principale (OSS)
i  | kernel-default-devel        | package | 6.14.4-1.1          | x86_64 | repo-oss
i  | kernel-devel                | package | 6.14.4-1.1          | noarch | Repository principale (OSS)
i  | kernel-devel                | package | 6.14.4-1.1          | noarch | repo-oss
i  | kernel-firmware-all         | package | 20250206-1.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-all         | package | 20250206-1.1        | noarch | repo-oss
i  | kernel-firmware-amdgpu      | package | 20250419-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-amdgpu      | package | 20250419-2.1        | noarch | repo-oss
i  | kernel-firmware-ath10k      | package | 20250206-4.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-ath10k      | package | 20250206-4.1        | noarch | repo-oss
i  | kernel-firmware-ath11k      | package | 20250424-1.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-ath11k      | package | 20250424-1.1        | noarch | repo-oss
i  | kernel-firmware-ath12k      | package | 20250424-1.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-ath12k      | package | 20250424-1.1        | noarch | repo-oss
i  | kernel-firmware-atheros     | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-atheros     | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-bluetooth   | package | 20250422-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-bluetooth   | package | 20250422-2.1        | noarch | repo-oss
i  | kernel-firmware-bnx2        | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-bnx2        | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-brcm        | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-brcm        | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-chelsio     | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-chelsio     | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-dpaa2       | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-dpaa2       | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-i915        | package | 20250410-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-i915        | package | 20250410-2.1        | noarch | repo-oss
i  | kernel-firmware-intel       | package | 20250419-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-intel       | package | 20250419-2.1        | noarch | repo-oss
i  | kernel-firmware-iwlwifi     | package | 20250423-1.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-iwlwifi     | package | 20250423-1.1        | noarch | repo-oss
i  | kernel-firmware-liquidio    | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-liquidio    | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-marvell     | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-marvell     | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-media       | package | 20250424-1.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-media       | package | 20250424-1.1        | noarch | repo-oss
i  | kernel-firmware-mediatek    | package | 20250319-4.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-mediatek    | package | 20250319-4.1        | noarch | repo-oss
i  | kernel-firmware-mellanox    | package | 20250408-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-mellanox    | package | 20250408-2.1        | noarch | repo-oss
i  | kernel-firmware-mwifiex     | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-mwifiex     | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-network     | package | 20250408-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-network     | package | 20250408-2.1        | noarch | repo-oss
i  | kernel-firmware-nfp         | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-nfp         | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-nvidia      | package | 20250206-3.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-nvidia      | package | 20250206-3.1        | noarch | repo-oss
i  | kernel-firmware-platform    | package | 20250422-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-platform    | package | 20250422-2.1        | noarch | repo-oss
i  | kernel-firmware-prestera    | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-prestera    | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-qcom        | package | 20250422-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-qcom        | package | 20250422-2.1        | noarch | repo-oss
i  | kernel-firmware-qlogic      | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-qlogic      | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-radeon      | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-radeon      | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-realtek     | package | 20250422-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-realtek     | package | 20250422-2.1        | noarch | repo-oss
i  | kernel-firmware-serial      | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-serial      | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-sound       | package | 20250422-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-sound       | package | 20250422-2.1        | noarch | repo-oss
i  | kernel-firmware-ti          | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-ti          | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-ueagle      | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-ueagle      | package | 20250206-2.1        | noarch | repo-oss
i  | kernel-firmware-usb-network | package | 20250206-2.1        | noarch | Repository principale (OSS)
i  | kernel-firmware-usb-network | package | 20250206-2.1        | noarch | repo-oss
i+ | kernel-longterm             | package | 6.12.25-1.1         | x86_64 | Repository principale (OSS)
i+ | kernel-longterm             | package | 6.12.25-1.1         | x86_64 | repo-oss
i  | kernel-macros               | package | 6.14.4-1.1          | noarch | Repository principale (OSS)
i  | kernel-macros               | package | 6.14.4-1.1          | noarch | repo-oss
i  | kernel-syms                 | package | 6.14.4-1.1          | x86_64 | Repository principale (OSS)
i  | kernel-syms                 | package | 6.14.4-1.1          | x86_64 | repo-oss
i  | libgcc_s1                   | package | 15.1.1+git9595-1.1  | x86_64 | Repository principale (OSS)
i  | libgcc_s1                   | package | 15.1.1+git9595-1.1  | x86_64 | repo-oss
i  | libstdc++6-devel-gcc14      | package | 14.2.1+git11702-1.1 | x86_64 | Repository principale (OSS)
i  | libstdc++6-devel-gcc14      | package | 14.2.1+git11702-1.1 | x86_64 | repo-oss
i  | purge-kernels-service       | package | 0-9.9               | noarch | Repository principale (OSS)
i  | purge-kernels-service       | package | 0-9.9               | noarch | repo-oss

@shishimaru there is a typo in your command… anyway run /sbin/modinfo msi-ec no sudo needed…

Otherwise:
you have not installed the devel package for kernel-longterm

~> sudo zypper in kernel-longterm-devel 
Aggiornamento del servizio 'NVIDIA'.
Aggiornamento del servizio 'openSUSE'.
Caricamento dati del repository in corso...
Lettura dei pacchetti installati in corso...
Risoluzione dipendenze dei pacchetti in corso...

I seguenti 2 NUOVI pacchetti verranno installati:
  kernel-devel-longterm kernel-longterm-devel

2 nuovi pacchetti da installare.

Dimensione scaricata del pacchetto:    27,9 MiB

Modifiche alla dimensione del pacchetto installato:
              |      71,7 MiB  richiesto dal pacchetto che verrà installato
    71,7 MiB  |  -      0 B    rilasciati dai pacchetti che verranno rimossi

Back-end:  classic_rpmtrans
Continuare? [s/n/v/...? mostra tutte le opzioni] (s): 
Recupero di: kernel-devel-longterm-6.12.27-1.1.noarch (Repository principale (OSS))
                                                                                  (1/2),  19,9 MiB    
Recupero di: kernel-devel-longterm-6.12.27-1.1.noarch.rpm .........................[fine (16,3 MiB/s)]
Recupero di: kernel-longterm-devel-6.12.27-1.1.x86_64 (Repository principale (OSS))
                                                                                  (2/2),   8,0 MiB    
Recupero di: kernel-longterm-devel-6.12.27-1.1.x86_64.rpm .........................[fine (15,5 MiB/s)]

Controllo dei conflitti tra file: ..............................................................[fine]
(1/2) Installazione di: kernel-devel-longterm-6.12.27-1.1.noarch ...............................[fine]
(2/2) Installazione di: kernel-longterm-devel-6.12.27-1.1.x86_64 ...............................[fine]
Esecuzione script postransazionali in corso ....................................................[fine]

~/msi-ec> sudo make dkms-install 
dkms --version >> /dev/null
mkdir -p /usr/src/msi_ec-0.08
cp /home/salvi/msi-ec/dkms.conf /usr/src/msi_ec-0.08
cp /home/salvi/msi-ec/Makefile /usr/src/msi_ec-0.08
cp /home/salvi/msi-ec/msi-ec.c /usr/src/msi_ec-0.08
cp /home/salvi/msi-ec/ec_memory_configuration.h /usr/src/msi_ec-0.08
sed -e "s/@CFLGS@//" \
    -e "s/@VERSION@/0.08/" \
    -i /usr/src/msi_ec-0.08/dkms.conf
dkms add msi_ec/0.08

Error! DKMS tree already contains: msi_ec/0.08
You cannot add the same module/version combo more than once.
make: *** [Makefile:52: dkms-install] Error 3

~/msi-ec> make
make[1]: ingresso nella directory «/usr/lib/modules/6.12.25-1-longterm/build»
make[1]: ***  Nessuna regola per generare l'obiettivo «modules».  Arresto.
make[1]: uscita dalla directory «/usr/lib/modules/6.12.25-1-longterm/build»
make: *** [Makefile:13: modules] Error 2

cat /sys/devices/platform/msi-ec/shift_mode
cat: /sys/devices/platform/msi-ec/shift_mode: File o directory non esistente

~/msi-ec> sudo modprobe msi-ec.c 
modprobe: FATAL: Module msi-ec.c not found in directory /usr/lib/modules/6.12.25-1-longterm

Meh, definitely not worth it. If no one has any idea, I’ll just move to default. Longterm isn’t that ideal in not-default cases. Three days of troubleshooting is abundantly enough, thanks everyone for the efforts.

As @ malcolmlewis said, it’s there:

modinfo msi_ec
filename:       /usr/lib/modules/6.12.27-1-longterm/kernel/drivers/platform/x86/msi-ec.ko.zst
description:    MSI Embedded Controller
author:         Nikita Kravets <teackot@gmail.com>
author:         Aakash Singh <mail@singhaakash.dev>
author:         Jose Angel Pastrana <japp0005@red.ujaen.es>
license:        GPL
suserelease:    openSUSE Tumbleweed
srcversion:     000CB54099F66F442017CCC
alias:          dmi*:svn*Micro-StarInternational*:
alias:          dmi*:svn*MICRO-STARINT*:
depends:        battery
intree:         Y
name:           msi_ec
retpoline:      Y
vermagic:       6.12.27-1-longterm SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         openSUSE Secure Boot CA
sig_key:        FA:BE:D8:BF:40:9A:5E:65
sig_hashalgo:   sha256
signature:      13:7A:87:61:17:2D:4C:08:BF:C1:AF:8D:BA:11:D9:E2:49:38:69:56:
                33:5C:92:F8:E0:94:D3:3C:B4:CF:C5:BC:F1:24:37:7C:2E:65:3B:22:
                03:8F:53:4D:B1:A5:C7:95:C9:77:50:71:63:38:B6:05:41:22:BE:25:
                DD:E8:79:D8:F2:8C:F3:50:70:E1:7D:E4:F8:5E:1A:76:06:8D:20:EA:
                D4:96:E5:E7:D3:78:48:02:04:EF:F3:CE:A6:10:93:12:03:27:65:A2:
                0D:76:60:4F:60:7F:3A:F9:40:79:C6:30:94:76:9E:8E:65:D2:00:4B:
                AC:3C:53:4E:B3:76:37:F0:8F:E3:2C:63:55:61:09:41:BF:A6:43:D9:
                7D:82:AD:73:D5:75:7B:07:CC:56:B7:B6:0B:07:F1:E6:DA:21:D5:8C:
                84:DC:61:2F:D1:D5:F6:0A:BE:36:BB:B4:76:2F:C8:9E:D6:C7:C6:B3:
                36:7D:0C:B2:1F:1E:ED:29:55:DC:72:55:06:1A:B8:A1:0C:50:C1:B0:
                BC:94:9A:3E:92:23:0D:AA:51:59:50:8A:BC:63:04:07:A3:A0:93:D8:
                01:44:02:BB:EA:6E:D2:1C:18:F9:03:F3:F3:42:B5:CD:D7:E0:F3:0E:
                27:6B:D9:A9:2A:FF:48:D5:95:FB:7D:21:99:89:51:AC

But I could also compile it:

make dkms-install 
dkms --version >> /dev/null
mkdir -p /usr/src/msi_ec-0.08
cp /home/stephan/Downloads/msi-ec-main/dkms.conf /usr/src/msi_ec-0.08
cp /home/stephan/Downloads/msi-ec-main/Makefile /usr/src/msi_ec-0.08
cp /home/stephan/Downloads/msi-ec-main/msi-ec.c /usr/src/msi_ec-0.08
cp /home/stephan/Downloads/msi-ec-main/ec_memory_configuration.h /usr/src/msi_ec-0.08
sed -e "s/@CFLGS@//" \
    -e "s/@VERSION@/0.08/" \
    -i /usr/src/msi_ec-0.08/dkms.conf
dkms add msi_ec/0.08
Creating symlink /var/lib/dkms/msi_ec/0.08/source -> /usr/src/msi_ec-0.08
dkms build msi_ec/0.08
Sign command: /lib/modules/6.12.27-1-longterm/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Cleaning build area... done.
Building module(s)... done.
Signing module /var/lib/dkms/msi_ec/0.08/build/msi-ec.ko
Cleaning build area... done.
dkms install msi_ec/0.08
Found pre-existing /lib/modules/6.12.27-1-longterm/kernel/drivers/platform/x86/msi-ec.ko.zst, archiving for uninstallation
Installing /lib/modules/6.12.27-1-longterm/updates/msi-ec.ko.zst
Adding linked weak modules...
Running depmod.... done.
echo msi-ec > /etc/modules-load.d/msi-ec.conf

And it is now in the updates directory of the kernel:

modinfo msi-ec
filename:       /usr/lib/modules/6.12.27-1-longterm/updates/msi-ec.ko.zst
version:        0.09
description:    MSI Embedded Controller
author:         Nikita Kravets <teackot@gmail.com>
author:         Aakash Singh <mail@singhaakash.dev>
author:         Jose Angel Pastrana <japp0005@red.ujaen.es>
license:        GPL
suserelease:    openSUSE Tumbleweed
srcversion:     24E88E52F3E8B06B4C005D5
depends:        battery
name:           msi_ec
retpoline:      Y
vermagic:       6.12.27-1-longterm SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         DKMS module signing key
sig_key:        0C:AA:C0:D6:22:91:D8:0E:89:F9:A1:95:40:EB:F7:DF:D7:F6:24:C1
sig_hashalgo:   sha256
signature:      47:65:1A:21:41:B3:F4:00:E9:BA:85:D9:39:3E:88:6A:8D:29:02:E8:
                6C:11:5C:84:79:D9:E2:A2:4A:07:30:C5:3D:9F:E0:2A:39:90:AA:59:
                46:37:B6:DB:B3:2A:D2:E9:43:C6:B5:78:7D:57:65:D7:73:FF:0C:19:
                85:5B:D2:AC:EC:ED:4C:2A:47:E2:0B:23:00:CB:2F:10:DE:33:8C:76:
                0F:68:DD:B6:5A:40:0E:B5:E6:C8:90:0E:06:36:B5:2D:89:F7:D7:CD:
                06:AB:F2:14:89:EB:30:C2:7E:B8:63:2C:41:33:DF:BD:53:BB:96:14:
                0A:A9:29:E1:01:30:BD:23:C1:1B:78:77:FD:EF:7D:A2:43:96:44:89:
                08:E1:DD:09:5B:FB:97:FE:82:09:A5:3F:FC:F4:9B:C5:86:90:15:64:
                FF:C8:52:A2:4A:90:77:AF:AD:66:8B:7E:90:E7:C0:E3:FE:C0:89:09:
                B0:C2:22:E8:74:64:DE:95:44:51:AC:B3:DF:9B:46:6F:83:87:8B:18:
                5C:1D:AB:01:22:F9:F5:F5:30:E1:96:43:47:EC:6C:B9:70:39:14:C8:
                30:90:56:16:76:46:1F:9E:F5:BD:23:03:49:AB:CA:9F:25:7D:E2:F3:
                79:FF:5B:62:29:17:C5:13:B7:59:16:8C:FA:6D:8A:B5
parm:           firmware:Load a configuration for a specified firmware version (charp)
parm:           debug:Load the driver in the debug mode, exporting the debug attributes (bool)
tumbleweed:/home/stephan/Downloads/msi-ec-main # 

This is your problem…

Also this is the old Kernel…

Doesn’t change anything in the newest LTS kernel.

msi_ec might be installed but, as you can see, it’s not working with LTS. I’ll just stick with default kernel where I don’t need to install anything.

I have no idea about the OP’s problem, but this listing in post #7 shows that the standard OSS repo is two times active in the repo list. This is of course something that should be repaired. But I am always suspicious when I see such things. Does this mean that the repository management of the OP is “sloppy” and that thus a further investigation of it might be useful?