# Frustration about update of nvidia-Driver port



## hanhtm (Aug 31, 2016)

Dear all,
Yesterday after `portupgrade -arR` my box cannot start xwindows normally.
I checked in /usr/ports/UPDATING and found that nvidia.ko must be updated to nvidia-modest.ko in /boot/loader.conf. But I have no clue exactly what I must update in my loader.conf? I'm totally a noob here.  Thanks for your help.
Below is relevant phrase in /usr/ports/UPDATING:

```
The Nvidia driver has been updated to 367.35. In this version of the driver, some important functionality has been broken out into a separate
nvidia-modeset.ko. Users that experience a hang starting X or observe [ 43.243] (II) NVIDIA(0): Validated MetaModes:
[ 43.243] (II) NVIDIA(0): "NULL"
in their Xorg.logs should replace 'nvidia.ko' with 'nvidia-modeset.ko' in their loader.conf or rc.conf configurations.
(nvidia-modeset.ko has a MODULE_DEPENDS relationship to nvidia.ko and will bring it in automatically.)
```


----------



## Snurg (Aug 31, 2016)

I built and installed the driver manually (here my report) instead of using the packaged driver.

The instructions provided by Nvidia say that one must make sure that the following is in  /boot/loader.conf :

```
nvidia_load="YES"
nvidia-modeset_load="YES"
```

The package updating notes you quoted indicate that one only needs to have `nvidia-modeset_load` in the /boot/loader.conf .
I wonder why the package maintainer(s) didn't do it the other way around, using module dependencies to automatically pull in `nvidia-modeset` when the main driver gets loaded. This would have saved thousands of people from their X Window system suddenly stopping working. Also there would have been no need at all to edit /boot/loader.conf  by people who only updated the driver package.

Anyway it won't do any damage if you include both the lines above in /boot/loader.conf .


----------



## hanhtm (Aug 31, 2016)

Thanks. You are very kind.


----------



## Snurg (Aug 31, 2016)

PR 212279 opened.


----------



## ANOKNUSA (Aug 31, 2016)

You should add actual explanations of both the problem and the proposed fix to the bug report. Don't make the port maintainer do extra work to figure out what's going on, and don't leave the record of the supposed bug incomplete and dependent on information that may not be around forever. Only a fraction of the FreeBSD community actually frequent these forums, and there's no guarantee that anyone referring to the bug report later will have a working link to refer to.

As for the module dependency hook, I can only surmise that it was not used because the module in question does not need to be loaded in all cases. Hence the statement that only users experiencing a specific problem should load the module.


----------



## Snurg (Aug 31, 2016)

ANOKNUSA said:


> You should add actual explanations of both the problem and the proposed fix to the bug report. Don't make the port maintainer do extra work to figure out what's going on, and don't leave the record of the supposed bug incomplete and dependent on information that may not be around forever. Only a fraction of the FreeBSD community actually frequent these forums, and there's no guarantee that anyone referring to the bug report later will have a working link to refer to.


Yes you are right. Updated the PR with more information. Hope this is OK.



ANOKNUSA said:


> As for the module dependency hook, I can only surmise that it was not used because the module in question does not need to be loaded in all cases. Hence the statement that only users experiencing a specific problem should load the module.


Just FYI, the driver package notes from Nvidia themselves clearly state that *always both modules must be loaded*. This as the driver has been split up into two functionally separate kernel modules almost a year ago already.

Quoted from Nvidia's release notes:


> 2015-10-12 version 358.09
> Added a new kernel module, nvidia-modeset.ko.  This new driver component works in conjunction with the nvidia.ko kernel module to program the display engine of the GPU.


----------



## drhowarddrfine (Sep 1, 2016)

Snurg The ports manager specifically states 


> Users that experience a hang starting X or observe ... in their Xorg.logs should replace 'nvidia.ko' with 'nvidia-modeset.ko'


So that appears to me it shouldn't be done unless there is a problem.


----------



## Snurg (Sep 1, 2016)

Not using nvidia-modeset.ko is about the same as setting nomodeset on linux.
This forces the kernel to use BIOS to set the graphics card state instead of doing itself (via the kernel module nvidia-modeset).
This again often results in the resume failing after suspend due to improper/incomplete video card setup, as the kernel can do more and better than the basic BIOS functions.

Another side effect of dropping the modeset functionality is that it breaks multi-monitor setups.
Only the first monitor is recognized then!

*What is the objective advantage of leaving out this small nvidia-modeset module?
Does this really justify so many people getting frustrated?*


----------

