Fixing my nvidia card nouveau drivers

@nevj
The nouveau driver works from the xorg-server, it will have to be disabled or blacklisted, for the nvidia driver to install.

That may work, partially, but nvidia does not like nouveau, and nouveau does not like nvidia.
My Arch kernel is 5.15.77-1-lts, screenshots look fine on my PC.

So your kernel has the problem mods
Watch for any hangup

Just ordered some tractor glowplugs from the US. They were $99 for 4. Price at local suppliers $137 for 1. That is a big markup.

@nevj
Been running all day with no problem, except when the power went off. What is your Nvidia card #?

My old 1996 Chevy 4x4 Silverrado diesel, still have the orignal glow plugs, over 200000 miles and still running strong. Yes that is quite a markup!!!

GEFORCE 210 Nvidia (Rev2) card (GT218)

Redone with x86_64 firmware.
I had an issue… the python script that extracts the firmware from the .run file only works with the following versions
VERSIONS = (
“319.17”,
“319.23”,
“319.32”,
“325.08”,
“325.15”,
“340.32”,
“340.108”,
)
so I could not use your 390.154,
and in addition to that the only x86_64 legacy driver available from NVIDIA that is also on the above list was 340.108.

So I had to try the 340.108 firmware.

$ cd /tmp/nouveau
$ wget https://raw.github.com/envytools/firmware/master/extract_firmware.py

cp ~nevj/Dow*/NVIDIA-Linux-x86_64-340.108.run .

sh NVIDIA-Linux-x86_64-340.108.run --extract-only

python2 extract_firmware.py

Unknown PGRAPH archive order in this version.
Skipping gzip blob at 0x6460c0 (524288 bytes), wrong magic: 0xfc000000
Skipping gzip blob at 0x6464e0 (524288 bytes), wrong magic: 0xfc000000
Skipping gzip blob at 0x956ec4 (39744 bytes), wrong magic: 0x2
Skipping gzip blob at 0x958364 (10624 bytes), wrong magic: 0x100c
root@trinity:/tmp/nouveau# 


ls
extract_firmware.py  nva3_vp	  nvc4_fuc085  nvf0_fuc085
nv106_fuc084	     nva5_fuc084  nvc4_fuc086  nvf0_fuc086
nv106_fuc085	     nva5_fuc085  nvc8_fuc084  nvf1_fuc084
.....

cp -d nv* vuc-* /lib/firmware/nouveau/
nevj@trinity:~$ 

So thats it, I have the 340.108 firmware extracted and installed in /lib/firmware/nouveau.

Have to wait now and see if it hangs

My old 1996 Chevy 4x4 Silverrado diesel, still have the orignal glow plugs
I would love that vehicle.  JD seems to eat glowplugs.. this is my second replacement in 25 years.
I have a 1968 Landrover (Petrol). 300000miles. Now retired as farm vehicle. 

Screenshots OK on PC. Tablet must have lousy resolution.

It still gives the error message, but it does not hang

Nov  8 21:09:00 trinity kernel: [   44.740847] Initializing XFRM netlink socket
Nov  8 21:09:18 trinity kernel: [   62.209478] nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084 failed with error -2
Nov  8 21:09:18 trinity kernel: [   62.209502] nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084d failed with error -2

So I guess we can call that progress, but hardly a solution.

I have had several options to sell!!! The only real problem I have had is with the module that controls the injector pump. This is the last model with the 6.5 turbo.
I knew about the 340 driver, you need to chmod +x that file and make it executable, and it has to be ran with sudo, and try to install nvidia. I used that same driver on an older PC I have a few years ago.
can you do a “sudo lshw -c display” command.

root@trinity:/home/nevj# lshw -c display
  *-display                 
       description: VGA compatible controller
       product: GT218 [GeForce 210]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a2
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nouveau latency=0
       resources: irq:52 memory:fa000000-faffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:c0000-dffff
root@trinity:/home/nevj# 

That was in Devuan with nouveau

You mean the .run file?

you need to chmod +x that file and make it executable

I ran it with
sh NVIDIA-Linux-x86_64-340.108.run --extract-only
I only wanted the firmware out of it, not an nvidia install.

No hangups so far. Today it loaded nva_fuc084 without an error

Nov  9 19:59:32 trinity kernel: [   62.525400] nouveau 0000:01:00.0: firmware: direct-loading firmware nouveau/nva8_fuc084
Nov  9 20:01:50 trinity kernel: [  200.915292] ata16: hard resetting link

That was in messages log.

