These days, there are many reasons why you may ponder migrating from Windows to Linux, from lowering total cost...
of ownership to having less downtime to breaking free of vendor lock-in.
You've got your reasons, Now you need the tools. This tip offers insights on software and resources for assessing the fitness or suitability of a specific hardware configuration before you commit to doing away with the old in favor of the new.
Conventional wisdom dictates that hardware specifications that satisfy minimum requirements for Windows will also do the same for Linux. But behind that bland generality lurks interesting potential stumbling blocks.
One stumbling block is compatibility, and in PC migrations device driver compatibility is the main headache.
Where Linux driver support isn't available from the vendor -- usually in some form of closed-source binary driver code for various Linux distributions and kernel revisions -- it must be reverse-engineered and beta-tested before it becomes acceptable for production use. Therefore, we strongly recommend that organizations pondering the Windows-Linux move use a current revision of popular distributions (Red Hat, Fedora, Debian, and so forth), so as to ensure access to the widest and most robust selection of device drivers.
Within Windows, there is no better tool to quickly assess PC hardware than the Device Manager. Its convenient, at-a-glance tree index of every component category makes it incredibly useful, and it's bundled with Windows. It's also quite simple to use. Moreover, you can print its entire component tree by accessing the Print item within the Action menu entry.
Another handy utility that's more thorough, yet portable enough to run from a floppy or even the tiniest USB drive, is MvPCinfo. The current version, priced at just $25, provides tabbed browsing for each device category, as well as an in-depth description for every device in or on a PC that Windows recognizes.
Once you identify each hardware component and its related chipset and part revision, you can then begin the sometimes tedious process of locating each necessary driver. The Linux Documentation Project (TLDP, for short) provides a well-regarded repository for definitive Linux how-to guides and offers the prevailing standard for documentation under the subject heading, Linux Hardware Compatibility How-To
Distro tools, and Knoppix rules
For any migration, there is no better validation tool than the Linux distribution you intend to use. However, using it requires that you make an initial installation pass, which can entail a meandering path of uncertainty riddled with \potential and unforeseeable problems. Take, for example, the installation of SuSE 9.2 from a DVD-ROM based image loaded from a Serial ATA (SATA) optical drive. While the BIOS will happily recognize that DVD drive and pass the kernel loader code on to the processor, once inside the SuSE installer the DVD image is no longer recognized. Unless you know how to invoke SATA compatibility manually during Linux installation -- an act that demands prior experience with both products -- this bird will never take flight, and installation will fail. The most common work-around is to dig up a conventional ATA optical drive and use it for installation, hardly an elegant solution!
Knoppix is widely regarded as the single best utility for testing hardware compatibility without requiring local driver changes or updates. When used as an in-memory operating system (a RAM-disk image), Knoppix enables you to qualify PC hardware for suitability with several Linux distributions, primarily variants of Debian, from which Knoppix is derived, or Ubuntu, which is closely related to Debian.
For those accustomed to VMWare, a quick configuration of the VMWare commercial suite -- or even the free stand-alone VMPlayer enables you to run this test inside Windows. This process can quickly assess a particular hardware configuration for Linux driver support.
More device driver woes
Occasionally, you will run into cases where the Linux either misidentifies devices or fails to identify them entirely. This demands further investigation. So, crank up your Linux distribution and look inside for some research tools.
Most Linux distributions include fdisk , a utility to manage Linux disk partitions. When issued with the –l parameter -- namely, fdisk –l -- all currently identified storage drives (including USB and flash-based devices) are enumerated.
A great tool is dmesg, which dumps kernel-buffered boot-time information including initialization procedures for all plugged-in hardware, along with vendor name and part revision data.
Here's a short list of other useful tools, most of which are present on the current version of Knoppix:
- hwdata-knoppix - This is a tool for hardware identification / configuration data.
- hwinfo - A simple program that lists results from the hardware detection library.
- hwscan – This part of the hwinfo utilities scans for currently connected hardware.
- hwtools - This collection of utilities aids hardware-based troubleshooting and optimization.
- lspci – This lists PCI devices currently attached.
- lshw - Known also as list hardware, this is a tool to provide detailed information on system-wide hardware configuration.
- lsusb – This is part of the usbutils utilities for inspecting USB-connected devices.
- system-info - This is a third-party shell script that enumerates hardware devices in a neatly organized flat text file.
The preceding packages are generally available through the distribution package management utility when these utilities don't appear by default within your Linux installation. In addition, the following text entries in the Linux native process accounting directory path also make mention of system hardware information and appear in every Linux system that has a /proc directory component at the top-level:
- /bin/cat /proc/cpuinfo
- /bin/cat /proc/pci
- /bin/cat /proc/interrupts
- /bin/cat /proc/meminfo
Using a recent Knoppix image is easily the most appealing and efficient means to test PC hardware for Linux compatibility. Knoppix eliminates most guess and grunt work ordinarily involved in the research phase of PC migration.
About the authors: Ed Tittel is a full-time freelance writer and trainer based in Austin, TX, who specializes in markup languages, information security, and IT certifications. Justin Korelc is a long-time Linux hacker who works with Ed, and concentrates on hardware and software security topics. Together, the two have recently authored a book on Home Theater PCs and the Tom's Hardware 2005 Holiday Buyer's Guide.