Contrary to UNIX, GNU/Linux is not created as a single product.
Every distro is a Frankenstein creation of a Linux kernel, GNU userland, either one of the three X11 graphical servers or one of the many Wayland graphical servers and some random windowmanager or desktop suite.
And every kernelchange can potentially change the list of supported hardware,
so it is undoable for a distro to keep track of that.
You can search this directorytree to find out what the newest kernel supports:
Those tools get 100% of their info from /proc and /sys so they get it directly from the running kernel and combine that info with this vendor list:
'/usr/share/hwdata/pci.ids'
The pci.ids file is generated from the PCI ID database, which is maintained at https://pci-ids.ucw.cz/
EDIT:
There is also a '/usr/share/hwdata/usb.ids' and a '/usr/share/hwdata/pnp.ids'
Yes, those are virtual blockdevices used for things like mounting ISOs and stuff
like that. It is also used to mount (the read-only filesystems of) snaps.
IMHO: if live CD/USB installation media runs smoothly in trial mode and recognizes internal HDD, then hardware compatibility test has been passed OK. Has not it?
First is that live CD won't launch at all. The only clue to a problem will be transient terminal output.
Second is the case that live CD will start and won't work as expected. Now there is a chance to find out the problem in kernel and boot logs/messages on RAM drive.
IMHO, HW compatibility testing using live CD is much simpler and more reliable than a priori analysis.
Thank you, Eugene. I very much appreciate you perspectives and opinions.
While I am often reactive to things that arise during coding, when it comes to "installation", I much prefer to be pro-active and anticipatory, rather discover the install failed after hours when I can't rush to a store to get the missing component or, worse yet, have to order it and wait for days/weeks, before being able to recover.
Once I start, I don't want to "roll-back", don't want to reinstall what I had before.
We'll see how far I can get with my work in progress.
----- edit -----
Rewinding my thought process ...
I've "dumped" my earlier response because I realized that I was not immune to "brain-farts" which us old folks are prone to have.
I just realized that I should build on the cumulative wealth of knowledge and experience that is already documented in the source code for those tools (lshw, lspci, lsusb, hwinfo).
After all, that is what open-source is all about, right ?
After digging into the source code offerings on Launchpad (looked at each of lshw, lsusb, lspci, hw-probe and hwinfo), I am forced to accept the fact that I am completely out of my depth, in terms of knowledge required to rebuild tools, so I am categorically abandoning the project I outlined and will submit to what everyone seems to offer as the "go-to process", namely "subject" myself to a Live distro test, and react to the outcome, in the hopes that I never encounter issues.