James Pearson
2018-Feb-02 15:30 UTC
[CentOS] Error installing Nvidia driver on a 7.5 beta kernel
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
Phil Perry
2018-Feb-02 16:25 UTC
[CentOS] Error installing Nvidia driver on a 7.5 beta kernel
On 02/02/18 15:30, James Pearson wrote:> 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 ? >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.> 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 >The correct fix in the kernel is in arch/x86/mm/init.c -EXPORT_SYMBOL_GPL(__cachemode2pte_tbl); +EXPORT_SYMBOL(__cachemode2pte_tbl);> If anyone knows any more about this, then please let me know > > Thanks > > James Pearson
James Pearson
2018-Feb-02 17:32 UTC
[CentOS] Error installing Nvidia driver on a 7.5 beta kernel
Phil Perry wrote:> > 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);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