# Nvidia incompatible ABI



## drhowarddrfine (Aug 8, 2022)

I upgraded all my packages this morning. Included in that was x11/xorg. This generated this error in /var/log/Xorg.0.log

```
This server has a video driver ABI version of 25.2 that this
driver does not officially support.  Please check
[URL]http://www.nvidia.com/[/URL] for driver updates or downgrade to an X
server with a supported driver ABI.
```

My nvidia card is an old 9600GT which uses the legacy driver x11/nvidia-driver-340. Apparently the change in x11/xorg makes it incompatible.

To fix this, you need to add this to /usr/local/etc/X11/xorg.conf.d/driver-nvidia.conf


```
Section "ServerFlags"
        Option "IgnoreABI" "true"
EndSection
```

Then `startx`


----------



## SirDice (Aug 8, 2022)

drhowarddrfine said:


> My nvidia card is an old 9600GT.


It's probably useful to mention that you're using the very old legacy version of the NVidia driver for this card; x11/nvidia-driver-340.


----------



## mefizto (Aug 14, 2022)

Greetings all,

I have the same problem, but the solution did not work.

Any other options?

Kindest regards,

M


----------



## chrbr (Aug 14, 2022)

Dear mefizto,
I have a /etc/X11/xorg.conf which has been generated by the nvidia config tool a long time ago. I have copied the code provided in the original post to that file. That worked for me. Nowadays arranging the configuration in /usr/local/etc/X11/ is recommended.


----------



## dave01 (Aug 14, 2022)

SirDice said:


> It's probably useful to mention that you're using the very old legacy version of the NVidia driver for this card; x11/nvidia-driver-340.


True, but "*Last Update:* 2022-07-20 14:23:32"
For older cards, it's the only option.  Newer iterations of the drive don't support the older cards at all.


----------



## mefizto (Aug 14, 2022)

Hi chrbr,

thank you for the reply.

I had always used the /usr/local/etc/X11/xorg.conf.d/, so that should not be a problem.  And I did copy the code provided by drhowarddrfine.  (Actually, I found it on-line before he posted, but it makes no difference).

Are there any negative consequences to downgrading the server?  I cannot have a nice laptop to become a paperweight.  But the lesson is - no more NVIDIA.

Kindest regard,

M


----------



## chrbr (Aug 14, 2022)

mefizto said:


> Are there any negative consequences to downgrading the server?


I think currently there are no consequences because it has been working in the past. But there will be a point in time when the previous X-server is no more compatible with the other FreeBSD packages. It might be that the legacy NVIDIA driver will not work anymore, too.

On my system I am currently using I will check how the build in graphics works. I am also not sure if it is the i915 driver which is required or a different one. At least the VESA driver works. With the VESA driver the resolution is limited.




mefizto said:


> But the lesson is - no more NVIDIA.


May be this is more related to old hardware. Here I have only 2nd hand computers or computers other people to not want to use anymore. For my requirements the old stuff is still good enough. of curse in case the hardware is more or less new it is a bad surprise if the support would be discontinued.


----------



## mefizto (Aug 14, 2022)

Hi chrbr,

thank you for the reply.



chrbr said:


> I think currently there are no consequences because it has been working in the past. But there will be a point in time when the previous X-server is no more compatible with the other FreeBSD packages. It might be that the legacy NVIDIA driver will not work anymore, too.


That was, indeed, my concern.  What I am surprised though, that the code did not work.  Albeit I have a different hardware - NVS 3100M, it is my understanding that the issue is with the driver itself.



chrbr said:


> Here I have only 2nd hand computers or computers other people to not want to use anymore.


Ha, ha, same here, but this was an exceptional purchase, so I will be sad if I cannot make it work.

Kindest regards,

M


----------



## chrbr (Aug 15, 2022)

Dear mefizto,
is your card a NVS310 instead of NV3100? Then the NVIDIA driver with the index 390 instead of 340 could work. At least according to the NVIDIA page https://www.nvidia.co.uk/Download/driverResults.aspx/191185/en-uk.
Kind regards,
Christoph


----------



## SirDice (Aug 15, 2022)

dave01 said:


