Cannot play any Linux games anymore for about a year now

You likely have /compat/linux/usr/lib/libGL.so.1 symlinked to /compat/linux/usr/lib/libGL.so.384.111. It should point to whatever version you have installed right now (384.90?).

Code:
  1331 doom.x86 CALL  linux_stat64(0xffffa5f0,0xffffa41c)
  1331 doom.x86 NAMI  "/compat/linux/dev/nvidiactl"
  1331 doom.x86 NAMI  "/compat/linux"
  1331 doom.x86 NAMI  "/compat/linux/dev/nvidiactl"
  1331 doom.x86 STRU  struct stat {dev=117, ino=9309873, mode=020666, nlink=1, uid=0, gid=0, rdev=50175, atime=1507885399.961294000, mtime=1507885399.961294000, ctime=1507885399.961337000, birthtime=1507885399.961276000, size=0, blksize=32768, blocks=0, flags=0x0 }

Do you have anything at path /compat/linux/dev/nvidiactl? If so, remove it.
 
Do you have anything at path /compat/linux/dev/nvidiactl? If so, remove it.

It looks like it is not even a directory. But anyway, I am giving you the complete output and listing of the paths that you are asking for:

Code:
$ cd /compat/linux/dev/
$ ls
null        nvidiactl    shm
$ cd nvidiactl
cd: nvidiactl: Not a directory
$ ls -l
total 4
-rw-r--r--  1 root  wheel       0 Feb  4  2017 null
crw-rw-rw-  1 root  wheel  0xc3ff Oct 13  2017 nvidiactl
drwxr-xr-x  2 root  wheel     512 Jun 12 18:32 shm
$ pkg info | grep nvidia-driver
nvidia-driver-384.90           NVidia graphics card binary drivers for hardware OpenGL rendering
$ pwd
/compat/linux/dev
$ cd ..
$ cd usr/lib
$ pwd
/compat/linux/usr/lib
$ ls
db4.3.29
dri
games
gconv
gio
i686
krb5
ld-2.12.so
ld-linux.so.2
ld-lsb.so.3
libacl.so.1
libacl.so.1.1.0
libanl-2.12.so
libanl.so.1
libattr.so.1
libattr.so.1.1.0
libblkid.so.1
libblkid.so.1.1.0
libBrokenLocale-2.12.so
libBrokenLocale.so.1
libbz2.so.1
libbz2.so.1.0.4
libc-2.12.so
libc.so.6
libcap.so.2
libcap.so.2.16
libcidn-2.12.so
libcidn.so.1
libcom_err.so.2
libcom_err.so.2.1
libcrypt-2.12.so
libcrypt.so.1
libcuda.so.1
libcuda.so.384.111
libcuda.so.384.59
libcuda.so.384.90
libdb_cxx-4.3.so
libdb-4.3.so
libdb-4.7.so
libdl-2.12.so
libdl.so.2
libdrm_amdgpu.so.1
libdrm_amdgpu.so.1.0.0
libdrm_intel.so.1
libdrm_intel.so.1.0.0
libdrm_nouveau.so.1
libdrm_nouveau.so.1.0.0
libdrm_nouveau2.so.2
libdrm_nouveau2.so.2.0.0
libdrm_radeon.so.1
libdrm_radeon.so.1.0.1
libdrm.so.2
libdrm.so.2.4.0
libe2p.so.2
libe2p.so.2.3
libEGL_nvidia.so.0
libEGL_nvidia.so.384.111
libEGL_nvidia.so.384.59
libEGL_nvidia.so.384.90
libEGL.so
libEGL.so.1
libelf-0.164.so
libelf.so.1
libexpat.so.1
libexpat.so.1.5.2
libext2fs.so.2
libext2fs.so.2.4
libfam.so.0
libfam.so.0.0.0
libfontconfig.so.1
libfontconfig.so.1.4.4
libfontenc.so.1
libfontenc.so.1.0.0
libform.so.5
libform.so.5.7
libformw.so.5
libformw.so.5.7
libfreebl3.chk
libfreebl3.so
libfreeblpriv3.chk
libfreeblpriv3.so
libfreetype.so.6
libfreetype.so.6.3.22
libgamin-1.so.0
libgamin-1.so.0.1.10
libgcc_s-4.4.7-20120601.so.1
libgcc_s.so.1
libgdbm.so.2
libgdbm.so.2.0.0
libgio-2.0.so.0
libgio-2.0.so.0.2800.8
libGL.so.1
libGL.so.1.2.0
libGL.so.384.111
libGL.so.384.90
libglapi.so
libglapi.so.0
libglapi.so.0.0.0
libGLdispatch.so
libGLdispatch.so.0
libGLESv1_CM_nvidia.so.1
libGLESv1_CM_nvidia.so.384.111
libGLESv1_CM_nvidia.so.384.59
libGLESv1_CM_nvidia.so.384.90
libGLESv1_CM.so
libGLESv1_CM.so.1
libGLESv2_nvidia.so.2
libGLESv2_nvidia.so.384.111
libGLESv2_nvidia.so.384.59
libGLESv2_nvidia.so.384.90
libGLESv2.so
libGLESv2.so.2
libglib-2.0.so.0
libglib-2.0.so.0.2800.8
libGLU.so.1
libGLU.so.1.3.1
libglut.so.3
libglut.so.3.9.0
libgmodule-2.0.so.0
libgmodule-2.0.so.0.2800.8
libgmp.so.3
libgmp.so.3.5.0
libgmpxx.so.4
libgmpxx.so.4.1.0
libgobject-2.0.so.0
libgobject-2.0.so.0.2800.8
libgssapi_krb5.so.2
libgssapi_krb5.so.2.2
libgssrpc.so.4
libgssrpc.so.4.1
libgthread-2.0.so.0
libgthread-2.0.so.0.2800.8
libhistory.so.6
libhistory.so.6.0
libICE.so.6
libICE.so.6.3.0
libidn.so.11
libidn.so.11.6.1
libjpeg.so.62
libjpeg.so.62.0.0
libk5crypto.so.3
libk5crypto.so.3.1
libkdb5.so.6
libkdb5.so.6.0
libkeyutils.so.1
libkeyutils.so.1.3
libkrb5.so.3
libkrb5.so.3.3
libkrb5support.so.0
libkrb5support.so.0.1
libLLVM-3.6-mesa.so
libm-2.12.so
libm.so.6
libmemusage.so
libmenu.so.5
libmenu.so.5.7
libmenuw.so.5
libmenuw.so.5.7
libmount.so.1
libmount.so.1.1.0
libmp.so.3
libmp.so.3.1.14
libncurses.so.5
libncurses.so.5.7
libncursesw.so.5
libncursesw.so.5.7
libnsl-2.12.so
libnsl.so.1
libnss_compat-2.12.so
libnss_compat.so.2
libnss_dns-2.12.so
libnss_dns.so.2
libnss_files-2.12.so
libnss_files.so.2
libnss_hesiod-2.12.so
libnss_hesiod.so.2
libnss_nis-2.12.so
libnss_nis.so.2
libnss_nisplus-2.12.so
libnss_nisplus.so.2
libnvidia-eglcore.so.384.111
libnvidia-eglcore.so.384.90
libnvidia-glcore.so.384.111
libnvidia-glcore.so.384.90
libnvidia-glsi.so.384.111
libnvidia-glsi.so.384.90
libnvidia-tls.so.384.111
libnvidia-tls.so.384.90
libOpenGL.so
libOpenGL.so.0
libpanel.so.5
libpanel.so.5.7
libpanelw.so.5
libpanelw.so.5.7
libpciaccess.so.0
libpciaccess.so.0.11.1
libpcprofile.so
libpcre.so.0
libpcre.so.0.0.1
libpcrecpp.so.0
libpcrecpp.so.0.0.0
libpcreposix.so.0
libpcreposix.so.0.0.0
libpopt.so.0
libpopt.so.0.0.0
libpthread-2.12.so
libpthread.so.0
libreadline.so.6
libreadline.so.6.0
libresolv-2.12.so
libresolv.so.2
librt-2.12.so
librt.so.1
libSDL-1.2.so.0
libSDL-1.2.so.0.11.3
libSegFault.so
libselinux.so.1
libsepol.so.1
libslang.so.2
libslang.so.2.2.1
libSM.so.6
libSM.so.6.0.1
libstdc++.so.5
libstdc++.so.5.0.7
libstdc++.so.6
libstdc++.so.6.0.13
libthread_db-1.0.so
libthread_db.so.1
libtic.so.5
libtic.so.5.7
libtinfo.so.5
libtinfo.so.5.7
libutil-2.12.so
libutil.so.1
libuuid.so.1
libuuid.so.1.3.0
libvdpau_nvidia.so
libverto-k5ev.so
libverto-k5ev.so.0
libverto-k5ev.so.0.0
libverto.so
libverto.so.0
libverto.so.0.0
libX11-xcb.so.1
libX11-xcb.so.1.0.0
libX11.so.6
libX11.so.6.3.0
libXau.so.6
libXau.so.6.0.0
libXaw.so.7
libXaw7.so.7
libXaw7.so.7.0.0
libxcb-composite.so.0
libxcb-composite.so.0.0.0
libxcb-damage.so.0
libxcb-damage.so.0.0.0
libxcb-dpms.so.0
libxcb-dpms.so.0.0.0
libxcb-dri2.so.0
libxcb-dri2.so.0.0.0
libxcb-dri3.so.0
libxcb-dri3.so.0.0.0
libxcb-glx.so.0
libxcb-glx.so.0.0.0
libxcb-present.so.0
libxcb-present.so.0.0.0
libxcb-randr.so.0
libxcb-randr.so.0.1.0
libxcb-record.so.0
libxcb-record.so.0.0.0
libxcb-render.so.0
libxcb-render.so.0.0.0
libxcb-res.so.0
libxcb-res.so.0.0.0
libxcb-screensaver.so.0
libxcb-screensaver.so.0.0.0
libxcb-shape.so.0
libxcb-shape.so.0.0.0
libxcb-shm.so.0
libxcb-shm.so.0.0.0
libxcb-sync.so.1
libxcb-sync.so.1.0.0
libxcb-xevie.so.0
libxcb-xevie.so.0.0.0
libxcb-xf86dri.so.0
libxcb-xf86dri.so.0.0.0
libxcb-xfixes.so.0
libxcb-xfixes.so.0.0.0
libxcb-xinerama.so.0
libxcb-xinerama.so.0.0.0
libxcb-xinput.so.0
libxcb-xinput.so.0.1.0
libxcb-xkb.so.1
libxcb-xkb.so.1.0.0
libxcb-xselinux.so.0
libxcb-xselinux.so.0.0.0
libxcb-xtest.so.0
libxcb-xtest.so.0.0.0
libxcb-xv.so.0
libxcb-xv.so.0.0.0
libxcb-xvmc.so.0
libxcb-xvmc.so.0.0.0
libxcb.so.1
libxcb.so.1.1.0
libXcomposite.so.1
libXcomposite.so.1.0.0
libXcursor.so.1
libXcursor.so.1.0.2
libXdamage.so.1
libXdamage.so.1.1.0
libXdmcp.so.6
libXdmcp.so.6.0.0
libXevie.so.1
libXevie.so.1.0.0
libXext.so.6
libXext.so.6.4.0
libXfixes.so.3
libXfixes.so.3.1.0
libXfont.so.1
libXfont.so.1.4.1
libXft.so.2
libXft.so.2.3.2
libXi.so.6
libXi.so.6.1.0
libXinerama.so.1
libXinerama.so.1.0.0
libxkbfile.so.1
libxkbfile.so.1.0.2
libXmu.so.6
libXmu.so.6.2.0
libXmuu.so.1
libXmuu.so.1.0.0
libXp.so.6
libXp.so.6.2.0
libXpm.so.4
libXpm.so.4.11.0
libXrandr.so.2
libXrandr.so.2.2.0
libXrender.so.1
libXrender.so.1.3.0
libXRes.so.1
libXRes.so.1.0.0
libXss.so.1
libXss.so.1.0.0
libXt.so.6
libXt.so.6.0.0
libXtst.so.6
libXtst.so.6.1.0
libXv.so.1
libXv.so.1.0.0
libXvMC.so.1
libXvMC.so.1.0.0
libXvMCW.so.1
libXvMCW.so.1.0.0
libXxf86dga.so.1
libXxf86dga.so.1.0.0
libXxf86misc.so.1
libXxf86misc.so.1.1.0
libXxf86vm.so.1
libXxf86vm.so.1.0.0
libz.so.1
libz.so.1.2.3
locale
lsb
modules
pm-utils
rtkaio
security
sse2
terminfo
tls
udev
vdpau
XXX-libGL.so.1.2.0.%%.orig-20180216
XXX-libGL.so.1.2.0.%%.orig-20180423
XXX-libGL.so.384.59.%%.orig-20180423
XXX-libnvidia-eglcore.so.384.59.%%.orig-20180423
XXX-libnvidia-glcore.so.384.59.%%.orig-20180423
XXX-libnvidia-glsi.so.384.59.%%.orig-20180423
XXX-libnvidia-tls.so.384.59.%%.orig-20180423
$ pwd
/compat/linux/usr/lib
$
 
