Error Installing Nvidia Driver On A 7.5 Beta Kernel

Home » CentOS » Error Installing Nvidia Driver On A 7.5 Beta Kernel
CentOS 3 Comments

OK, I know CentOS has nothing to do with RHEL beta releases, but I
wanted to test if el7.5 has added support for a particular peripheral
(Wacom Pro 2 tablet) … but was unable to install the propriety Nvidia display driver (v390.25) on a test workstation – and was wondering if anyone could explain on what is going on.

All I’ve done is upgrade an existing CentOS 7.4 install with the RHEL
7.5 beta kernel RPMS

However, when installing the Nvidia driver, it fails with:

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol
‘__cachemode2pte_tbl’

A bit of Googling seems to suggest that this issue has been ‘fixed’ in later upstream kernels by changing the export of this symbol from
‘EXPORT_SYMBOL_GPL’ to ‘EXPORT_SYMBOL’

However, 7.4 and earlier el7 kernels also export this symbol as EXPORT_SYMBOL_GPL – but the Nvidia driver builds/installs fine on 7.4
kernels …

So, I’m not really sure what the issue is – i.e. is it an Nvidia or Redhat issue ?

For now, I’ve managed to hack around this by patching the stub Nvidia driver src to change MODULE_LICENSE from “NVIDIA” to “GPL” – and the Nvidia driver now installs and loads OK

If anyone knows any more about this, then please let me know

Thanks

James Pearson

3 thoughts on - Error Installing Nvidia Driver On A 7.5 Beta Kernel

  • It looks like a regression. This was originally fixed upstream
    (kernel.org) 3 years ago, so if the RHEL7.5 beta kernel has reverted to
    ‘EXPORT_SYMBOL_GPL’ then it is a regression that will break building any out-of-tree non-gpl modules which need to set caching mode in pte’s

    You should file a bug report with Red Hat.

    The correct fix in the kernel is in arch/x86/mm/init.c

    -EXPORT_SYMBOL_GPL(__cachemode2pte_tbl);
    +EXPORT_SYMBOL(__cachemode2pte_tbl);

  • Phil Perry wrote:

    Well, that’s the rub – RHEL7 have never had that upstream fix – i.e. the el7.4 kernel (3.10.0-693.el7) has
    ‘EXPORT_SYMBOL_GPL(__cachemode2pte_tbl)’ as does the el7.5b kernel
    (3.10.0-830.el7) …

    The Nvidia driver builds/installs OK on el7.4 – but not on el7.5b

    I’ll report this to Red Hat anyway …

    Thanks

    James Pearson

  • Ah, I’d not checked the sources, you are correct. I do not have an explanation for the differing behaviour between 7.4 and 7.5beta.

    It looks like both __cachemode2pte_tbl and __pte2cachemode_tbl need updating in arch/x86/mm/init.c

    If you file a bug, please could you mail the link so I can add myself to the CC. Thanks.