# NVIDIA and Linux 5.5

## adomas

Hello,

I'm trying to get NVIDIA drivers running on Linux 5.5.0. Initially it was failing, but to that failure I found a solution here:

https://forums.gentoo.org/viewtopic-t-1107536.html

It seems it needed a patch to be compatible with Linux 5.5.0, but now I ran into a second problem:

My kernel is built with genkernel all and as wiki says here:

https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers#Kernel_compatibility

It should be compatible with NVIDIA drivers when genkernel is used. But when I compile NVIDIA drivers I get that CONFIG_I2C_NVIDIA_GPU should be not set, I check kernel config file and it is set to compile as module. I tried to edit .config file and run genkernel all again, but genkernel overwrites my changes with some autodetection.

So my question is, how can I properly install NVIDIA drivers? :/ Or to be more precise, how to tell genkernel to unset CONFIG_I2C_NVIDIA_GPU? Do I need to do manual kernel compilation?

And is it a mistake in wiki that is says with genkernel all everything should be ready for NVIDIA? :/

----------

## fedeliallalinea

Use genkernel with --menuconfig option

----------

## viio

I am also getting this message:

```
CONFIG_I2C_NVIDIA_GPU:      should not be set. But it is.
```

My Kernel is "5.4.28-gentoo-x86_64"

However, after this message nothing special happens.

Emerge installs all packages and it works afterwards.

Should I change this option to OFF in the kernel?

Or should I just keep it as it is - since it works fine?

----------

## Satori80a

I too would like an answer to viio's question.

----------

## Ionen

I don't know what problems I2C_NVIDIA_GPU may bring (I don't have it set myself), but if it's set as a module it's likely harmless if not loaded, bug #674868 notably relaxed the check for this, but generally I'd stick to doing what the ebuild says (then again, I do ignore the ebuild telling me to enable ZONE_DMA myself because I use IOMMU  :Smile: )

Edit: for anyone looking at this thread, note that its contents are outdated, 440.82 is fine with both 5.5.x and 5.6.x if need be. If using older branches (like 390.xx), I'd suggest sticking with LTS kernels (latest being 5.4.x) rather than use barely tested patches though.

----------

## peakeyed

I have the same issue as the original post but since I have it as a module, I don't see this as a problem especially since I don't notice any problems with the working of nvidia.

----------

## nautilor

Running 5.6.13 and I was forced to remove CONFIG_I2C_NVIDIA_GPU option in kernel

----------

## neyuru

I even have CONFIG_I2C_NVIDIA_GPU built in to the kernel and afaik the card is running fine. Would be nice to know why this warning was issued. Using 5.4.38-gentoo and x11-drivers/nvidia-drivers-440.82-r3

----------

## ct85711

Well, doing some searching, it seems the CONFIG_I2C_NVIDIA_GPU may end up being needed for the recent nvidia cards, from what it seems like, 1600+ series...  The reason is because the newer nvidia cards is looking like is including a usb-c port on the card (for VR headsets, maybe usb-c monitors).

https://www.kernel.org/doc/html/latest/i2c/busses/i2c-nvidia-gpu.html

https://www.phoronix.com/scan.php?page=news_item&px=nvidia-i2c-gpu-driver-turing

https://bugzilla.kernel.org/show_bug.cgi?id=206653

The first two link(s) has some info about this config option.  Now there are multiple reports of an issue with the config option too, in that it will make boot time significantly longer (due to a timeout issue).

----------

## neyuru

I have a Quadro RTX 4000, and I may have support for the virtuallink port:

```
01:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1) (prog-if 30 [XHCI])

   Subsystem: NVIDIA Corporation TU104 USB 3.1 Host Controller

   Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

   Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

   Interrupt: pin C routed to IRQ 39

   Region 0: Memory at e2000000 (64-bit, prefetchable) [size=256K]

   Region 3: Memory at e2040000 (64-bit, prefetchable) [size=64K]

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

      Address: 00000000fee00458  Data: 0000

   Capabilities: [78] Express (v2) Endpoint, MSI 00

      DevCap:   MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us

         ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75.000W

      DevCtl:   Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

         RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+

         MaxPayload 128 bytes, MaxReadReq 512 bytes

      DevSta:   CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-

      LnkCap:   Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <512ns, L1 <16us

         ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+

      LnkCtl:   ASPM Disabled; RCB 64 bytes Disabled- CommClk+

         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

      LnkSta:   Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

      DevCap2: Completion Timeout: Range AB, TimeoutDis+, LTR+, OBFF Via message

          AtomicOpsCap: 32bit- 64bit- 128bitCAS-

      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

          AtomicOpsCtl: ReqEn-

      LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-

          EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

   Capabilities: [b4] Power Management version 3

      Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)

      Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-

   Capabilities: [100 v2] Advanced Error Reporting

      UESta:   DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

      UEMsk:   DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

      UESvrt:   DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

      CESta:   RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

      CEMsk:   RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

      AERCap:   First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-

         MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-

      HeaderLog: 00000000 00000000 00000000 00000000

   Kernel driver in use: xhci_hcd

01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)

   Subsystem: NVIDIA Corporation TU104 USB Type-C UCSI Controller

   Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

   Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

   Latency: 0, Cache Line Size: 64 bytes

   Interrupt: pin D routed to IRQ 48

   Region 0: Memory at ef084000 (32-bit, non-prefetchable) [size=4K]

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

      Address: 00000000fee00578  Data: 0000

   Capabilities: [78] Express (v2) Endpoint, MSI 00

      DevCap:   MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us

         ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75.000W

      DevCtl:   Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

         RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+

         MaxPayload 128 bytes, MaxReadReq 512 bytes

      DevSta:   CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-

      LnkCap:   Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <512ns, L1 <16us

         ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+

      LnkCtl:   ASPM Disabled; RCB 64 bytes Disabled- CommClk+

         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

      LnkSta:   Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

      DevCap2: Completion Timeout: Range AB, TimeoutDis+, LTR+, OBFF Via message

          AtomicOpsCap: 32bit- 64bit- 128bitCAS-

      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

          AtomicOpsCtl: ReqEn-

      LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-

          EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

   Capabilities: [b4] Power Management version 3

      Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)

      Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-

   Capabilities: [100 v2] Advanced Error Reporting

      UESta:   DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

      UEMsk:   DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

      UESvrt:   DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

      CESta:   RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

      CEMsk:   RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

      AERCap:   First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-

         MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-

      HeaderLog: 00000000 00000000 00000000 00000000

   Kernel driver in use: nvidia-gpu
```

I recently burnt a few dollars to get this USB hub. I'll report back with my findings.

----------

