Rmnscnce/kernel-xanmod

Thanks for answering that question about compiling akmods. Now it seems I have a new issue when trying to compile akmods on the exptl version. Previously I had it working no problem when you had instructions that included some environment variables to control the compiler options for the build, but those instructions are gone and now the akmods build fails with errors about an ‘unrecognized command-line option -Qunused-arguments’. I didn’t see any open issues about this, but since you removed the old build process from this README, I was wondering if there’s some piece to the puzzle I’m missing her? You also mentioned in your last message that akmods requires some tweaks with cacule and exptl.

The exptl variant has a patched top-level Makefile in the devel package that makes it possible to compile all kernel modules with LLVM+LTO (be it from akmods, dkms, or your ol’ trusty make) without requiring user input.

Refer to this ticket for technical details

```
rmnscnce

Shouldn’t amd-pstate and acpi-cpufreq be modules instead of buit-in?

Actually, no. Those modules are to be loaded very early into the kernel to work, so using it as a module won’t work since it will get loaded as early as unpacking the initrd contents into RAM. modprobe-ing it would also not work as expected.

```
rmnscnce

Hello,
Been trying non exptl or rt variants but still not able to install official nvidia drivers afterwards. With and without DKMS. Same result even after installing headers for installed xanmod kernel. Am I doing something wrong?

@shrisha Did you try installing the development packages? For example for the edge kernel, you would install like this:

 sudo dnf in kernel-xanmod-edge kernel-xanmod-edge-devel

Makefile of the NVIDIA drivers are hardcoded to not accept both RT kernels and the ones built using LLVM. Consider using the other variants if you’re an NVIDIA user. Sorry for the inconveniences

```
rmnscnce

No, I’m sorry to bothering you. And I’m very grateful for your time to maintain your COPR and do this volunteer work for benefit of others.
And yes I know that. That’s why I mentioned in my original post that I tried non exptl and RT kernels variants since I’m aware of that situation with NVIDIA. So I tried edge and TT variants instead.

No problems. Questions are welcome.

So I tried edge and TT variants instead.

Yeah, those will work fine

```
rmnscnce

They do, except the NVIDIA drivers part :slight_smile: That’s why I asked you, if anything else I have to do to get it working?

You can try the steps mentioned here in the Copr project homepage and see if it works for the exptl variant:

Keep in mind though that more often than not, people hardcode Makefile variables for legitimate reasons, so mind the possible bug that may arise by using another compiler, let alone LTO

```
rmnscnce

I figured. Thank you.

kernel-xanmod-edge-headers is trying to replace the original kernel-headers is this an error?

Not an error. Unfortunately there’s no way to build the header package without making it overwrite the older packages (The files are in the same directories for all versions)

Should you remove all the packages from this repo, you must --exclude=\*headers in the remove command and then dnf swap it with the one from Fedora/EL repository

```
rmnscnce

I get these bunch of errors after upgrading(I think its devel package scriplet), but everything seems working. Should I ignore them?

ardlink: cannot link ./include/kunit/assert.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/kunit/assert.h.hardlink-temporary: File exists
hardlink: cannot link ./include/kunit/try-catch.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/kunit/try-catch.h.hardlink-temporary: File exists
hardlink: cannot link ./include/kunit/test.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/kunit/test.h.hardlink-temporary: File exists
hardlink: cannot link ./include/kunit/test-bug.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/kunit/test-bug.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/acgcc.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/acgcc.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/acenvex.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/acenvex.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/acenv.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/acenv.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/aclinuxex.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/aclinuxex.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/acgccex.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/acgccex.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/aclinux.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/aclinux.h.hardlink-temporary: File exists
hardlink: cannot link ./include/acpi/platform/acintel.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/acpi/platform/acintel.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/rxrpc-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/rxrpc-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/asymmetric-parser.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/asymmetric-parser.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/trusted_tpm.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/trusted_tpm.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/asymmetric-subtype.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/asymmetric-subtype.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/big_key-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/big_key-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/keyring-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/keyring-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/dns_resolver-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/dns_resolver-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/encrypted-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/encrypted-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/trusted-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/trusted-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/trusted_tee.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/trusted_tee.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/user-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/user-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/ceph-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/ceph-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/asymmetric-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/asymmetric-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/system_keyring.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/system_keyring.h.hardlink-temporary: File exists
hardlink: cannot link ./include/keys/request_key_auth-type.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/keys/request_key_auth-type.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/sh_timer.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/sh_timer.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/phy.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/phy.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/verification.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/verification.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/blk-pm.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/blk-pm.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/transport_class.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/transport_class.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/blk-cgroup.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/blk-cgroup.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/kvm_host.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/kvm_host.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/pm_qos.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/pm_qos.h.hardlink-temporary: File exists
hardlink: cannot link ./include/linux/kobj_map.h to /usr/src/kernels/5.15.11-xm1.0e20211105.fc35.x86_64/./include/linux/kobj_map.h.hardlink-temporary: File exists

You can safely ignore it. This also happens on the kernel-devel package provided by Fedora.

```
rmnscnce

1 Like

Okay thanks.

There is trick for exptl users. If you don’t want to run akmods every time kernel upgrades manually, there is way to automate process. Edit /usr/lib/systemd/system/akmods.service and replace this line

ExecStart=/usr/sbin/akmods --from-init

to this

ExecStart=env CC=clang HOSTCC=clang LD=ld.lld LLVM=1 LLVM_IAS=1 /usr/sbin/akmods --from-init

Be aware that first boot time will increase after kernel upgrade. If you have good cpu then its about half a minute

Thanks for timely update to 5.16
I have two problems

  1. akmods with clang fails to build nvidia driver 495.46 for exptl variant
  2. scaling-driver is still acpi-cpufreq despite having zen2 cpu

The same problem with NVidia driver has been caught in xanmod-edge variant.

If it’s also caught in the xanmod-edge variant, it means the NVIDIA driver hasn’t been updated to support the new kernel.

To add, it’s not advisable to directly update to the latest major kernel version if you’re using out-of-tree drivers. The trick is to keep track of when Fedora releases the new major version of the kernel and then update the drivers, since RPMFusion closely synchronizes with Fedora proper