> True, but "*Last Update:* 2022-07-20 14:23:32"


If you look at the commit logs you can see those have been mostly "housekeeping" chores. Those have nothing to do with the driver itself. NVidia stopped supporting this legacy version a long time ago.



			https://cgit.freebsd.org/ports/log/x11/nvidia-driver-340/Makefile
		







						Support timeframes for Unix legacy GPU releases | NVIDIA
					






					nvidia.custhelp.com


----------



## mefizto (Aug 15, 2022)

Hi chrbr,

nope, it is NVS 3100M, I have been using the 340 driver since the beginning.

Kindest regards,

M


----------



## kpedersen (Aug 15, 2022)

mefizto said:


> Are there any negative consequences to downgrading the server?  I cannot have a nice laptop to become a paperweight.  But the lesson is - no more NVIDIA.


I believe security and hardware compatibility are the common reasons. Obviously the latter is not the case when it comes to older hardware.

An old Xorg in a chroot / jail to match the driver is probably not so much of a security issue since Xorg doesn't even listen on a TCP/network these days (it is all UNIX domain sockets).

So you could run an Xserver from the old chroot but connect recent applications to it. It is possibly a bit of a Frankenstein (his monster at least) but likely possible.

Another option is to build an older Xorg from an older ports collection snapshot (into a different directory via LOCALBASE, i.e /usr/local2020) and use that. It could be a little bit of work however.


----------



## mefizto (Aug 15, 2022)

Hi kpedersen,

thank you for your reply.



kpedersen said:


> An old Xorg in a chroot / jail to match the driver is probably not so much of a security issue since Xorg doesn't even listen on a TCP/network these days (it is all UNIX domain sockets).


Regretfully, I have no idea what you are proposing, much less how would I implement your proposal. So, I will just downgrade the X-server and hope for the best.

Kindest regards,

M


----------



## Erichans (Aug 15, 2022)

SirDice said:


> [...] URL unfurl="true"]https://nvidia.custhelp.com/app/answers/detail/a_id/3142/[/URL]


Thanks for the support timeframes.

So, that means, unless I'm very mistaken, that my Geforce 9200M GS will, in all likelyhood, go from limping to totally unworkable, rendering my faithfull—old, yes you may designate it equally well as very old but, with a very nice keyboard—Q210 laptop _X-less_. Currently, after the appreciated opening message, my X-graphics rendering went from very usable to limping mode. Startup takes noticable longer and more importantly all sorts of defects in the rendering of indivudual applications frame borders and mouse rendering make it almost unusable with Xfce.

I tried getting things working with version 2.5.0_1 of x11-drivers/xf86-video-vesa/ but it won't even `kldload`. I'd be happy with a slower, non-accellerated, vesa working. Perhaps, the only option would be to built an older X ...


----------



## SirDice (Aug 15, 2022)

Erichans said:


> So, that means, unless I'm very mistaken, that my Geforce 9200M GS will, in all likelyhood, go from limping to totally unworkable, rendering my faithfull—old, yes you may designate it equally well as very old but, with a very nice keyboard—Q210 laptop _X-less_.


That will eventually happen when Xserver keeps moving forward. Already happened to x11/nvidia-driver-304, that version is broken and doesn't work anymore with a recent version of Xserver.




Erichans said:


> I tried getting things working with version 2.5.0_1 of x11-drivers/xf86-video-vesa/ but it won't even `kldload`


There's nothing to kldload(8) here. Port/package contains an Xorg driver, not a kernel module.


----------



## kpedersen (Aug 15, 2022)

Would it be worth requesting an *Xorg-legacy* port? I suppose you would need an xlib-legacy, xcb-legacy, xproto-legacy, xinit-legacy, (etc, etc...) for everything since it went modular.

I would actually love to get Xeoncara in there. Less unnecessary library dependency hooks and a cleaner build system. That would be easier to control multiple versions. A couple of Linux distros and NetBSD (in pkgsrc, along with _modular-xorg-server_) has it, so it may not be tied too tightly to OpenBSD.


----------



## kpedersen (Aug 16, 2022)

mefizto said:


