How to fix shit that doesn’t work:
Use lspci/lsusb and lsmod to show you what devices are attached to the computer and what kernel modules are loaded presently.
Use the modinfo command to show information about kernel modules.
Use ls /lib/modules/kernel_version/drivers to see what modules are available.
Use your distributions package manager to install more optional modules.
How to figure out if something will work:
Use lspci/lsusb, look for those components and their kernel modules, see if they’re available in the distribution you’re investigating.
To give an example: I use an hp stream 11 for some stuff. It’s a little laptop with a relatively obscure Broadcom wireless card. Rhel removes support for old and unpopular hardware pretty frequently and doesn’t support that network card. To get it working on that little pc I ended up building the module from source (available in the el9 third party repositories) and doing Broadcom-wl manually every time the kernel updates. If I didn’t want to keep my wits about me, I’d make a script to run when uhh yum? upgrades the kernel to run a reinstall of the driver.