I'm not asking you to list anything. I'm saying you should correct the symlink and remove the bogus device file*. E.g.
Code:
sudo rm /compat/linux/usr/lib/libGL.so.1
sudo ln -s /compat/linux/usr/lib/libGL.so.384.90 /compat/linux/usr/lib/libGL.so.1
sudo rm /compat/linux/dev/nvidiactl

* Apparently recent versions of Nvidia's libGL create /compat/linux/dev/nvidiactl if you happen to run any (Linux) application using libGL as root. Then libGL starts sendings ioctls to /compat/linux/dev/nvidiactl instead of /dev/nvidiactl which is not quite right.
 
Thank you so much!!!! Executing the 3 commands above solved the problem! My question is now, how could this happen? Did anything go wrong with some upgrade in the past or did I accidentally run a Linux application as root in the past which I don't remember? So does this mean this was never a problem of the version of the nvidia-driver in the end? Can I upgrade or am I stuck to 384.90 now?
 
OK, here is what I have just found out right now: After installing linux-c6-libpng because darkmod required it, I was back to where we started. Nothing worked. Uninstalling linux-c6-libpng did not change anything. But when I tried again

Code:
# rm /compat/linux/usr/lib/libGL.so.1
# ln -s /compat/linux/usr/lib/libGL.so.384.90 /compat/linux/usr/lib/libGL.so.1