> Regretfully, I have no idea what you are proposing, much less how would I implement your proposal. So, I will just downgrade the X-server and hope for the best.


Hah, admittedly it is a faff and likely not worth your time. But if you are interested, to create a jail, check out:

https://freebsdfoundation.org/freebsd-project/resources/introduction-to-freebsd-jails/
https://docs.freebsd.org/en/books/handbook/jails/

(Remember to use an older FreeBSD release that matches the older xorg you are interested in running)

Then jump into it (via the `jexec` command or the simpler `chroot`), install Xorg and use the typical `startx` (fixing a few issues as you go relating to being inside a chroot).


----------



## mefizto (Aug 16, 2022)

Hi kpedersen,

thank you for the reply.

As I (barely) understand it, the jail/chroot idea is to ensure security protection using the older Xorg.  I do not have enough knowledge to judge whether it is worth it or not, but my concern, _cf_. post # 6, was (i) stability of the system with the older Xorg and (ii) how to keep the older Xorg.

Regarding (ii) I have been building everything from source since I have some packages built with non-standard options, and I have read too many posts warning against mixing ports and packages.

Kindest regards,

M


----------



## kpedersen (Aug 16, 2022)

mefizto said:


> Regarding (ii) I have been building everything from source since I have some packages built with non-standard options, and I have read too many posts warning against mixing ports and packages.


Indeed. Actually that is the whole point of the jail/chroot. Purely so that you can have a homogenous older version of the entire system running within a self contained environment purely to run the older Xserver.

That way, it shouldn't cause any collisions with your actual existing packages.

I commonly do this to run older versions of Gimp, Blender and OpenOffice (all of them got worse as they got older IMO).


----------



## mefizto (Aug 16, 2022)

Hi kpedersen,

thank you again for the reply.



kpedersen said:


> Indeed. Actually that is the whole point of the jail/chroot. Purely so that you can have a homogenous older version of the entire system running within a self contained environment purely to run the older Xserver.


I think that we misunderstood each other.  Item (ii) was meant to suggest that I do not know how/where do I obtain the older version of the Xorg/Xserver package.

Regarding your quote, I am confused due to my inability to grasp the the base OS to jails relationship, despite trying to understand jails many times.

Your previous post suggested to install Xorg/Xserver into the jail.  However, my understanding of the jails is that they have to contain the entire OS base.  So, that means that the machine will have an underlying OS (host) without the Xorg/Xserver and another OS (guest) with the Xorg/Xeserver in the jail? So, how would the base OS know to use the Xors/Xserver fom the jail? See the previous paragraph above.

Please do not waste more of your time with the issue; I will have to read about the jails another 100 times.

Kindest regards,

M


----------



## kpedersen (Aug 16, 2022)

mefizto said:


> Please do not waste more of your time with the issue; I will have to read about the jails another 100 times.


Well if you do need further help after doing so, just let me know.

One hint is that if you extract the base.txz from an old .iso of FreeBSD, you can use that as a chroot or jail. Additionally, if you install packages using that chroot, it will fetch the older versions. I.e from 11, rather than 13, etc.

Happy researching!


----------



## Phishfry (Aug 16, 2022)

mefizto said:


> nope, it is NVS 3100M


Is it possible that you have an Optimus video issue? This is a mobile NVidia chipset correct?






						192617 – [NEW PORT] x11/nvidia-hybrid-graphics:  NVIDIA secondary GPU configuration - Optimus Technology support
					






					bugs.freebsd.org


----------



## mefizto (Aug 17, 2022)

Hi kpedersen,

thank you for the offer, I might take you up on it, once I am really desperate.

Hi Phishfry,

thank you fro the answer, but (un)fortunately no.  It is a single card.

Kindest regards,

M


----------



## chrbr (Aug 17, 2022)

Dear mefizto,
I have wondered how my NVIDIA could work if the ABI is incompatible. There is one item we have not compared. I run FreeBSD-12.3p6. How about you and drhowarddrfine, what do you run on the system which requires the old NVIDIA driver? Or is that ABI mismatch only related to X and not to the operating system, too?
Kind regards,
Christoph


----------



