How to troubleshoot hardware problems in Linux

Dedoimedo published a tutorial explaining how to troubleshoot hardware problems in Linux, including classification of problems, methodology, backup & updates, /sys pseudo-filesystem, tools like lspci, lsmod and dmesg, boot messages, system logs, BIOS updates, online resources, other tips, and more.

Here's a tricky tutorial. I've contemplated for a long while whether to write it at all, the chief reason being that troubleshooting hardware-related issues is probably the most difficult part of the domestic computer experience. Even highly experienced users will sometimes face a bumpy ride when trying to resolve a delicate, erratic, weird, not fully diagnosed mismatch between hardware and software. Hit the Web, and you'll find over 9,000 unrelated cases, dying forever alone in empty forum threads.

However, me being me, a highly pretentious geek self-deluded in my own importance and ability to write most cunningly, I will try to teach a handful of tips and methods that can help you understand, pinpoint and hopefully resolve hardware problems, on your Linux box no less. This tutorial is not guaranteed to be a 100% success, and the material will most likely be somewhat hard to follow, but you just might learn a few useful things. Follow me.