# nvidia: Unknown symbol mtrr_del (ebuild mistake?)

## dcljr

For a while now I have been putting off upgrading my kernel and X server because I was waiting for a stable nvidia-drivers-304.* to upgrade to that would work with the latest stable versions of those packages. The nvidia-drivers-304.131 ebuild used to claim to be "limited to the following kernels: <sys-kernel/gentoo-sources-4.4". Now nvidia-drivers-304.134 claims to be limited to "<sys-kernel/gentoo-sources-4.10" (and nvidia-drivers-304.131 is no longer in the tree), so I took that to mean I could finally upgrade to gentoo-sources-4.9.6-r1, which is currently the latest long-term-support (gentoo-sources) kernel on AMD64.

After upgrading to gentoo-sources-4.9.6-r1 (configured, built, installed to /boot, but did not reboot into), nvidia-drivers-304.134 (/usr/src/linux symlink pointed to 4.9.6 sources), xorg-server-1.18.4, xorg-drivers-1.18-r1, and xf86-input-evdev-2.10.3, I reconfigured GRUB2 and rebooted, and found that nvidia-drivers-304.134 does not, in fact, seem to work with gentoo-sources-4.9.6-r1, after all.

I am getting the following errors:

```
[    3.898145] nvidia: loading out-of-tree module taints kernel.

[    3.898150] nvidia: module license 'NVIDIA' taints kernel.

[    3.898150] Disabling lock debugging due to kernel taint

[    3.905431] nvidia: Unknown symbol mtrr_del (err 0)

[    3.905494] nvidia: Unknown symbol mtrr_add (err 0)

[    4.194861] udevd[494]: starting version 3.1.5

[    4.486875] nvidia: Unknown symbol mtrr_del (err 0)

[    4.486940] nvidia: Unknown symbol mtrr_add (err 0)

```

A little Googling revealed that apparently kernels after 4.3 do not export the symbols mtrr_del and mtrr_add anymore, which nvidia-drivers-304.* requires. (Note: Yes, I did make modules_install, and I rebuilt nvidia-drivers after installing the kernel.)

Thinking that maybe rebuilding nvidia-drivers while actually running the 4.9.6-r1 kernel might help, I did that, but got the following messages at the end of the build:

```
>>> Installing (1 of 1) x11-drivers/nvidia-drivers-304.134::gentoo

Switching to nvidia OpenGL interface... done

 * Removing x11-drivers/nvidia-drivers-304.134 from moduledb.

Switching to nvidia OpenGL interface... done

 * Updating module dependencies for 4.9.6-gentoo-r1-1st ...

depmod: WARNING: //lib/modules/4.9.6-gentoo-r1-1st/video/nvidia.ko needs unknown symbol mtrr_del

depmod: WARNING: //lib/modules/4.9.6-gentoo-r1-1st/video/nvidia.ko needs unknown symbol mtrr_add    [ ok ]

 * Adding module to moduledb.

Switching to nvidia OpenGL interface... done

Switching to nvidia OpenCL interface... done

```

