The first step when preparing for the move to Linux is to make sure that your hardware is compatible. It requires a great deal of research when you get very specific (as I did). For example, I have a Logitech QuickCam Express and I wanted to make sure it would work with the latest Linux kernel. Well initially one would say, "Well it's USB 1.1 it should work in Linux, no problem." My research took things one step further by looking to see if that actual model worked and what it would take (if anything) to make it work right and to see how well it actually worked. This research utilized all the resources I had available to me. Searches on Google, newsgroups, and other Linux oriented web sites were quite helpful. There was never really a lack of information. Here is the hardware that I'll be using regularly in Linux:
Asus A7V Motherboard: This is truly a great motherboard. I've had it for three years and have never really had a problem with it. It uses the VIA KT133 chipset and has an onboard Promise PCI ATA-100 controller in addition to a standard IDE controller. This allows for four separate IDE channels with a total of eight IDE devices. It's a very nice feature of any motherboard especially in the configuration I have (every IDE drive gets its own channel, no slave drives). Back when the board was first released the Linux kernel didn't have a clue what to do with the Promise controller. Eventually people made some patches for the Promise controller and those patches have been incorporated into the Linux kernel for quite some time now. The ATA-100 controller was my only true concern with this motherboard. Since that is thoroughly supported by today's kernels then there shouldn't be a hardware compatibility problem here.
AMD Athlon 1.1 GHz Processor: This was never really an issue in my mind but just to make sure I checked the Linux Hardware Compatibility HOWTO and sure enough it said Athlons were compatible. As a matter of fact just about every processor ever put out by AMD is compatible (barring a few bugs with the AMD K6 and K6-2 processors).
384 MB PC133 SDRAM: No issues here either.
ATI Radeon VE AGP Graphics Card: One of the reasons I buy ATI cards is for their Linux compatibility. The ATI web site basically tells to see the XFree86 web site for support. The Linux Hardware Compatibility HOWTO states in plain English that the ATI Radeon VE graphics card is compatible but I wanted to make sure of this. So I ventured off to the XFree86 web site and pulled up the documentation on the latest version of XFree86 and looked in the drivers section for Radeon. The Radeon section explained quite a bit about the XFree86 driver for my graphics card. I'll be using the driver for the RV100 ATI chip. Simple enough.
Western Digital 200 GB and 20 GB Hard Disk Drive: Considering the Promise ATA-100 controller is compatible there really shouldn't be an issue with the hard drives being compatible. However, with a 200 GB hard drive some partitioning should definitely be done to ensure maximum stability and performance. Also, selecting the right filesystem will be critical to the performance of these hard drives. The subjects of partitioning and filesystems are for another article though. Another concern with the 200 GB hard drive was would my decrepit Asus A7V motherboard support it. After a little research I found that the 200 GB hard drive would be supported with BIOS version 1011 and later.
Creative Labs SoundBlaster Audigy MP3+: Pretty much all Audigy sound cards are the same unless you have the Audigy drive. But, I listen to music quite a bit threw my Logitech Z-640 speakers so the sound quality and Audigy performance are of serious concern to me. Creative's web site was of little assistance but it did link to Creative's Open Source web site which pointed me in the right direction. There is a SourceForge project for Audigy drivers (emu10k1). There is also emu-tools, which are essentially Audigy configuration tools, available as an RPM or tarball. Now their documentation wasn't great but should the distro I choose not already come with these drivers I'll need to make sure I have the kernel sources available and follow the directions they provide. Support for playback is there and the IEEE-1394 port will be supported by the OHCI-1394 drivers but the site did mention that MIDI and recording support is missing or still flaky. I hardly ever use MIDI and recording audio is something I rarely do via the Audigy. Being that my two top choices of Linux distributions are Mandrake and Red Hat (in no particular order) I checked their sites for support of the Audigy series sound cards. Red Hat says that Audigy sound cards are compatible; Mandrake has no mention of Audigy in their hardware compatibility database. This isn't surprising considering the lack of attention Creative has given to even its Windows drivers.
Linksys LNE100TX Network Adaptor: This is another one of those "no brainer, of course it's compatible" devices but Linksys wasn't even mentioned in the Linux Hardware Compatibility HOWTO (which really doesn't mean much). I'm doing this research to ensure that I know about the smallest problems I might encounter so I headed off the Linksys web site. The Linksys web site actually surprised me with the amount of documentation it had about installing this card in Linux. Essentially, the latest tulip drivers should have support for this network adaptor but just in case Linksys also provides Linux drivers available for download off their web site.
Lite-On 32x IDE CD-RW Drive: I don't remember the exact model number but the Lite-On web site indicates that the two models are basically the same. Detection shouldn't be too hard because this is an IDE drive. CD Writing isn't an issue in Linux these days but there is always the CD-Writing HOWTO should I run into a problem in this department. There is also a plethora of software available for CD-RW uses in Linux.
Lite-On 16x IDE DVD Drive: Again I don't remember the exact model number and there is really nothing to indicate a difference between the various 16x models. Here is a quote from the Linux Hardware Compatibility HOWTO, "Most, if not all, ATAPI and SCSI DVD-ROM and writable DVD drives are supported." There are also quite a few available software DVD players for Linux. Another no brainer.
That about sums up the internals of my computer. The next section of this article will discuss external pieces of hardware. Something to keep in mind when reading the next section is the way devices are connected. USB is fully supported in the 2.4.x Linux kernel.
HP DeskJet 5550 Printer: This is really a great printer, Carri loves it because it puts out great pictures, and I love it because it can spit out pages and pages of text like there's no tomorrow (thanks to the 8 MB buffer). We'll be using the USB 1.1 (2.0 capable) interface for this printer due to the increased throughput in comparison to the parallel port. When looking for information about Linux and this printer I came across LinuxPrinting.org which is a great site and lists almost every printer I could think of. LinuxPrinting.org says that this printer works perfectly with Linux and that there shouldn't be any problem with auto detection. It recommends using the hpijs driver (created by HP and distributed under a BSD-like license) for the best performance. Here is a quote from the hpijs web site, "In Draft and Normal modes the DJGenericVIP device class will detect photo paper and automatically print in Photo mode. HiRes is another photo mode which supports the maximum resolution of the printer. HiRes mode does not do auto media detection." This is very comforting.
Canon CanoScan LiDE 30 Scanner: We'll also be using the USB 1.1 (2.0 capable) interface for this device as well. I wasn't even thinking about Linux compatibility when I bought this scanner and it's so new I would be livid if I couldn't use it under Linux. Well scanning in Linux pretty much means you'll want to use SANE (which stands for "Scanner Access Now Easy"). The SANE site explains why TWAIN isn't too much of an option for Linux systems, "Simply put, TWAIN does not separate the user-interface from the driver of a device. This, unfortunately, makes it difficult, if not impossible, to provide network transparent access to image acquisition devices (which is useful if you have a LAN full of machines, but scanners connected to only one or two machines; it's obviously also useful for remote-controlled cameras and such)." The SANE site said I should be using the sane-plustek backend but it also mentioned that this driver was a beta version and commented that it had poor color picture quality.
Not being satisfied with that information I started searching for a "better" solution. I went from the SANE site to Jonathan Buzzard's site. He states on his web site, "If you are in the market for a new USB scanner to use under Linux then I strongly recommend that you select an Epson scanner." Looks like I might have goofed up on the purchase of the scanner. But, still searching for a better solution, I went from Mr. Buzzard's site to Canon's SourceForge home page which didn't offer any support for the LiDE 30. Canon's commercial web site didn't even mention Linux (just Mac and Windows). As a matter of fact searching for Linux on the Canon site returns nothing. I did take a look at the sane-plustek man page and also did a search on Google for more information but it appears I'm stuck with sane-plustek for the time being. I'll be waiting for the driver development to catch up to this product's true performance. This is disappointing but tolerable, at least it is supported somewhat.
Logitech QuickCam Express Web Cam: This web cam uses USB so connectivity shouldn't be an issue. The first thing I did when searching for Linux support for this device is a Google search. Google pointed me in the right direction. I ended up at another SourceForge project for the qce-ga driver. Their site details the qce-ga driver and how to install it. This is great but the driver is only one part of the story, I'd need software to record video, take snapshots, etc. with the web cam. So I looked at my Google results again and noticed that a lot of people have this web cam working under Linux with a lot of different software. This device is low priority in terms of getting it working. I'll have to do more research to get it working once I have Linux up and running. Video for Linux (V4L) is an option.
Microsoft IntelliMouse Explorer Optical Mouse: I know, it's Microsoft. But you know what, it's a great mouse. It's big enough so that it suits my rather large hands well and it has four buttons and a wheel. My research took me back to the XFree86 web site which said this, "This mouse [Microsoft IntelliMouse Explorer] has a wheel which also acts as the button 2 (middle button). There are two side buttons; they are recognized as the buttons 4 and 5. The wheel movement is recognized as the Z axis motion." Great, XFree86 should support this with a little tweaking (if it's not auto detected).
Canon ZR45MC Camcorder: This is where it might get a little tricky. Digital Video (DV) editing isn't very mature in Linux, yet. But there are quite a few programs that do DV editing. The thing about this camera is that it uses FireWire (IEEE-1394) to extract video and USB to extract still pictures off of a flash memory card. Considering my research of the CanoScan LiDE 30 resulted in no help from the Canon web site I started off by going to the Linux1394 web site. The Linux1394 web site gave me a great deal of information about getting FireWire devices working under Linux. But I was looking for specific information about my camcorder which I found on the Linux1394 hardware compatibility list. The HCL says it works with modules ohci1394 and raw1394. It also mentioned that the USB interface isn't supported by Linux1394 (obviously). Video 4 Linux might be able to work with the USB interface but I'm sure whatever I decide to go with for the web cam will work with the USB interface of the camcorder.
There will be some issues here and there getting some of my hardware working but everything should work. At least now I'll know what to expect during hardware detection and setup.
Resources: comp.os.linux, Asus, Linux Hardware Compatibility HOWTO, ATI, XFree86, Linksys, Lite-On, Open Printing, HP Linux Imaging and Printing, SANE, USB Scanners under Linux by Jonathan Buzzard, Linux Driver for Quickcam USB cameras, Video 4 Linux, Linux1394