Doom3 would work again. So it occurred to me that linux-c6-png was the culprit. And yes, after installing that package again, it did not work, but after running the two commands above once again everything was functional again. And once linux-c6-libpng installed, even darkmod would start!

So can you please interpret this? How can linux-c6-libpng do such a thing and mess with your libGL.so.1?

It looks like this is not Nvidia's fault then?
 
How can linux-c6-libpng do such a thing and mess with your libGL.so.1?

Hm... I actually noticed before that there is some script/program relinking libGL.so.1 to the most recent libGL version in the same directory, but I don't know (and don't care) what exactly it is. You should remove libGL.384.111 since it obviously wasn't installed with pkg.

It looks like this is not Nvidia's fault then?

I'm using very selective quoting for a reason, not for the fun of it. Read the previous response again.
 
For what it's worth, maybe go outside of the freeBSD ports structure and go right to the nvidia geforce website. that's ALWAYS where I get my drivers, and I know they have freeBSD drivers...probably an old enough legacy driver to test the problem more thoroughly.

And on a quick inspection of the OP, it kinds of smells like the more recent OGL canvas is not presenting an X visual that the game stuff can use. This is actually a pretty common problem with neophyte OGL programmers. They make the assumption that EVERYBODY supports the particular visual they want to use.
 
For what it's worth, maybe go outside of the freeBSD ports structure and go right to the nvidia geforce website.

It's not worth it, specifically for reproducibility reasons: a port represents a known set of patches and settings. There exist a few patches in the nvidia-driver port (https://svnweb.freebsd.org/ports/head/x11/nvidia-driver/files/) and we don't want people to rediscover and reapply these fixes one by one.

Besides, you are not even a BSD user, so your positive experience with downloading and running vanilla driver is irrelevant.

And on a quick inspection of the OP, it kinds of smells like the more recent OGL canvas is not presenting an X visual that the game stuff can use. This is actually a pretty common problem with neophyte OGL programmers. They make the assumption that EVERYBODY supports the particular visual they want to use.

OP's issue is actually solved.
 
It's not worth it, specifically for reproducibility reasons: a port represents a known set of patches and settings. There exist a few patches in the nvidia-driver port (https://svnweb.freebsd.org/ports/head/x11/nvidia-driver/files/) and we don't want people to rediscover and reapply these fixes one by one.

Besides, you are not even a BSD user, so your positive experience with downloading and running vanilla driver is irrelevant.



OP's issue is actually solved.

Ah yes, one boy's opinion...For ten plus years I've seen the "ported" nvidia drivers have problems on every platform they are hacked into. Never had a lick of problems using the "direct from nvidia" driver, as long as they are installed (AFTER) the X11 packages. and who are you to make a judgement about what I use or don't use? You know zero about me or what I do.
 
Hello tempest766,

you are not helping me here, so please do not use my thread to confront someone who is. I never had any problems using the nvidia-driver from the packages. And once trying to install it directly from Nvidia it did not solve this specific problem either. So I would like to politely ask you to stay down.

Hm... I actually noticed before that there is some script/program relinking libGL.so.1 to the most recent libGL version in the same directory, but I don't know (and don't care) what exactly it is. You should remove libGL.384.111 since it obviously wasn't installed with pkg.

Thanks for that advice. But what about doing a complete cleanup? That's why just in case I listed the whole content of the directory, because it looks like it contains a lot of repeated/obsolete stuff.

So what do you think if I uninstalled nvidia-driver and all linux-related packages (including linux_base-c6) and then did a rm -rf /compat and then reinstalled everything again?
 
Well, thank you so much again for your help! I am not going to do that right now, but when I do, I will check if like that the new version of nvidia-driver works and report back. But until then (also after upgrading to FreeBSD 11.2) I guess I will just enjoy playing some linux-games with the awesome performance of FreeBSD...^^
 
Back
Top