(I didn't notice the errors above when I originally built nvidia-drivers-304-134 because I used -q. @@)

I don't think I've done anything wrong on my end. So I have to ask:

 Should the nvidia-drivers-304.134 ebuild say it's (still) limited to "<sys-kernel/gentoo-sources-4.4"?

 Is anyone else successfully using nvidia-drivers-304.134 with >=sys-kernel/gentoo-sources-4.4 (no out-of-tree patches)?

Even though I suspect that the problem is not due to my specific setup.....

(As I have rebooted into a backup copy of my system to post this, everything below reflects the state of my system just before I upgraded everything — in particular, the timestamp of the tree is from before I emerge --sync'd just before upgrading the packages; the "real" timestamp would be 04 Mar 2017 03:32.)

# emerge --info

```
Portage 2.3.0 (python 3.4.5-final-0, default/linux/amd64/13.0/desktop, gcc-4.9.4, glibc-2.23-r3, 3.14.27-gentoo-wl x86_64)

=================================================================

System uname: Linux-3.14.27-gentoo-wl-x86_64-AMD_Athlon-tm-_II_X3_440_Processor-with-gentoo-2.3

KiB Mem:     3985960 total,   3049060 free

KiB Swap:    4128764 total,   4128764 free

Timestamp of repository gentoo: Mon, 30 Jan 2017 01:30:01 +0000

sh bash 4.3_p48-r1

ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1

app-shells/bash:          4.3_p48-r1::gentoo

dev-lang/perl:            5.22.3_rc4::gentoo

dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo

dev-util/cmake:           3.6.3::gentoo

dev-util/pkgconfig:       0.28-r2::gentoo

sys-apps/baselayout:      2.3::gentoo

sys-apps/openrc:          0.22.4::gentoo

sys-apps/sandbox:         2.10-r1::gentoo

sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo

sys-devel/automake:       1.14.1::gentoo, 1.15::gentoo

sys-devel/binutils:       2.25.1-r1::gentoo

sys-devel/gcc:            4.9.4::gentoo

sys-devel/gcc-config:     1.7.3::gentoo

sys-devel/libtool:        2.4.6-r2::gentoo

sys-devel/make:           4.1-r1::gentoo

sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)

sys-libs/glibc:           2.23-r3::gentoo

Repositories:

gentoo

    location: /usr/portage

    sync-type: rsync

    sync-uri: rsync://rsync.gentoo.org/gentoo-portage

    priority: -1000

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=native -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://lug.mtu.edu/gentoo/ http://gentoo.cs.uni.edu/"

LANG="en_US.utf8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j4"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"

PORTAGE_TMPDIR="/var/tmp"

USE="X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fortran gdbm gif glamor gpm gtk iconv jpeg lcms ldap libnotify mad mng modules mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt3support readline sdl seccomp session spell ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ice1724" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc emu" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby21" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

# lspci -v

```
[...]

00:0d.0 VGA compatible controller: NVIDIA Corporation C61 [GeForce 6150SE nForce 430] (rev a2) (prog-if 00 [VGA controller])

   Subsystem: Micro-Star International Co., Ltd. [MSI] C61 [GeForce 6150SE nForce 430]

   Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22, NUMA node 0

   Memory at fd000000 (32-bit, non-prefetchable) [size=16M]

   Memory at d0000000 (64-bit, prefetchable) [size=256M]

   Memory at fc000000 (64-bit, non-prefetchable) [size=16M]

   [virtual] Expansion ROM at feb40000 [disabled] [size=128K]

   Capabilities: [48] Power Management version 2

   Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+

   Kernel driver in use: nvidia

   Kernel modules: nvidia

[...]

```

# grep MTRR .config

```
CONFIG_MTRR=y

# CONFIG_MTRR_SANITIZER is not set

```

# cat /proc/mtrr

```
reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back

reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back

reg02: base=0x0c0000000 ( 3072MB), size=  128MB, count=1: write-back

reg03: base=0x0c8000000 ( 3200MB), size=   64MB, count=1: write-back

```

----------

## littletux

Why you don't use nvidia-drivers-304.135 from testing? this works well with kernel 4.9.x

----------

## MarkKnecht

I've been using nvidia-drivers-375.26 with gentoo-sources-4.9.11 for quite awhile. No problems here. I'm guessing maybe you have an older GPU?

I'm just starting to look into the 4.10 kernel.

----------

## dcljr

I never followed up on this because I was waiting to actually try out the testing version nvidia-drivers-304.135, as suggested by littletux. Never did. Still using a pre-4.3 kernel (3.14.27 to be exact -- I'm sure I will need to upgrade beyond this very soon -- and, yeah, I know I can go / should have gone up to a 4.1.* LTS kernel; I just hate upgrading kernels in general).

Yesterday I upgraded to the latest stable 304.*, nvidia-drivers-304.137 (yes, MarkKnecht, I have an old card -- nouveau does not work with it, BTW, last time I checked), so now I can try upgrading the kernel again, to the most recent stable LTS version (4.9.*). I am assuming that if 304.135 worked with 4.9.*, 304.137 should also. Fingers crossed…

----------

