Is there a program that I can run on my laptop to tell me what Linux distro supports the hardware out of the box? Also whether the hardware is supported at all?
My laptop is an MSI Sword 15 A11UD. But I'm really looking for a program that analyses and projects problem areas and supported/unsupported hardware
There is a website to check which hardware is supported (on which distro). You can look up your laptop there, but beware that it is crowdsourced, so there might have been tinkering involved before submitting the results or the results may be outdated.
Click on "probe your computer" then check the results to see what your current setup supports.
That is pretty sweet. I start up my docker service, run the docker command and ctrl-click the link it pops up in Konsole, and voila! I see exactly what I noticed in my system, mainly that the RGB bullshit doesn't work which hurts my feelings not at all.
This is also super useful for people deciding what to buy, when the vendor would obviously not be keen to let you plug a USB into their device and boot into the scary Linux
This was my first thought too but I think OP is more focused on those small things that only become evident after a couple weeks or even a month, after you've already invested a bunch of time and energy getting everything running the way you need it
Yes, it's called Linux. Just boot any live usb and you'll see.
I get what you are asking: Why try hundred distros, just tell me the one that works, but I'm not aware of any such tool. If an open-source driver exists the kernel is really good at auto-detecting everything and make it work.
a quick and dirty way to find out if your hardware is supported is to try out a live usb distributions that runs entirely off of a usb stick and never makes any permanent changes to your system.
it will run MUCH slower than a regular installation; but if you see all of your hardware and drivers enumerated in lspci; you'll know that it works out of the box.
you should know that this limits you to the distros that have live usb images only; but if you go with mainstream debian, fedora, arch, etc. you'll instantly know that downstream distro's are capable of supporting with that hardware with that version of the mainstream distribution that they're forked from (eg ubuntu from debian; manjaro from arch; suse from redhat; etc.)
i used this method extensively when i was new to linux and distro hopped a lot; it taught me a lot when i first started out.
the live distro's come included with a lot of preloaded driver/firmware that is not included with a regular installation for a myriad of reasons; but you can use lspci and lsmod from the live environment to identify the proper software you need to add to your regular installation to get that hardware working.
@Melatonin
I installed a linux onto an USB stick
installed Hw-probe. Created a little script that saved the result to disk. and opened the browser to the result page.
And went to a Store:
Insert USB Stick
Press SHIFT on a Windows PC
Than do a Power off on Windows
chose reboot to stick
connect smart-phone with thetering
run HW-Probe script
I was allowed to do that on every store i visited. Mostly I asked if the local staff would like see a running linux.
What works/doesn't work is mostly down to what version of the kernel a distro ships. Most hardware drivers will be compiled into the kernel, or if not, shipped with the distro as kernel modules which get loaded as needed. Either way, the kernel version determines what is and isn't possible on a given install.
DualSense 5 support for example was introduced in Linux Kernel 5.15, IIRC.
Most distros ship a relatively up-to-date kernel, and hence, the actual hardware support is essentially identical. When it isn't, it's down to excluded/included kernel modules, which is usually something you can change if needed.
Others have already commented on the actual ways to find out what will and won't work, but in general, a newer Linux kernel means better hardware support.
If you try something, and some things don't work, you'll either have to figure out how to install and load the appropriate kernel module to get the appropriate driver working, or simply swap out the whole kernel for a newer version.
This is tricky on some installs, like Ubuntu based distros, very impractical on immutable systems, and super easy on distros like arch.
The real complications come when configuring things that Linux doesn't just automatically figure out sometimes. Fingerprint sensors, fan curves... If that stuff isn't a known and implemented standard on a given device, getting it to work isn't a matter of finding the right distro or kernel version.
Generally, yes. It's not nearly as bad as say 2015 but NVidia has a long standing history of being difficult to deal with, and users having to make constant compromises. For instance, NVidia hasn't had properly working Wayland support on most environments until recently due to the awful flickering that many users experienced. Things like power saving, dual GPU handoff, general OpenGL performance, frame stability and tearing (X.Org), etc. have been either historical and/or current pain points for using NVidia GPUs vs AMD or Intel GPUs.
Managing drivers for nvidia is a constant headache for the nvidia linux community. Pop os devs manage them for you (with a QA team) with pop os so your system never breaks from a bad nvidia update
Downvotes probably from snarky "arch btw" users that like to micromanage their system
Distros just ship packages, some rare drivers may be missing, distros have different versions of drivers, some are external and packagers just take proprietary code and make it compatible, like with NVIDIA on Fedora.
More consistent way would be to just check the Linux kernel version. Most distros are going to be running the default kernel with everything enabled, so you shouldn't need to worry about specific kernel options being disabled, unless you're using something really esoteric and not meant for general desktop usage. If you need 3rd party (nvidia) drivers, nouveau works out of the box, and should at least get you to the point you can install the proprietary driver, should you wish to taint your kernel in that way :'(
If the distro just boots into a live session, you can get a pretty good idea there. They're all working off of roughly the same kernel and driver and firmware sets, give or take some distros being a year out of date. The slower distros have something like "backports" or "enablement kernels" to still give you the option of pulling in newer stuff.
The graphics situation (compositor and mesa and kernel drivers and userland driver libraries) is more complicated. Especially with Nvidia. Your distro choice makes a much bigger impact there.
Linux has live ISOs. Flash one on a USB stick, boot off of it and mess around. Generally, these days, everything except the fingerprint sensor/facial recognition thing and sometimes wifi adapter will work out of the box.