Hi guys! I'm in need of a little brain-storming which is going to be a mixture of hardware detection and database creation.
I asked yesterday what a good tool would be to read an attached monitor's possible settings (freq/res) and @Curaga noted ddcprobe being one such possibility. After digging I've found ample references to the program, but haven't come across an origin (site) thus I grabbed a package (vbe) which contained the sources and split things off so that it compiled just the ddc apps - which worked flawlessly on the Intel card I was using to test DosBox which another user was having issues with.
This got me thinking into a "Standard User" concept... fire up TC (from CD or similar) for the first time, the typical non-nerd has a good chance of being clueless as to what hardware lies within, so I was thinking that maybe it's time to build a method to scan BIOS, PCI, USB, etc. and generate a list of hardware devices and the likes, then cross-reference this list with possible and likely drivers and support packages from within the TC repo that fit the bill in order for the system to operate at (hopefully) peak performance; especially with X users.
This is theory-to-concept stage, so the goal with this post is to have everyone add to the post their experience and knowledge of 'existing' projects/software already in play (with the least number of dependencies, preferably) which obtain hardware related information. Parsers will have to be created for each to make them useful, but the first step is to obtain the information.
From what I've read, ddcprobe works xx% of the time, so my thinking is to have others implemented which may be able to help close the gap closer to 100%. (ie: If the most prominent fails, try the next in line, etc. until we run out of contenders.)
Rules are simple: L/GPL or similar, sources are vital - in the final product this will likely be built into a modular, single package such as
hwscan class [contender] and hopefully if all succeeds, we'll end up porting this across the board, which I imagine will come in handy quite a bit when dealing with development boards such as Pi and AW.
Goal: When the system first boots, we want to run a scan for storage devices, network devices, etc. which will get us cleanly onto stage 2. Once we're ready to load up extensions, we'll want to run a second level scan to look for audio, video, dev/video, printers, etc. If extensions are already loaded we can kick back and relax. In the event a device isn't matched up with given fw/sw we add to a text file for missing extensions. If X is going to load, we flag the user for these to be installed, otherwise we do the same on the CLI side. When it comes to getting from frugal to operational, this tends to be one of the most problematic areas users post about... needed extensions to get up and running.
Needed: Any function, software package, script, etc. you can think of which has the ability to display hardware information, especially but not limited to the following categories:
Power: PSUs, batteries, thermal, voltage, etc.
Video: Graphics Card(s) and the functions they support
Monitors: The number of monitors and the features of each
Audio: Focused right now on audio i/o (Realtec) more so than input (ATI-AIW, EZcap)
Storage: Controllers and devices attached to them
Communications: wired/wireless/bluetooth, modems, serial, parallel
Input: KB, Mouse, Touch, Joy, etc.
Printers, Webcams and other accessories.
Please post suggestions in the following format so we can keep this organized:
[CLASS] [SUBCLASS] [NAME] [LINK] such as:
monitors : multiple : ddcprobe :
http://www.somewhere.com/path/to/detailsExample uses: (example logic - not actual code)
if [ -n "`hwscan power:battery`" ]; then (bootcode) laptop=1; fi from within tc-config where the output from hwscan would be empty if it doesn't exist or is internally disabled or non-empty (details given by hwscan) if a battery is installed and enabled.
gpu=`hwscan video:primary` (returns ATI Radeon xxx)
(scans for firmware-radeon - not installed)
if [ Xorg ] note requirement for firmware install, otherwise suggest it (one-time)
wifi=`hwscan comm:wifi` (returns null)
Don't bother loading wireless related extensions.
If non-null, suggest (once) the installation of wireless/tools.
Thanks to all who read... and more so to who assist in the collection!