Nvidia GeForce 8200M G with X11 freezes the system if Option "Accel" is enabled in xorg.conf

Hello everyone!
I have an old laptop with the Nvidia GeForce 8200M G. The last version of the Nvidia driver that supports my GPU is nvidia-driver-340-340.108_3. Since this old driver is not ABI-compatible with xorg-server >= 21, I installed FreeBSD 13.1-RELEASE, that is the last release that shipped with xorg-server compatible with Nvidia driver 340 (xorg-server 1.20). Then, I have build from ports branch 2022Q3 (last quarterly branch with suited xorg-server) a lot of packages (xorg, xfce4, firefox, etc.) because such old binary packages ar no more available on official repositories.

So far, so good.

It works well, but after some time from starting the Xorg server (some times immediately, some times after minutes up to hours), the system freezes completely with a corrupted flickering display. At this point I can only force a shutdown by long pressing the power button: the system doesn't respond to anything else (CTRL+ALT+Fn, ssh connections, ping, etc.). Totally gone. There aren't any traces in logs (neither /var/log/* nor /var/crash/*).

Evrything works well if I disable the Option "Accel" on xorg.conf file but, the system becames quite slow and - obviously - the applications that need GLX extension don't start at all.

Any idea?
Thank you so much!
 
The version of Xorg (or ports/packages in general) is not related to the version of FreeBSD. Support for FreeBSD 13.1 ended in July 2023.
Do you think I can upgrade FreeBSD without compromise my setup? Even without hardware acceleration it is actually acceptable ;) Would it help fix my issue?
 
As it's a laptop changing the video card would be impossible to do. The venerable vesa(4) driver should always work. Not accelerated though, so kind of slow. But it'll work without freezing or crashing. Probably don't want to run a fairly heavy desktop environment like KDE or Gnome, I'd stick to the 'simpler' window managers.
 
Probably don't want to run a fairly heavy desktop environment like KDE or Gnome, I'd stick to the 'simpler' window managers.
Yes, I run Xfce and it's quite good.

I've upgraded FreeBSD to 13.2-RELEASE-p10 and nothing has changed neither in good nor in bad.
It seems it's a problem between Nvidia proprietary driver and FreeBSD because the same Nvidia driver works well in Linux.

I saw that NetBSD has a port of Linux's Nouveau. Sooner or later I'll give it a try, but I don't want to abandon FreeBSD. Any chance to see Nouveau on FreeBSD? It would be nice because Nouveau has good performance, is open source and covers a lot of old GPUs abandoned by Nvidia.
 
… corrupted flickering display …

Can you describe the corruption?

Is any of what flickers somehow upside-down?

A photograph will be ideal, if there's nothing sensitive. Thanks.

nvidia-driver-340-340.108_3. Since this old driver is not ABI-compatible with xorg-server >= 21, …

Where is the incompatibility expressed?

<https://www.freshports.org/x11/nvidia-driver-340/#dependencies>

FreeBSD Display Driver – x64 | 340.108 | FreeBSD x64 | NVIDIA


▶ <https://forums.freebsd.org/threads/83180/>
 
Where is the incompatibility expressed?
The log seems to show a warning.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266682
forum.manjaro.org
/var/log/Xorg.0.log
Code:
================ WARNING WARNING WARNING WARNING ================
This server has a video driver ABI version of 25.2 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.
Any idea?
Have you tried this?
id=266682#c1
/usr/local/etc/X11/xorg.conf.d/nvidia.conf
Code:
Section "ServerFlags"
Option "IgnoreABI" "1"
EndSection
 
I hope you can solve your problem by Option "IgnoreABI".
I will leave some information here that may be useful to you or others.

My situation is somewhat similar, but worse. I own a Toshiba Satellite A200-1GS laptop with a single GeForce Go 7300 (Quadro NVS 110M) graphics card. The driver that worked well was nvidia-driver-304 (but it doesn't support new versions of xorg-server - only xserver ABI 23 (xorg-server 1.19). Now I look in horror at all my nVidia graphics cards that don't get younger over the years...

The only thing that saves me is the xf86-video-nv driver. Yes, it's not perfect, but it provides a native display resolution of 1280x800 for my laptop. Yes, the vesa driver also works, but the maximum resolution of 1024x768 is not pleasing even on a small screen (of course, it is possible to visually try to improve the image using the fine settings of the GUI of certain programs and the window manager, but it is not ideal).
The xf86-video-nv driver works fine for me, even without the extra tweaks (xorg.conf.d). But it does not work well for all users.

Recently, I also had problems after the update (2022.10.10):
xorg-server: 1.20.14,1 -> 21.1.4_1,1
xf86-video-nv: 2.1.21_4 -> 2.1.21_5
...
I started getting:
...
[ 185.079] (II) NV(0): Not using default mode "1280x800" (bad mode clock/interlace/doublescan)
[ 185.079] (EE) Segmentation fault at address 0x0
[ 185.079] (EE)
Fatal server error:
[ 185.079] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 185.079] (EE)
...

Therefore, the vesa driver saved me.

But recently I found a solution that allowed xorg-server-21.1.11_1,1 + xf86-video-nv-2.1.22 to work (some of my attempts are described here (Sergiy) - x11-drivers/xf86-video-nv: Segmentation Fault post update from 1.20.14,1 to 2...).

Now I'm using the xorg-server-21.1.11_1,1 package I created (instead of the original one) with the modified xf86Modes.c file on my laptop:
Code:
--- 2024_xorg-server-21.1.11/xorg-server-21.1.11/hw/xfree86/modes/xf86Modes.c    2024-01-16 11:59:07.000000000 +0200
+++ 2024_Xenocara_xserver/hw/xfree86/modes/xf86Modes.c    2024-01-31 15:22:06.000000000 +0200
@@ -803,10 +803,14 @@
{
struct libxcvt_mode_info *libxcvt_mode_info;
DisplayModeRec *Mode = xnfcalloc(1, sizeof(DisplayModeRec));
+    char *tmp;

libxcvt_mode_info =
libxcvt_gen_mode_info(HDisplay, VDisplay, VRefresh, Reduced, Interlaced);

+    XNFasprintf(&tmp, "%dx%d", HDisplay, VDisplay);
+    Mode->name = tmp;
+ 
Mode->VDisplay   = libxcvt_mode_info->vdisplay;
Mode->HDisplay   = libxcvt_mode_info->hdisplay;
Mode->Clock      = libxcvt_mode_info->dot_clock;
For which special thanks to the OpenBSD developers (sorry), because precisely by analyzing the changes in:
xorg-server-1.20.14 (which worked) with xorg-server-21.1.4 (stopped working) with xorg-server-21.1.11 (installed now) and comparing with Xenocara (OpenBSD worked), I found a solution that worked for me.

I hope this information will be useful for someone.
 
Have you tried this?
id=266682#c1
/usr/local/etc/X11/xorg.conf.d/nvidia.conf
Code:
Section "ServerFlags"
Option "IgnoreABI" "1"
EndSection
Some update: the option IgnoreABI did the trick, so now I'm with latest Xorg from Packages (xorg-server-21.1.11_1,1 ABI version 25.2). This is a good point because now I'm no more stuck on 2022Q3 branch.

Anyway, if I leave the hardware acceleration enabled, the laptop keep on crashing as before (same corruption) :(.
I don't know why, I had to copy /usr/local/lib/xorg/modules/extensions/.nvidia/libglx.so
to /usr/local/lib/xorg/modules/extensions/libglx.so otherwise Xorg wouldn't find it. Before the update libglx.so was already in the right place.
 
Back
Top