What I dont understand is why nouveau wants to load firmware dynamically? I thought all that happened at boot time.
That nva8_fuc084 is a video decoder. I am not running any video so why did it load it?
I tried playing a video. No difference. It did not load anything else and it did not hang.

driver=nouveau needs to read driver=nvidia

because the nouveau driver will have to be blacklisted

make the file executable and use “sudo ./NVIDIA-Linux-x86_64-340.108.run”
You will have to stop any DM, lightdm, sddm, slim and use a tty terminal and login in order to run the file.

I dont want to abandon nouveau unless I have to.
At the moment it is working OK with the nvidia firmware copied into nouveau. That is far simpler than installing nvidia.

Remember I have to do this 6 times, once for each Linux I have installed. They all have nouveau at the moment

@nevj
I understand but, but I have a much better display with the nvidia graphics driver.
Gentoo running Nvidia GT430
I used the same driver and installed it in Gentoo. I had to stop the display-manager and then restart it after the install. Was really quite easy. Why would you have to install six times?
Nvidia is providing drivers, it just is not an auto thing, like with AMD. Is your Nvidia onboard or is it a dedicated card?

Because it is a multi boot computer. I have 6 Linuxes.

It is a dedicated card, I could quite easily replace it.

My resolution seems OK.
If I have the firmware from nvidia, all that nouveau is doing is loading it and dealing with display requests. Surely it can do that as well as nvidia?

I have multi-boot also, nvidia changed nothing with grub or the boot order.
By default Linux will install nouveau drivers, nvidia will install older drivers, that Linux no longer supports. I do not plan on updating my machines, anytime soon, and I can now use Nvidia, for both Windows and Linux, for my graphics.
You were very smart to figure how to fix nouveau, and if it works, then leave it alone.

I got info from the web, obviously.
My issue is a bit different to yours. The firmware for my card are no longer available from nvidia. So I have to choose the oldest firmware nvidia supports, and hope that it works on my card.
So far so good. I just switched on hardware acceleration in the browser, and nothing happened

I have multi-boot also, nvidia changed nothing with grub or the boot order

Thats not the problem. Its just that I have to copy the ‘stolen’ firmware into the nouveau directory in each of the 6 Linuxes.
So I want to be sure it is OK first. I dont even know if /lib/firmware/nouveau has the same name in Void or Solus.

1 Like

This is a purely anecdotal “two bob’s worth” to this conversation. Well more than two bob I reckon - its a TL;DR and my employer bills my time at about $300 per hour - so a “tad” more than 20 cents :smiley:

I forked out a fair commitment in time, and $$$, by going AMD on my Linux gaming “rig” - but - this is Ubuntu 22.04, and kinda / sorta “bleeding edge” (pleading edge : like “plug and pray”) recently - to go AMD instead of NVidia - and starting to have regrets…

The card (return from “inxi -Fxz”) :

Radeon RX 6600/6600 XT/6600M

I think it’s got 6, or 8 GB of DDR5 video RAM…

But - I’ve noticed my Ubuntu machine “hangs” from time to time - just started happening… e.g. last night I knocked off my computers to “hit the fartsack” (i.e. aussie for “go to bed”) by powering off my monitors…

This morning - both my MacBooks came online and “displayed desktops” when I powered up those monitors - but my Ubuntu machine didn’t - but it wasn’t dead - I had a remote SSH session from one of my Macs and that was still responsive (but couldn’t launch a new one)… This is the 2nd time this has happened in a fortnight…

'cause I had a remote SSH session on that machine, I could run some diags (here’s something that really SHITS me about Ubuntu just lately, maybe since 20.04 ? - you now need to run dmesg with root privileges! WTF?) - and dmesg showed a bunch of PCI and AMD driver messages… and - I’d only just updated and upgraded - so - something seems broken…

Another anecdotal “thing” : gaming on my AMD Ryzen 7 machine with 32 GB of “faster” DDR4 RAM with an AMD GPU using the opensource Radeon drivers - is still like 10,000 better than gaming on MacOs with M1 (“Apple Silicon”)… e.g. “Cities Skylines” is VERY ugly and kludgy and sludgy on EITHER of my MacBook Pro M1 systems, compared to running it on my Linux desktop machine…

So - I’m about to “revamp” my desktop… I reckon I may only need 2 monitors on my “gaming rig” so I may in fact go back to my NVidia GTX1650 “Super” for gaming…

Anyway - I keep seeing marketing guff from Apple about how good gaming is on Apple Silicon - my anecdotal evidence is that it’s SHIT compared to Gaming on Linux :smiley:

