Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save hexfusion/bf56c973b964908a0fda2b96d0b9ccfc to your computer and use it in GitHub Desktop.
Save hexfusion/bf56c973b964908a0fda2b96d0b9ccfc to your computer and use it in GitHub Desktop.
NVIDIA on Lenovo P50 and Fedora 28
I have a Lenovo P50 ThinkPad that I am issued at work. I run the latest Fedora on my primary laptop for years but
have avoided running the NVIDA graphics drivers because installation was manual and could break with kernel updates.
I updated my personal Dell XPS 15 to use the new NVIDIA drivers that are now supported in Fedora 28 I think these were suppose to come from rpm-fusion but it looks like they are in Fedora 28 tree, I could be wrong. The install was as easy as just installing the nvidia-driver package and reboot. This worked without any issues. I could launch nvidia-settings and glxgears without any issues.
The purpose of this Gist post is to document how I got the NVIDIA drivers from Fedora 28 on the P50. It was not as easy as installing nvidia-driver and rebooting.
For starters, here are the specs for the P50:
[root@kwr50p kurtis] # inxi -SG
System: Host: kwr50p.rchland.ibm.com Kernel: 4.17.14-202.fc28.x86_64 x86_64 bits: 64 Desktop: Gnome 2.32.0
Distro: Fedora release 28 (Twenty Eight)
Graphics: Card-1: NVIDIA GM107GLM [Quadro M1000M] driver: nvidia v: 396.45
Display: server: Fedora Project X.org 1.19.6 driver: nvidia unloaded: modesetting
resolution: 1920x1080~60Hz, 1920x1080~60Hz, 1920x1080~60Hz
OpenGL: renderer: Quadro M1000M/PCIe/SSE2 v: 4.6.0 NVIDIA 396.45
[root@kwr50p kurtis] # inxi -SGMC
System: Host: kwr50p.rchland.ibm.com Kernel: 4.17.14-202.fc28.x86_64 x86_64 bits: 64 Desktop: Gnome 2.32.0
Distro: Fedora release 28 (Twenty Eight)
Machine: Type: Laptop System: LENOVO product: 20EQS3B400 v: ThinkPad P50 serial: PC0QBLBK
Mobo: LENOVO model: 20EQS3B400 v: SDK0J40697 WIN serial: L1HF79C00M6 UEFI [Legacy]: LENOVO
v: N1EET71W (1.44 ) date: 08/31/2017
CPU: Topology: Quad Core model: Intel Core i7-6820HQ bits: 64 type: MT MCP L2 cache: 8192 KiB
Speed: 800 MHz min/max: 800/3600 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800 5: 800 6: 801
7: 800 8: 800
Graphics: Card-1: NVIDIA GM107GLM [Quadro M1000M] driver: nvidia v: 396.45
Display: server: Fedora Project X.org 1.19.6 driver: nvidia unloaded: modesetting
resolution: 1920x1080~60Hz, 1920x1080~60Hz, 1920x1080~60Hz
OpenGL: renderer: Quadro M1000M/PCIe/SSE2 v: 4.6.0 NVIDIA 396.45
I followed the following the steps in the following post:
https://www.reddit.com/r/LinuxOnThinkpads/comments/8s4s54/lenovo_t480_mx150_using_nvidia_drivers_on_fedora/
# Disable Secure Boot in BIOS because I don't know how to sign the nvidia drivers and they don't get along.
sudo dnf check-update
sudo dnf update
sudo reboot
# Enable third party repositories in Software App (gnome-software)
# REF: https://fedoramagazine.org/third-party-repositories-fedora
# Alternative: sudo dnf install fedora-workstation-repositories
sudo dnf install nvidia-driver nvidia-xconfig glmark2
sudo dnf remove xorg-x11-drv-nouveau
sudo echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) --force
sudo reboot
After the reboot, I could tell a different video driver was being used. I have LUKS enabled per company policy so instead of a nice fullscreen interface for the LUKS password, I got a console interface and prompt. I can live with this.
Here are some commands that showed the NVIDIA driver was loaded:
[root@kwr50p kurtis] # lsmod | grep nvidia
nvidia_drm 45056 2
nvidia_modeset 1093632 3 nvidia_drm
nvidia_uvm 925696 0
nvidia 14061568 85 nvidia_uvm,nvidia_modeset
drm_kms_helper 196608 1 nvidia_drm
drm 458752 5 drm_kms_helper,nvidia_drm
ipmi_msghandler 57344 2 ipmi_devintf,nvidia
[root@kwr50p kurtis] # grep glx /var/log/Xorg.0.log
[ 24.919] (II) LoadModule: "glx"
[ 24.920] (II) Loading /usr/lib64/nvidia/xorg/libglx.so
[ 24.962] (II) Module glx: vendor="NVIDIA Corporation"
When I tried to run the NVIDIA X Server Settings app (nvidia-settings) no GUI showed up. Running it from the command line I got this error:
ERROR: Unable to load info from any available system.
glxinfo and glxgears would also fail.
I spent a lot of time Googling but the solution to get nvidia-settings, glxinfo and glxgears to work as relatively simple.
sudo dnf install nvidia-modprobe nvidia-query-resource-opengl-lib nvidia-texture-tools nvidia-xconfig glmark2
sudo nvidia-xconfig
sudo reboot
Running nvidia-xconfig backed up /etc/X11/Xorg.conf file and created a new one. I specifically did NOT have an Xorg.conf file but creating one with this command was the magic.
I have a USB-C port expander with an addtional HDMI port so I can run 2x displays with the laptop lid closed. This messed up the script that sets up the displays using xrandr. A small matter to change the device names.
I now have an operational Lenovo P50 ThinkPad laptop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment