Nvidia drivers are only showing PCIe Gen 2. How do I force PCIe 3.0?

Dear All,
I am new to Linux and Manjaro, and am looking for some advice. I’ve installed Manjaro XFCE and had it running for 2 days. My intention is to completely move from Windows 10. So far I’ve been happy with the results; things are a little different and it feels like a steep learning curve, but I’ve found most answers after an internet search.
One thing I an struggling on is getting my motherboard to be identified as PCIe 3.0 on Nvidia drivers. Here are the details of my system:

Motherboard: Asus Rampage IV Extreme X79
CPU: Intel i7-3960X
Kernel: 5.13.19-2
Graphic driver: [closed] Nvidia 470.63.01

The Asus Rampage IV did not not support PCIe 3.0 out of the box (at least in Windows). The hardware was there but I think it came out just before the standard and could not get certified. In windows you could force PCIe 3.0 via a registry hack, which works on this system and graphics drivers.

Checking my PCIe speeds in Linux using lspci -vv | grep -E ‘PCI bridge|LnkCap’ shows:

PCI bridge: Intel Corporation Xeon E5/Core i7 IIO PCI Express Root Port 1a (rev 07) (prog-if 00 [Normal decode]) LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported

So it looks like PCIe 3.0 is supported natively in Linux for this motherboard, since the transfer rates show 8GT/s which corresponds to PCIe 3.0. However the Nvidia drivers are only showing PCI Express x16 Gen 2 with Maximum PCIe Link Speed as 5.0GT/s. After doing some digging it appears you should be able to force the Nvidia Linux drivers to use PCIe 3.0, however I’m having no success. What I’ve tried so far:

  1. Created /etc/modprobe.d/nvidia-pcie-gen3.conf
  2. Added options nvidia_470 NVreg_EnablePCIeGen3=1
  3. Run mkinitcpio -p linux513
  4. Rebooted.
  5. Checked Nvida settings, confirmed driver is only detecting PCIe 2.0

I notice there is another file “mhwd-gpu.conf” in the /etc/modprobe.d/ folder, maybe this is conflicting? Any advice or help would be really appreciated! Remember I have used Linux for tow days only, so be gentle with me!

1 Like

Hi there,
Before we continue, can you please include the output from

inxi --admin --verbosity=7 --filter --no-host --width

(note: this comes from How to provide good information)

1 Like
  Kernel: 5.13.19-2-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.13-x86_64
  root=UUID=615959e8-157f-4baa-b5b5-4857e88730e5 rw quiet apparmor=1
  security=apparmor resume=UUID=01b17930-cc29-4f7c-87b8-e074768a8f79
  udev.log_priority=3
  Desktop: Xfce 4.16.0 tk: Gtk 3.24.29 info: xfce4-panel wm: xfwm 4.16.1 vt: 7
  dm: LightDM 1.30.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASUSTeK model: RAMPAGE IV EXTREME v: Rev 1.xx
  serial: <filter> UEFI: American Megatrends v: 4901 date: 05/14/2014
Battery:
  Message: No system battery data found. Is one present?