Note : I do have 2 spare GTX650Ti OC PCIe boards (note above - my other GPU I want to use is a GTX1650 not “650”).

The GTX650 is still supported in Nouveau and NVidia proprietary drivers - so @nevj - for the cost of shipping (i.e. “free” apart from shipping) I’d be prepared to send one of them (or even both?) to you…


Just to note : Cities Skylines is “native” on Linux x86_64… I strongly suspect the “native” MacOS port is running in Rosetta 2 (i.e. emulating x86_64 on arm64)… I call it “Rosetta 2” 'cause Apple called the thing that let PPC apps run on intel Macs circa 2006 “Rosetta”…

Thats very generous Daniel.
However I will not take it up at the moment because I think I have solved my issue by stealing nvidia firmware for a later model than my card, and inserting that firmware into Nouveau. If I did get a new card, I would prefer an AMD.

Just gave it the ultimate test (for me anyway) … turned on hardware acceleration in firefox and played Carter Family videos.
No issues there and no messages in the logs. My graphics requirements dont extend to games.

I was surprised you had issues with the new AMD board. THey are supposed to be fully supported

Thank You
Neville

2 Likes

I am satisfied with my nvidia card performance in Devuan now.
So I decided to promulgate the fix to Debian/Gnome.

It would seem that what I did in Devuan put over 100 firmware files in /lib/firmware/nouveau, but only one of those files was ever loaded and used… it is called nva8_fuc084.

So I decided to try just adding that file to Debian/Gnome.
After adding it, I booted, to get it to load, and sure elnough that one file appeared in /var/log/messages as being loaded. … and everything worked, I was able to turn on hardware acceleration in firefox, and play a video, without the system hanging.

i dont know what the other 100 odd files I left behind are for, but maybe they are for other models of nvidia card. They are certainly not necessary for me.

So my final ultimate fix is

  1. mkdir /lib/firmware/nouveau
  2. copy the file nva8_fuc084 into that directory
  3. reboot

One has to of course obtain a suitable firmware file using the python script noted above to unpack nvidia firmware.

2 Likes

* Ongoing - manifests itself when I turn one, or both, of the monitors on in the morning - using Displayport on both… One of the monitors will be “dead” - i.e. power on, then go into standby…
Swapped cables about blah blah blah… Same difference…
I rebooted… SAME DIFFERENCE!
I halted and powered off everything…
Power up : SAME DIFFERENCE!

PITA!
Did it again just now (power off - i.e. even cut power to the ATX power supply) - still no display on one of my monitors - tried ALL the display ports (I have 3 on this AMD GPU).

So - I tried HDMI - and sure enough - now I have two monitors - but THIS IS NOT THE ANSWER!

I want to RESERVE the HDMI port on this piece of crap overpriced Radeon GPU for my Graphics Tablet Display (XP-Pen).

But HDMI is letting me cook with gas again… But like an OCD madman - THAT IS NOT THE ANSWER!

So - I’ve powered off again… pulled the HDMI cable out of the monitor that refused to come out of standby on displayport, pulled the other “working” monitor displayport cable out the back of the GPU - then powered up “Cold Boot” (like “cold beer” but not nearly as good) - powered up and now the piece of crap comes out of standby!

BOTH monitors are 32" Lenovo, one is a curved high hz (144) gaming one, both are QHD.

Here’s what SENDS me in to paroxysms of frustrated rage - how monitors WILL NOT bring up the OSD menu when they go into standby! It happens on shitty 10 year old Dell FHD monitors, it happens on 6 month old Lenovo or Gigabyte QHD gaming monitors - WHY? By then it’s too late to FORCE them to switch to another port - e.g. HDMI if the default was Displayport…

* ‘when I turn one, or both, of the monitors on’ basically means EVERY MORNING - as I’ve mostly worked from home this week…

DAILY REBOOTING is one of the reasons I dumped Windows!

It’s such a regular thing that I’ve been forced to add this to my .zshrc :

alias f**king="sudo"

So I can then just type :

f**king halt
or
f**king reboot

Which feels so much more therapeutic than merely typing “sudo:smiley:

I dont quite get it because I dont savvy OSD menus.
When my monitors go into standby, and if I leave them there till the next boot, when I boot they detect it and start up the same way they do if I cold start them.
They are only cheap ASUS monitors, one is on a displayport, the other on hdmi.
I have never had them not detect that I have started the computer. They are on separate computers.
So is this some issue only with dual monitors on one computer?

to make a liar of me - didn’t happen this morning…

but now NEITHER monitor has a HDMI cable plugged in - which may have confused the stupid things…

1 Like