## Phishfry (Aug 17, 2022)

mefizto said:


> It is a single card.


Something is odd than because Nvidia with M suffix is usually a mobile chipset.








						NVIDIA NVS 3100M Specs
					

NVIDIA GT218, 606 MHz, 16 Cores, 8 TMUs, 4 ROPs, 512 MB GDDR3, 790 MHz, 64 bit




					www.techpowerup.com
				




I suppose it is possible they built PCIe desktop cards with that chipset.

Is this computer a laptop? What brand?


mefizto said:


> I cannot have a nice laptop to become a paperweight.



The reason I am asking is your conf file might need more settings for dual graphics machine.(CPU graphics+NVidia)


----------



## mefizto (Aug 17, 2022)

Hi chrbr,

I am using 13.1-RELEASE.  It has been working fine until about a week or so ago, when I recompiled several packages synth(1) required to be compiled and once the packages were installed, the NVIDIA video quit working.  I have also been contemplating to revert back to 12.X-RELEASE, but where is the assurance that the Xserver will not be updated there too?

Kindest regards,

M


----------



## drhowarddrfine (Aug 17, 2022)

chrbr All that information is in my original post.


----------



## mefizto (Aug 18, 2022)

Hi Phishfry,

thank you for the continuing interest.



Phishfry said:


> Is this computer a laptop? What brand?


I am sorry to create a confusion by using the term card, it is a mobile chip-set built into DELL E6410.  To my defense, I mentioned that the machine was a laptop.

Kindest regards,

M


----------



## Phishfry (Aug 18, 2022)

Ok we can now say that is is an Optimus Laptop. Dell E6410 uses a scheme called Optimus.

This is going to require more than just installing nvidia 340.

You are going to need to research Optimus on FreeBSD. There are modified drivers for this.


----------



## mefizto (Aug 18, 2022)

Hi Phishfry,

thank you again.



Phishfry said:


> Ok we can now say that is is an Optimus Laptop.


How do you know that it is Optimus?  When I received it, it had Windows 7 on it and a driver for a NVIDIA chip.  When I execute `dmesg` I again see only NVIDIA requesting pci_enable_io, no trace of an Intel video request.

So, is it a good thing in that I could potentially disable NVIDIA and use an Intel driver (if it exist for the CPU/GPU)?  But, if there are no messages, how do I  figure it out?

Kindest regards,

M


----------



## K5KGT (Aug 18, 2022)

Thanks, the "IgnoreABI" fix worked for me too.

I have an Nvidia GeForce GTX 680MX which apparently only works with the 340 driver as well.

FreeBSD literally gave a breath of fresh air to a ~2012-13 27" iMac which had turned into a non-used box in a closet.  FreeBSD brought it back to life and it's now a very functional addition to my "hamshack".  

I know it's a little old but it's disheartening to think Xorg may leave it behind.  

I appreciate you're putting the fix in here for me to find.  I'd found verbage sort of to that effect but didn't know where to put it.

Be safe,

K5KGT.


----------



## Phishfry (Aug 18, 2022)

The best way to check is to go into the BIOS (F2 key on bootup) and look under 'Video'.
Look for Hybrid Graphics, Muxless or Optimus.

If not found then it is possible that the Intel GPU is not used.

If that is the case then you might just need to add some settings to your xorg conf for the NVidia GPU.


----------



## mefizto (Aug 18, 2022)

Hi Phishfry,

absolutely nothing in the BIOS.

Kindest regards,

M


----------



## Phishfry (Aug 18, 2022)

mefizto said:


> absolutely nothing in the BIOS.


OK No optimus than.
Sorry for the noise.
It appears from reading that Optimus did not kick in until E6x20 sandy bridge lattitude laptops.


----------



## mefizto (Aug 19, 2022)

Hi Phishfry,

No worries.

Kindest regards.

M


----------



## joplass (Oct 15, 2022)

Thank you to all. This thread just saved me.


----------



## drhowarddrfine (Oct 15, 2022)

joplass said:


> Thank you to all. This thread just saved me.



Can I get a Hallelujah! Bless you brother. When the plate comes around, please make a donation.


----------

