NVIDIA – Another GPL Problem, but only with AMD Systems..
Thanks to Pete for finding this one…
There is another GPL-only issue with NVIDIA and Kernel 4.14-rc2, but this one only occurs if you have an AMD system, with the new ‘secure memory encryption’ feature enabled… It may also crop up if you are using a Distro-created version of this kernel release, as these tend to have almost-everything-enabled in their kernel config.
If you have ‘AMD Secure Memory Encryption (SME) support‘ enabled in your kernel config, then the NVIDIA ( 384.90 ) compile/load will fail:
.................. ld -r -o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.90/kernel/nvidia-modeset/nv-modeset-interface.o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.90/kernel/nvidia-modeset/nvidia-modeset-linux.o Building modules, stage 2. MODPOST 4 modules FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'sme_me_mask' make[3]: *** [/usr/src/linux-4.14-rc2/scripts/Makefile.modpost:91: __modpost] Error 1 make[2]: *** [/usr/src/linux-4.14-rc2/Makefile:1502: modules] Error 2 make[2]: Leaving directory '/usr/src/linux-4.14-rc2' make[1]: *** [Makefile:145: sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-4.14-rc2' make: *** [Makefile:81: modules] Error 2
The workaround – for the time being – is to de-select this feature in the Kernel config….
Hopefully this will get fixed soon, as it has already been mentioned in one of the related mailing lists: https://www.spinics.net/lists/linux-arch/msg41632.html
Robert Gadsdon. October 1, 2017.
Thank you!!!
I installed nvidia 389.60 on opensuse 42.3 (AMD Ryzen 5 1600, Kernel 4.14.0-rc3, GTX 1050):
1. download nvidia 64 bit driver from nvidia.com (not yast update)
2. make menuconfig and turn off sm_me_mask option for kernel
3. run NVIDIA-Linux-x86_64-384.90.run [disable nouveau -> to blacklist] OR do manually
4. mkinitrd; reboot (without nouveau module)
5. run NVIDIA-Linux-x86_64-384.90.run
Update: I used NVIDIA-Linux-x86_64-384.90.run –no-drm (because I had also problem with compilation of module)