SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
System: Slackware64-current, with AlienBob's KDE5.
Hardware: AMD Bulldozer cpu, NVidia GT710 graphics card.
Problem: No hardware video acceleration!
I've just upgraded my "workshop" computer to an SSD drive for the OS. While I was at it, I decided to do a complete upgrade with a fresh install of the latest current and KDE5. So far so good.
Until now, I've been using the proprietary NVidia driver, but I like to roll my own kernels, and NVidia always seem to be about 6 months behind the curve. I thought I would try the Nouveau driver, as being in the kernel it ought to be immune to kernel update issues!
I'm not interested in cutting-edge 3D acceleration, just hardware accelerated video processing, mainly for editing purposes. I've never had much success in the past with Nouveau, but my patience has finally snapped with NVidia, so I'm now having a determined effort!
It all seems to be installed correctly, and mostly works, but vdpauinfo reports that none of the common video formats - most importantly h264 - are supported!
According to the web searches I've done, it should be!
As everything is otherwise working, I'm assuming that the issue is firmware which needs to be installed, but I stand to be corrected!
The firmware needs to be extracted from the NVidia proprietary driver, using a python2 program. I had to tweak this a little bit, as it appeared that the name of the file containing the firmware has changed in recent versions (378.13).
It threw up some errors about not finding specific files (I assume dropped from more recent versions), but managed to extract a bunch of files with the right sounding names:
The filenames in brackets are symlinks to the corresponding files.
I've placed these in /lib/firmware/nouveau as the paperwork suggests, and also in /lib/firmware/nvidia when it appeared not to work.
Is there anything else that needs to be done to get the firmware to install? To be clear, I get no acceleration with either the standard slackware kernel (4.4.38) or my own 4.10.6.
I'm sure I've missed something here, but I've no idea where to go next.
Do you have any error messages related to your card or nouveau? Either in your /var/log/Xorg.0.log or dmesg (there might be others too that I can't think of)?
I believe dmesg will usually shed light if you're missing firmware.
Some videos (It seems related to how they are created?) will have some graphical artifacts with hwdec and nouveau and according to a nouveau developer its not all that straight forward on how to fix.
Also for your own sake, don't try nouveau + hwdec + mpv. This has crashed my entire system within seconds and the main mpv developer has refused to fix this...
Edit: The nvidia firmware used by nouveau does not really change between releases, at least as far as nouveau is concerned so the nvidia-firmware slackbuild uses the legacy nvidia driver version documented by nouveau developers to avoid issues with the extraction process.
Bassmadrigal: I couldn't see anything untoward in dmesg, but I will have a close look in Xorg.0.log (its quite a long file!).
Orbea: Thanks for the pointers! The process carried out by the slackbuild is pretty much what I've done, but with a later driver. However, I will try it with the old driver - as suggested - to see if it makes any difference.
Thanks for the tip about mpv! That is my player of choice, as I've always found it rock solid with both ATI (kernel drivers, as used in my laptop), Intel (as used in my main desktop) and the NVidia proprietary drivers. If mpv has an issue with Nouveau, that may tip me back to the proprietary drivers again. Either that or swap the graphics card for an ATI, where I know the kernel drivers do what I want with a minimum of fuss!
I've been trawling the web whilst waiting for replies here, and I've found a couple of things that might be issues. I've always used the uvesa framebuffer with the NVidia card, because the proprietary driver was supposedly incompatible with the vesa one! However, I've now read that Noveau is the other way round and won't work properly with uvesa! Aaarrgghh!
I think I may also have left the nvidia framebuffer set in my kernel config, which apparently is also a no-no!
Its getting late in the evening here in the UK, so I don't expect I'll get much more done tonight. Best approach it with a clear mind in the morning, I think!
The problem with mpv is that nouveau can not handle concurrent GL and / or VDPAU calls which mpv utilizes with hwdec. While it is basically a nouveau issue, it would be a lot easier to change mpv to not crash systems than for the nouveau developers to fix the issue.
That said, mpv regressed heavily in hwdec compared to mplayer in other aspects. Mplayer supports hwdec with pretty much everything you throw at it, almost all if not all other video players including mpv support only a subset of video formats for hwdec. In their effort to clean up the code base the mpv developers have removed all of the legacy video formats as they don't think people should use those video formats. The problem with that is that those video formats are still widely distributed and this will not change any time soon.
Following the advice I received here, plus my trawls of the internet, I recompiled my kernel with vesafb, and without uvesafb or nvidiafb. I didn't find any error messages in either dmesg or Xorg.0.log, but neither did I find anything that looked like firmware loading either. This confirmed my suspicion that I hadn't created the right firmware!
I therefore went the SBo route, suggested by Orbea. This created a lot more drivers than my effort did, and after installing, I now have video acceleration - limited, but enough for my needs! (Only seems to cover mpeg 1 & 2 and h264)
For the benefit of others reading this, lspci reported my graphics board as GT710B / GK208. Further digging refined this to NV106 / GK208B / GT720. (WHY is NVidia's naming system so confusing???)
The SBo route works fine. I was initially a little confused by the fact that it only uses the 32-bit NVidia driver (mine is a 64-bit system), but this is because the firmware is for the *graphics* processor, which is totally independent of the main CPU.
A few observations about different manufacturers here, based on my experience (Note: I'm talking specifically about video here, NOT 3D graphics!):
NVidia: The proprietary drivers work well, but are very kernel dependent. Every time you upgrade the kernel or mesa, you need to recompile the NVidia drivers. NVidia always seem to be a long way behind the current kernel development, and the drivers often need patching to work on new-ish kernels. The open-source (nouveau) driver is OK, but needs a lot of support work to get it working correctly (extracting firmware, etc. See above!), and much of this is not self-evident. Hopefully, now I've got the grunt work done, I won't have to bother again!
AMD/ATI: The proprietary Linux drivers were rubbish the last time I tried them, and support for older chipsets virtually non-existent! However, the open-source driver has matured nicely. It is part of the kernel, and needs little or no external support. Even my under-powered (and quite old) laptop delivers excellent video performance on the open-source driver.
Intel: Probably the best of the lot for video work, although libva is not as well supported as vdpau used by NVidia and AMD / ATI open-source. That was one of the reasons why I moved away from MPlayer to MPV. MPV is much happier with libva than MPlayer - or it was, the last time I used MPlayer!
I believe that AMD / ATI lent a big helping to the open-source driver development. I hear rumours that NVidia might be doing the same, and working on a new open-source driver, but at the moment there is no evidence for this out in the open - not that I've been able to find, anyway!
Anyway, thanks to all here for their assistance, and I hope my comments above help anyone else in the same boat as me!
I wouldn't hold my breath with nvidia, they don't even release the required firmware for redistribution. Additionally that python script for extracting the firmware fails for newer drivers as you observed and probably won't work any maxwell or pascal cards (We both have kepler which nouveau supports relatively well)... My advice is to stick with amd or intel when buying new cards for the foreseeable future as they at least support free drivers.
Yes, I think that pretty well sums up my conclusions as well. Its just that this particular machine had an NVidia card in it. I don't think Intel do separate cards any longer, so the only real alternative is AMD / ATI.
However, it has been an interesting learning experience, getting to grips with nouveau. But I'm not sure its one I would like to repeat.....!
Also for your own sake, don't try nouveau + hwdec + mpv. This has crashed my entire system within seconds and the main mpv developer has refused to fix this...
I have encountered this as well, but this would constitute a nouveau bug, no? Sure, mpv could try to work around this issue, but a user program causing the display itself to freeze certainly means that the kernel layer has a bug.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.