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 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.
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
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
- akmods with clang fails to build nvidia driver 495.46 for exptl variant
- 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