Bug 244421 - x11/nvidia-driver-304: ABI incompatibility since latest Xorg update
Summary: x11/nvidia-driver-304: ABI incompatibility since latest Xorg update
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-02-25 22:08 UTC by Jason W. Bacon
Modified: 2020-02-29 17:18 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (danfe)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason W. Bacon freebsd_committer 2020-02-25 22:08:20 UTC
Is nvidia-driver-304 doomed?

[2422636.172] ================ WARNING WARNING WARNING WARNING ================
[2422636.172] This server has a video driver ABI version of 24.1 that this
driver does not officially support.  Please check
http://www.nvidia.com/ for driver updates or downgrade to an X
server with a supported driver ABI.
[2422636.172] =================================================================
[2422636.172] (EE) NVIDIA: Use the -ignoreABI option to override this check.
[2422636.172] (II) UnloadModule: "nvidia"
[2422636.173] (II) Unloading nvidia
[2422636.173] (EE) Failed to load module "nvidia" (unknown error, 0)
[2422636.173] (EE) No drivers available.
[2422636.173] (EE) 
Fatal server error:
[2422636.173] (EE) no screens found(EE) 

Or, is it safe to use --ignoreABI on FreeBSD?

Or, can the port somehow be patched to work with the new ABI even though it's closed-source?

I was able to work around this on my old iMac by upgrading to nvidia-driver-340, but I have another system where the 340 kernel module reports that I need 304 for my chipset.

Thanks,

   JB
Comment 1 Alex S 2020-02-27 13:46:31 UTC
Since 304 is officially out of support, Nvidia is unlikely to update it. Although it should be possible to work around ABI incompatibility, I don't believe that's worth the effort. The obvious suggestion is to switch to vga or xf86-video-nv driver.
Comment 2 Jason W. Bacon freebsd_committer 2020-02-27 15:25:30 UTC
By "vga" do you mean VESA?

I used to prefer the nv driver for stability reasons (the closed-source nvidia driver has caused kernel panics at times), but it has not worked for me on any installations I've done the past few years.  It was deprecated in 2010:

https://www.x.org/wiki/nv/

Would be nice if we had nouveau working...

On my tower workstation (nVidia card unsupported by 340) I'll just swap in an old Radeon card I had lying around.

I'll experiment with nv and VESA on my iMac and report back.  Not sure if it's possible to swap the GPU in an iMac.

It might also be possible to use the modesetting driver if the CPU has integrated Intel graphics.  That worked for me on a similar iMac where I encountered problems with the Radeon driver.
Comment 3 Alex S 2020-02-27 15:45:18 UTC
(In reply to Jason W. Bacon from comment #2)

> By "vga" do you mean VESA?

Indeed. Starting to forget how it's called...

> the nv driver ... It was deprecated in 2010

So is your card. That driver is still occasionally updated, as you can see from the commit log. I'm not claiming it's a good driver, just that it's still an option.
Comment 4 Tijl Coosemans freebsd_committer 2020-02-28 15:41:34 UTC
It looks like the ABI change is related to hardware cursor support so maybe you can use ignoreABI in combination with the SWcursor option.
Comment 5 Jason W. Bacon freebsd_committer 2020-02-28 21:54:49 UTC
Thanks for the tips.

Update:

"nv" driver works on my desktop system that's not supported by nvidia-driver-340, but only if I generate an xorg.conf (with "Xorg -configure").  Otherwise, Xorg.0.log reports "Failed to load module "nvidia".  Not sure why it would be looking for that when nvidia-driver is not installed and not listed in kld_list.

The following in /etc/X11/xorg.conf.d/90-nvidia.conf is sufficient:

Section "Device"
        Identifier  "Card0"
        Driver      "nv"
        BusID       "PCI:1:0:0"
EndSection

"vesa" works, but only at 640x480 resulution, so not viable.

Possibly an alternative to "SWCursor would be enabling moused?  Haven't tried, it, but leaving a suggestion for posterity.

This PR can be closed AFAIC.  I think we have enough solutions on the table.
Comment 6 Jason W. Bacon freebsd_committer 2020-02-29 17:18:02 UTC
I putzed a little more with the iMac (GeForce 9400).  No luck with "nv" or "modesetting" or "vesa".  Looks like nvidia-driver-340 is the only option for this chipset right now, unless I overlooked something.

The tower PC that does work with "nv" and not with nvidia-driver-340 has a GeForce 6200 LE, BTW.

Just occurred to me that in 25 years of running FreeBSD, I have yet to encounter a machine that will not function as a graphical desktop system.  Most of them just work, and a few like these two require some trial-and-error, but there always seems to be an option.