Memory:
  RAM: total: 31.29 GiB used: 4.65 GiB (14.9%)
  RAM Report: permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: 6-Core model: Intel Core i7-3960X bits: 64 type: MT MCP
  arch: Sandy Bridge family: 6 model-id: 2D (45) stepping: 7 microcode: 71A
  cache: L2: 15 MiB bogomips: 79466
  Speed: 1328 MHz min/max: 1200/5700 MHz Core speeds (MHz): 1: 1328 2: 1203
  3: 1875 4: 1203 5: 1204 6: 1213 7: 1204 8: 1701 9: 1226 10: 1203 11: 1204
  12: 2014
  Flags: acpi aes aperfmperf apic arat arch_perfmon avx bts clflush cmov
  constant_tsc cpuid cx16 cx8 dca de ds_cpl dtes64 dtherm dts epb est
  flush_l1d fpu fxsr ht ibpb ibrs ida lahf_lm lm mca mce md_clear mmx monitor
  msr mtrr nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs
  pge pln pni popcnt pse pse36 pti pts rdtscp rep_good sep ss ssbd sse sse2
  sse4_1 sse4_2 ssse3 stibp syscall tm tm2 tsc tsc_deadline_timer vme x2apic
  xsave xsaveopt xtopology xtpr
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass
  mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
  mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional,
  IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GM204 [GeForce GTX 970] vendor: ASUSTeK driver: nvidia
  v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0
  chip-ID: 10de:13c2 class-ID: 0300
  Display: x11 server: X.Org 1.20.13 compositor: xfwm4 v: 4.16.1 driver:
  loaded: nvidia display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 4480x1440 s-dpi: 96 s-size: 1185x381mm (46.7x15.0")
  s-diag: 1245mm (49")
  Monitor-1: DP-0 res: 2560x1440 dpi: 109 size: 597x336mm (23.5x13.2")
  diag: 685mm (27")
  Monitor-2: DVI-D-0 res: 1920x1080 hz: 60 dpi: 102
  size: 477x268mm (18.8x10.6") diag: 547mm (21.5")
  OpenGL: renderer: NVIDIA GeForce GTX 970/PCIe/SSE2 v: 4.6.0 NVIDIA 470.63.01
  direct render: Yes
Audio:
  Device-1: Intel C600/X79 series High Definition Audio vendor: ASUSTeK
  driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1d20
  class-ID: 0403
  Device-2: NVIDIA GM204 High Definition Audio vendor: ASUSTeK
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 chip-ID: 10de:0fbb
  class-ID: 0403
  Sound Server-1: ALSA v: k5.13.19-2-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.38 running: no
Network:
  Device-1: Intel 82579V Gigabit Network driver: e1000e v: kernel port: f040
  bus-ID: 00:19.0 chip-ID: 8086:1503 class-ID: 0200
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
  broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: ASUSTek Bluetooth Adapter type: USB driver: btusb v: 0.8
  bus-ID: 1-1.6:4 chip-ID: 0b05:179c class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
  rfk-block: hardware: no software: yes address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 2.73 TiB used: 216.95 GiB (7.8%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
  model: SSD 970 EVO Plus 500GB size: 465.76 GiB block-size: physical: 512 B
  logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
  rev: 2B2QEXM7 temp: 30.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 500GB
  size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
  type: SSD serial: <filter> rev: 4B6Q scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Western Digital
  model: WD2002FAEX-01U1B1 size: 1.82 TiB block-size: physical: 512 B
  logical: 512 B speed: 1.5 Gb/s type: N/A serial: <filter> rev: 0A02
  scheme: GPT
  Optical-1: /dev/sr0 vendor: TSSTcorp model: DVDWBD SH-B123L rev: SB04
  dev-links: cdrom
  Features: speed: 48 multisession: yes audio: yes dvd: yes
  rw: cd-r,cd-rw,dvd-r,dvd-ram state: running
Partition:
  ID-1: / raw-size: 100 GiB size: 97.43 GiB (97.43%) used: 12.3 GiB (12.6%)
  fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 label: Manjaro
  uuid: 615959e8-157f-4baa-b5b5-4857e88730e5
  ID-2: /boot/efi raw-size: 500 MiB size: 499 MiB (99.80%)
  used: 292 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  label: EFI SYSTEM uuid: 7491-55CA
  ID-3: /home raw-size: 300 GiB size: 294.79 GiB (98.26%)
  used: 116.4 GiB (39.5%) fs: ext4 dev: /dev/nvme0n1p3 maj-min: 259:3
  label: Home uuid: ceda3806-24d2-4a7f-a6c4-88d2819d9749
  ID-4: /run/timeshift/backup raw-size: 600 GiB size: 589.52 GiB (98.25%)
  used: 88.25 GiB (15.0%) fs: ext4 dev: /dev/sdb2 maj-min: 8:18 label: N/A
  uuid: 3c6aaffe-81ba-4a25-bb96-4ca05bf6f05f
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 20 GiB used: 0 KiB (0.0%) priority: -2
  dev: /dev/nvme0n1p4 maj-min: 259:4 label: N/A
  uuid: 01b17930-cc29-4f7c-87b8-e074768a8f79
Unmounted:
  ID-1: /dev/sda1 maj-min: 8:1 size: 450 MiB fs: ntfs label: Recovery
  uuid: 5E12E37812E35415
  ID-2: /dev/sda2 maj-min: 8:2 size: 99 MiB fs: vfat label: N/A
  uuid: EAE3-8FC7
  ID-3: /dev/sda3 maj-min: 8:3 size: 16 MiB fs: <superuser required>
  label: N/A uuid: N/A
  ID-4: /dev/sda4 maj-min: 8:4 size: 422.22 GiB fs: ntfs label: N/A
  uuid: B214E50414E4CC83
  ID-5: /dev/sda5 maj-min: 8:5 size: 554 MiB fs: ntfs label: N/A
  uuid: EE5EE22A5EE1EAF3
  ID-6: /dev/sda6 maj-min: 8:6 size: 545 MiB fs: ntfs label: N/A
  uuid: 407A1A577A1A4A54
  ID-7: /dev/sdb1 maj-min: 8:17 size: 1.23 TiB fs: ntfs label: Data
  uuid: F44036024035CC5C
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 1-1:2 info: Intel Integrated Rate Matching Hub ports: 6 rev: 2.0
  speed: 480 Mb/s chip-ID: 8087:0024 class-ID: 0900
  Device-1: 1-1.2:3 info: Alcor Micro AU6477 Card Reader Controller
  type: Mass Storage,HID driver: hid-generic,usb-storage,usbhid interfaces: 2
  rev: 2.0 speed: 480 Mb/s power: 250mA chip-ID: 058f:6364 class-ID: 0300
  serial: <filter>
  Device-2: 1-1.6:4 info: ASUSTek Bluetooth Adapter type: Bluetooth
  driver: btusb interfaces: 2 rev: 1.1 speed: 12 Mb/s power: 100mA
  chip-ID: 0b05:179c class-ID: e001
  Hub-3: 2-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-4: 2-1:2 info: Intel Integrated Rate Matching Hub ports: 8 rev: 2.0
  speed: 480 Mb/s chip-ID: 8087:0024 class-ID: 0900
  Device-1: 2-1.1:3 info: SteelSeries ApS SteelSeries Sensei 310 eSports Mouse
  type: HID,Mouse driver: hid-generic,usbhid interfaces: 3 rev: 1.1
  speed: 12 Mb/s power: 200mA chip-ID: 1038:1722 class-ID: 0300
  Device-2: 2-1.2:4 info: Solid Year Cougar700k Gaming Keyboard
  type: Keyboard,Mouse,HID driver: cougar,usbhid interfaces: 3 rev: 2.0
  speed: 12 Mb/s power: 100mA chip-ID: 060b:700a class-ID: 0300
  Hub-5: 3-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-6: 4-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.0 speed: 5 Gb/s
  chip-ID: 1d6b:0003 class-ID: 0900
  Hub-7: 5-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-8: 6-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.0 speed: 5 Gb/s
  chip-ID: 1d6b:0003 class-ID: 0900
  Hub-9: 7-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-10: 8-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.0 speed: 5 Gb/s
  chip-ID: 1d6b:0003 class-ID: 0900
  Hub-11: 9-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-12: 9-1:2 info: Genesys Logic Hub ports: 2 rev: 2.1 speed: 480 Mb/s
  power: 100mA chip-ID: 05e3:0610 class-ID: 0900
  Device-1: 9-2:3 info: Canon iP7200 series type: Printer driver: usblp
  interfaces: 1 rev: 2.0 speed: 480 Mb/s power: 2mA chip-ID: 04a9:10dc
  class-ID: 0701 serial: <filter>
  Hub-13: 10-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.0
  speed: 5 Gb/s chip-ID: 1d6b:0003 class-ID: 0900
  Hub-14: 10-1:2 info: Genesys Logic hub ports: 2 rev: 3.0 speed: 5 Gb/s
  chip-ID: 05e3:0616 class-ID: 0900
Sensors:
  System Temperatures: cpu: 31.0 C mobo: N/A gpu: nvidia temp: 43 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 7%
Info:
  Processes: 307 Uptime: 3h 34m wakeups: 0 Init: systemd v: 249
  tool: systemctl Compilers: gcc: 11.1.0 Packages: 1149 pacman: 1142 lib: 313
  flatpak: 4 snap: 3 Shell: Bash v: 5.1.8 running-in: xfce4-terminal
  inxi: 3.3.08

From quick google search, it seems that it is possible to add a Grub parameter to force Gen 3

NVreg_EnablePCIeGen3=1

but not sure about the module name, probably simply nvidia, so the full Grub parameter probably would be

nvidia.NVreg_EnablePCIeGen3=1

Try to boot your system by adding it to your Grub (either by adding it to the Grub config file /etc/default/grub and then issuing an update-grub command, or by adding it directly from the Grub menu, by pressing E key in the Advanced option to edit the proper line) maybe if you want to try it at your own risk as it is only supposition from my quick google search.

I looked into your motherboard manual and didn’t find any relevant config, but this board seemed to be something really special back in the days, with all its features :exploding_head:

3 Likes

Dear omano,

Thank you SO MUCH for taking the time to help me. Thanks to your advice I’ve got PCIe 3.0! I really didn’t hold out much hope for getting a reply. The board is pretty cool and it feels good to breath life into it and not consign it to the e-waste dump. It’s actually still pretty fast, and I look forward to tinkering with Linux.

I added the command NVreg_EnablePCIeGen3=1 to the /etc/default/grub file. It needed to be appended to the GRUB_CMDLINE_LINUX_DEFAULT line, which originally was:

GRUB_CMDLINE_LINUX_DEFAULT=“quiet apparmor=1 security=apparmor resume=UUID=01b17930-cc29-4f7c-87b8-e074768a8f79 udev.log_priority=3”,

and changed to:

RUB_CMDLINE_LINUX_DEFAULT=“quiet apparmor=1 security=apparmor resume=UUID=01b17930-cc29-4f7c-87b8-e074768a8f79 udev.log_priority=3 nvidia.NVreg_EnablePCIeGen3=1”

Again, thank you so much for your kindness in helping a stranger.

1 Like

Glad it helped.

:beers:

1 Like

Just a side note for the future… since @omano solution works…

  1. Early load with kernel parameter: nvidia.NVreg_EnablePCIeGen3=1
  2. Late load with modprobe: options nvidia NVreg_EnablePCIeGen3=1

nvidia is the module/driver, but you requested an unknown module nvidia_470, so that was the reason why it did not work wit modprobe.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.