Can you upgrade Slackware 14.2's video driver without breaking the entire x/?
Hello. I just bought a new laptop, ASUS TUF FX505DU and, obviously, wanted to install Slackware on it. I just took the SSD from my old laptop, tweaked some settings, and successfully booted the system. Unfortunately, stock Slackware 14.2 kernel doesn't seem to support a lot of things on the new laptop. But when I booted alienBOB's Slackware Live everything seemed to work just fine, so I just took the kernel from there and the result was better. However, I still couldn't start X, so I started investigating.
On stock kernel even KMS didn't work, so I assumed it was the kernel module. And indeed, after upgrading to Slackware Live's kernel the console was nice and high resolutioned. But kernel module alone isn't enough to start X. xf86-video-amdgpu was too old to support AMD Ryzen 7 3750H. Same for Nvidia GeForce GTX 1660Ti: xf86-video-nouveau was too old. And for proprietary driver I use bumblebee which isn't any good for using with X11, not that I would've liked to use Nvidia card as a primary one. So the only way seems to be upgrading. I tried to compile the sources of xf86-video-amdgpu from -current, but that required newer libdrm. I assumed upgrading that would break a lot of things, so I didn't, and here I am. To reiterate my question, can I upgrade the video driver (xf86-video-amdgpu) without breaking and rebuilding the entire x/? Or would it be much more hassle than switching to -current? Personally, I like everything to just work, so I stick to stable releases, and -current occasionally breaks things, especially third-party packages, and I can't be bothered to fix those every time Pat releases some major library update, but 14.2 is way too old at this point, and 15 doesn't look like it's gonna be released any time soon. Sorry if I got some packages' names wrong, I'm writing from memory as, well, I can't really post from Slackware. |
I actually did just that over this weekend after additional promptings and some help in another thread (I'll have to try and remember to link it when I get home). I ended up upgrading libdrm, adding libedit (from SBo), upgrading llvm, then mesa, and finally xf86-video-amdgpu.
I stuck with particular versions due to others posting that they're likely to work without too much issue on 14.2, which were new enough for my card (RX570), but yours may need even newer, which might run into problems. I installed: libdrm - 2.4.99 libedit - 20191231_3.1 (from SBo) llvm - 7.0.1 mesa - 19.0.8 xf86-video-amdgpu - 19.1.0 I grabbed SlackBuilds for the rest from Alien Bob's git instance for -current, grabbing the last versions that used autotools for libdrm and mesa, making sure to remove any code that removed .la files. I dug through the changelog to find the latest version of the llvm.SlackBuild used to build a 7.0.x version. For the amdgpu driver itself, I just grabbed the current x11 directory and built the amdgpu driver from there. I don't think I had to make any adjustments to it. However, you may require newer versions of mesa, which would require newer llvm and libdrm, so it may add a lot more work on your end. |
I've never tried this but pkgsrc (NetBSD's package manager but made portable to other systems) does include modular Xorg. I've seen it mentioned on older NetBSD mailing list threads as a way to try newer drivers on NetBSD (with 9.0 less recommended I think since its base tree Xorg is pretty up to date, it having just been released this year), but I suppose it should also install on Linux given pkgsrc's goals. That could be a low risk way of trying to get a newer X installed, since it will be isolated into the /usr/pkg directory tree.
But I will warn you that recently I tried to install mpv from pkgsrc on slackware and hit some kind of libtool error while building. This could be just me and my setup, though. I haven't investigated yet. I was able to install pkgsrc's youtube-dl package without issue, but that's only a python script. This is what my error looked like in case anyone is curious (or wants to help me, whoops, thread hijack, don't do that, I'll figure it out when I need this to be installed): Quote:
|
Quote:
|
Sorry for the delayed reply, got a busy week.
Quote:
Took a bit of work, but huge thanks for the solution! After building everything I was able to run X server as usual. However, a lot of applications just segfault now, like Firefox, Vivaldi, Seamonkey, Thunderbird, Telegram, uGet, xfce4-pulseaudio-plugin etc. Apps from KDE work, though, such as KTorrent or Konqueror, Pidgin also works. I suspect some libraries that are indirectly relied on got upgraded in the process, but which ones? ldd doesn't help. Do you by any chance have a solution for that? |
I forgot to mention that I disabled glvnd on my mesa, so I didn't need to build any of the requirements for that (which I'm guessing is libclc, libglvnd, and mako).
I do know that Firefox is working fine on my system (my primary browser is Chrome, but I did open Firefox as well). I don't use any of the others mentioned. Have you had any meaningful messages if you start those applications in the terminal? |
Quote:
Quote:
|
Quote:
Quote:
Someone else might be able to provide some advice on using strace or gdb to find more info, but I am not familiar enough with those to provide any pointers. |
Quote:
I see the Slackware libtool library in xz's contents file and in ...lib64/: Code:
20109r2:packages$ grep liblzma /var/adm/packages/* |
it may be worth mentioning that llvm 8.0.1 is in /extra (which is needed for more recent firefox builds)
|
Quote:
|
Quote:
What, no golang, haskell, common lisp, clojure, and eiffel? Surely they could at least squeeze in a smalltalk vm somewhere. What are these mozilla developers doing all day? |
A bit of an update. Recompiling uGet (that I use in this case as an example) didn't help. In dmesg I found this:
Code:
[10338.507657] uget-gtk[6688]: segfault at 0 ip 00007f5e071a1e2f sp 00007ffef1e4dc48 error 4 in libc-2.23.so[7f5e0710c000+1c0000] Code:
Starting program: /usr/bin/uget-gtk Code:
open("/usr/lib64/../lib64/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) Also, when in console mode, trying to start the app says about no display available (as expected), instead of segfaulting right away. |
Hello fsLeg. You likely know this but just in case, if you are using nVidia proprietary drives and wish to upgrade Mesa, it's important to reinstall nVidia drivers after any Mesa upgrade.
|
Quote:
So far my conclusion is that only apps that directly or indirectly rely on OpenGL segfault, others work fine. Which, now that I think about it, might mean mesa-19.0.8 isn't new enough... Although X server works fine with it. |
All times are GMT -5. The time now is 02:59 AM. |