5.1. Linux Won't
Work with All My Hardware
One common "annoyance" is the literature that
warns of dire consequences if you don't record every detail of your
hardware before starting the installation process. You've probably
installed Linux on a variety of computers. While you may never have
had a problem with hardware, trouble does happen. For this reason,
some Linux
vendors
, including Red Hat and Novell, do test and
certify
hardware
components
as well as entire systems. They offer
more
extensive
support if you use such hardware. Even if you're
using another distribution, their certified hardware is more likely
to work reliably with Linux.
5.1.1. Classifying
Hardware
Any A+ certified hardware technician can list
the hardware components on a computer. A Linux geek can cite the
compatible components, such as the chipsets associated with a
specific wireless card. He can use this information to compile the
most efficient kernel for his system.
|
The A+ certification was developed by CompTIA,
primarily as an entry-level exam for Microsoft computer hardware
technicians. As someone comfortable with Linux, you know so much
more about computers. The entry-level CompTIA Linux+ exam
(www.comptia.org/certification/linux/) includes a significant
hardware component. Other Linux certifications include those
released by the Linux Professional Institute (www.lpi.org), Novell
(www.novell.com/training/certinfo/), and Red Hat
(www.redhat.com/training/certification/).
|
|
If you're installing Linux at home, consider
whether your system has any of the common components in Table 5-1,
and ensure you know at least the make and model of each component.
If time is limited, focus on the components that you configure
during the installation process: the
size
of the hard drive(s),
CPU(s) type, amount of RAM, and video card chipset.
Table 5-1. Common hardware
components
|
Component
|
Key information to learn
|
Additional information
|
|
Motherboard/BIOS
|
Integrated support (e.g., video)
|
A BIOS upgrade may add useful options.
|
|
CPU
|
Type (x86 [e.g., i386, i586, i686], ia-64,
Itanium)
|
Some distributions may be built for your
CPU.
|
|
RAM
|
Amount
|
Minimums vary by distribution. Some BIOSes can
detect only a limited amount of RAM.
|
|
Video card
|
Chipset
|
If Linux can't detect your chipset, get the
Horizontal and Vertical refresh rates.
|
|
Hard drive controller
|
IDE, SCSI, SATA, RAID support
|
SCSI and SATA can support more than the standard
4 IDE
drives
.
|
|
Network adapters
|
Chipset, revision
|
If Linux doesn't detect your adapter, knowing
the chipset and revision level can help you find alternative
drivers.
|
|
Sound
|
Chipset
|
Most have MIDI/ALSA support.
|
|
Hard drive
|
Size
|
A few drives are not supported; avoid the same
IDE cable for multiple drives.
|
|
Pointing device
|
Mouse protocol
|
Most two-button mice can imitate the middle
(third) button.
|
|
Keyboard
|
Keyboard type
|
Usually associated with a language.
|
|
Modem
|
Connection (PCI/USB/ISA)
|
Microsoft-dependent hardware discussed
later.
|
|
Printers
|
Parallel/USB
|
Microsoft-dependent hardware discussed
later.
|
What
follows
are solutions to the most common
hardware annoyances, with general guidance that you can follow for
unspecified hardware problems. Ideally, you should classify your
systems or hardware in the following categories:
-
Certified hardware by a distribution company
-
Compatible hardware, as
classified
in one of the
Linux hardware databases
-
Additional Linux-compatible hardware, which
requires additional research, including the Linux Hardware
HOWTO
-
Linux hardware in the works, with pre-release
drivers
-
Incompatible hardware, awaiting development
5.1.2. Certified
Hardware
The first thing to check is the web site for
your Linux vendor. They maintain lists of hardware and systems that
they've tested. You can find Red Hat's list at
http://bugzilla.redhat.com/hwcert/; Novell/SUSE currently maintains
their list (English version) at
http://hardwaredb.suse.de/?LANG=en_UK. If you're lucky, you're
working with complete hardware systems certified for a specific
distribution. Red Hat and SUSE have
tested
a number of complete
servers, workstations,
notebooks
, and more. If you are installing a
Linux distribution on certified hardware, you should have no
problems, and you may be able to get additional support for your
systems.
One
implied
category of certified hardware
consists of computers where Linux is already
preinstalled
. There
are a number of vendors, including big
names
such as HP and Dell,
who sell systems where they install a major Linux distribution for
you. They support their systems with the originally installed
operating system. All you need to do is keep it up-to-date.
However, if you add hardware or a new Linux distribution, you may
be on your own.
5.1.3. Compatible
Hardware
Red Hat and SUSE, among others, maintain a
database of compatible hardware. Such hardware has been tested,
often by
employees
associated with that distribution. This is known
by Red Hat as "compatible hardware" and by SUSE as "ready for SUSE
Linux." While distributor companies may provide limited support for
such hardware, there may be interactions such as IRQ conflicts
beyond their control.
|
Red Hat has recently changed their hardware
database to focus on compatible hardware systems. As of this
writing, there are very few individual hardware component
compatible with Red Hat Enterprise Linux 4.
|
|
{% if main.adsdop %}{% include 'adsenceinline.tpl' %}{% endif %}
As Debian is built by volunteers, they do not
have a program of certified hardware. But as with any Linux
distribution, you can start your hardware checks with the Linux
Hardware HOWTO, available from
http://www.tldp.org/HOWTO/Hardware-HOWTO.
5.1.4. Additional
Linux-Compatible Hardware
The databases provided by the Linux
distributors
can't keep up with the torrent of new hardware. They may not have
updated their databases for the latest Linux drivers. So if you
don't see your hardware on a compatibility list, don't give up! I'd
look in five areas:
-
Check the web site associated with your
hardware. You might just find a new set of Linux drivers, ready for
download. If you're lucky, you may get an RPM or DEB package that
you can install directly on your system. Alternatively, if you have
to compile drivers from their source code, you may need to install
the Linux kernel source code for your system. Watch the
Makefile
associated with such
source code; you may need to modify its settings.
-
At other times, Linux compatibility may be there
where you least expect. The chipset associated with a component may
be produced by a third company.
-
Third, Linux drivers for earlier versions of a
component may provide partial compatibility. For example, the
drivers associated with a version 1000 scanner may provide
sufficient functionality if you're working with a version 1100
scanner.
-
Fourth, there are developers who enjoy cloning
drivers for new hardware. Just as the original Linux developers
cloned the functionality of Unix, the Linux hackers of today create
new source code that emulates the functionality of proprietary
drivers. Sometimes hackers build the functionality with original
code; other times they may build wrappers that allow use of drivers
built for other operating systems. As
open
source developers want
to share their work, their progress is usually available online.
Some are organized into SourceForge groups, which are listed at
http://www.
sourceforge
.net.
-
Finally, you sometimes may be able to extract
the drivers by recompiling the kernel. I describe the recompiling
process in "Recompiling the Kernel" in Chapter 7.
5.1.5. Linux
Hardware in the Works
Linux hackers are constantly at work on
incompatible hardware. They lobby hardware vendors to release their
source code. They clone drivers for desirable peripherals. The open
source nature of Linux means that the development work is
transparent. If you have the time, there are a
multitude
of
projects where you can help. SourceForge is the home of a number of
Linux hardware projects.
The people behind Linux distributions are often
cautious. Many won't include a developmental driver until it is
tested and proven to work, without
causing
trouble with other
systems. But if you
absolutely
need that wireless card, that
scanner, that memory stick, etc., developmental drivers may be your
only choice. And if you have to compile the driver into your
kernel, that's another annoyance we'll work through in "I Need to
Add a Custom Kernel Module" in Chapter 7.
Any developmental software that you install may
be less than complete. For example, you may need to configure a
script to load the appropriate drivers the
next
time you boot
Linux. If you want to run the script during the boot process, you
can make it part of the appropriate boot script from the following
table:
|
Distribution
|
Script
|
|
Debian
|
/etc/init.d/local
|
|
Red Hat/Fedora
|
/etc/rc.local
|
|
SUSE
|
/etc/init.d/boot.local
|
These files are often empty; when you add the
commands of your choice, they're run automatically during the boot
process. You'll actually have to create
/etc/init.d/local
on Debian Linux; all you
need is to start the script with the first line to use the bash
shell interpreter, followed by the full
path
to the commands you
need:
#!/bin/sh
/path/to/command switch
You'll need to make sure the command starts in
the appropriate runlevels, preferably after other scripts, with the
following command:
update-rc.d local defaults 99c
5.1.6.
Incompatible Hardware
The resources of the Linux community are
limited. They may not be working on the hardware that you need.
There are third parties who can help, for a fee. For example, Xi
Graphics' DeXtop (http://www.xinside.com) and SciTech's SNAP
graphics (http://www.scitechsoft.com) provide proprietary drivers
for many
otherwise
incompatible graphics cards. Linuxant
(http://www.linuxant.com) provides a wrapper that uses Microsoft
Windows driver software for network cards.
If you're brave and dedicated, you can start
your own Linux hardware project. A good place to start is
SourceForge, where you may ask for help from those working on
related
projects. Alternatively,
Linux
Device Drivers
by Jonathan Corbet et al. (O'Reilly) is also
an
excellent
resource, as it can help you identify starting points
from related hardware.
|