Hardware Support

Overview

Linux supports nearly all modern hardware designed for the x86 architecture, with the exception of some hardware exclusively designed for Microsoft Windows (some models of winmodem and winprinter), as well as products made by manufacturers who for some reason do not want to give out specifications for their hardware, so that drivers may be written.

The information given in this manual is by no means full, so, if it does not answer your question, do not start writing to ALT Linux mailing lists right away. First, please refer to:

  1. FAQ and HOWTO for Linux. They may be found both on the Internet and on the distribution disk;

  2. mailing list archives and Internet discussions;

  3. source code - for those who want to understand it.

From the perspective of a system administrator, whose responsibility it is to set up hardware and to test its performance with Linux, hardware can be distinguished by its type, manufacturer and connection method (connector type).

The ALT Linux 2.3 Compact distribution contains the following utilities for hardware configuration (combined in DrakConf):

  • For PCI, AGP and USB devices: kudzu. It is recommended to run the kudzu service automatically on system startup; the devices removed or added since the last bootup are set up automatically.

  • Sndconfig utility is used for audio cards (mainly ISA).

  • For video cards and the XFree86 graphical system: XFdrake;

  • For the mouse pointing device: mousedrake;

  • For the keyboard: keyboarddrake;

  • For printers: printerdrake;

  • For network connections (Ethernet, ISDN, ADSL and modem connections): draknet.

Today, the most commonly used interfaces to attach devices to the computer are PCI, AGP and ISA buses[2]. For connection of external devices, USB, PCMCIA, SCSI and COM (serial) and LPT (parallel) ports are used.

It is the easiest to check Linux compatibility for those devices that are using the PCI bus. The lspcidrake program displays information about all connected PCI and USB devices. The left column of the lspcidrake output contains the driver (a kernel module) recommended for the device found.

This is possible because every PCI or AGP device has two unique identifiers, known as PCI ID's. The first number identifies the device manufacturer; the second one defines the device itself. The distribution contains the package ldetect-lst, with information about available or missing drivers for every PCI device found at the moment when /usr/share/ldetect-lst/pcitable table is created. If a configuration change takes place and the system finds an appropriate driver for the device, it is set up automatically by the kudzu utility (initially, it is done by the system installer).

Problems can occur if a driver for your device is absent or if ID's of the device are unknown or if the device cannot be found in the table. In this case, it is recommended to set up the device manually or write to the mailing list of the distribution. If problems with the PCI device occur, it is strongly recommended to send the following information about it:

  1. its name, manufacturer, any information found on the biggest chips, and so on;

  2. output from lspcidrake -v ;

  3. contents of /proc/bus/pci/devices file;

  4. description of the problem.

USB and PCMCIA Buses

To support “hot plugging” for USB and PCMCIA devices, the ALT Linux 2.3 distribution contains a special program, hotplug, designed to automatically start drivers and run automatic configuration programs. This program is contained in the hotplug package, which is installed and used by default.

In the case of any problems with USB devices, it is necessary to find the information about your device in the /proc/bus/usb/devices file. This file contains a lot of technical information. To filter it out, you can use such utilities as usbview. After such filtration, the information becomes clearer for a beginner. If none of the drivers can identify your device, this means that it is not supported yet. In order to get help, you can use the ALT Linux mailing list. In this case, it is strongly recommended to send the contents of /proc/bus/usb/devicesfile.

For information about USB support in the Linux operation system, see the site http://www.linux-usb.org/.

ISA Bus

For the ISA bus, the following setup methods are available: if the device corresponds to the ISA Plug'n'Play standard, its resources can be configured using the isapnp program. In other cases, you will have to configure the card (for example, an audio card) either using the jumpers on it, or using the utility that is most often distributed with it on the driver disk (for the majority of NIC's: Network Interface Cards). In any case, all these parameters have to be manually specified to the device driver to make it work. Fortunately, ISA devices are used less often now.

Serial, Parallel or Game Port Devices

As far as devices for serial and parallel ports, as well as joysticks, are concerned, nearly every case requires manual setup of a driver for the corresponding device. The only exception here are external modems with serial interface which need no drivers and work through serial ports: /dev/ttyS0 (COM1), /dev/ttyS1 (COM2), /dev/ttyS2 (COM3), /dev/ttyS3 (COM4) ÉšÔ.šÄ.

These devices (with the exception of printers) should be in most cases set up manually. For example, to set up a modem, you have to identify the COM port to which it should be connected. To set up a joystick, you have to find its driver and manually configure it by means of editing configuration files.

Let us now look through some options of setting up various devices.

Motherboards and Processors

ALT Linux 2.3 Compact supports all modern 32-bit processors of the x86 architecture, starting with Intel Pentium and compatible. If the processor is non-faulty and properly cooled, it should not cause any problems. It is not recommended to use processors in overclocked mode [3].

To check the processor performance under critical workload, it is recommended to run the burn program in one session (from the cpuburn package) — for example, burnP6 for Intel Pentium i686 or AMD Athlon, and compilation of some big package (which is known for certain to compile) in another one. Usually, if the cooling is not proper, the system does not freeze at once, but the compilation stops because of errors.

Errors can also occur because of poor or unstable random access memory module (RAM) - to check it, use the memtest86 package, which adds another option to the system start menu.

The memtest86 program can also be run from the distribution installation disk. To this end, select the Memory Test section rather then the installation section.

Usually a special setup of motherboards is not required: with rare exceptions, everything works with the default settings.

When setting up BIOS, attention should be paid to the following parameters:

  1. Use PNP OS parameter (or, PNP OS installed, as a variant) - activation of this parameter (ON/ENABLE) makes BIOS stop configuring PnP devices, leaving it for the operating system. When using Linux, disabling this parameter (NO/DISABLE) can help you initialize some devices.

  2. For the motherboards with chipsets produced by VIA (KT133, KT133A, KT266, KT333 etc.) it is recommended to disable the Passive Release and Burst Read/Write parameters[4], which sometimes can cause system freezes and other problems.

  3. If there is an AGP video card on the mother board, it is recommended to set the AGP Aperture Size to not less than 64 MB, for the case when the volume of random access memory is greater or equals to 128 MB. In the case when the size of random access memory is less than 128 MB, set the AGP Aperture Size to half of this size or less (Ô.šÅ. if you have 64 MB, set this parameter to 32).

Quite often the problems are caused by some errors in BIOS. If you face a strange problem (for example, a definitely supported video card is not working) — it is recommended to look for new versions of BIOS on the web site of your motherboard manufacturer and, if the list of changes in the recent versions contains the notification that your problem is solved, to update BIOS. For instance, the testing of Asus A7N266-E motherboard (based on nForce 420D chipset) showed that the built-in USB controller does not work simultaneously with a running APM module. Update of BIOS from version 1001A to 1001D solved this problem.

Keyboard

From the point of view of Linux support, keyboards can be distinguished by connection type (USB and the usual PS/2 or DIN), and by the number of keys(101, 102, 104 ...).

Usual keyboards are set up automatically. The additional (so-called “Windows”) keys are automatically activated both in the console and in X Window System. The only thing that needs to be done is specifying the keyboard layout pattern during system installation, or, later, by means of keyboarddrake.

USB keyboards are also identified automatically; the only thing that is required for their proper functioning is a configured USB interface and installed hotplug package. Configuration of keyboard layout does not differ from that of the usual keyboards.

Important! USB keyboards do not work in the modes, which do not start the usb service (for example when init=/bin/bash parameter is specified to the kernel during system startup).

Mouse

Mice are distinguished mainly by connection type: USB, PS/2, COM and BusMouse (today, the first 2 modifications are used the most often), and beside this, by the number of buttons and the availability of the mouse wheel.

Because the console and X support the third mouse button (it is used for the paste function), it is recommended to use 3-button mice or wheel mice; if you use a mouse with 2 buttons, the effect of pressing the third button can be emulated by simultaneous pressing of both available.

The mouse is set up during the installation, and, after this, it can be set up by means of the mousedrake utility. In the settings of this program, select the following: mouse connection type, protocol (for the PS/2 and COM mice), and activation of the third button emulation.

Let us carefully consider the existing mouse protocols:

USB

There are only 2 setup options: a usual mouse and a wheel mouse. So, it is sufficient to look at your mouse to make the choice.

PS/2

In this case there are some more options:

  • usual mouse with 2 or 3 buttons: select Generic;

  • Logitech MouseMan+ or GlidePoint (both are seldom used): select the corresponding one;

  • wheel mouse: you should select one of the following options (depending on the manufacturer):

    • If the manufacturer is Genius, look at its name (usually it can be found on the bottom of the mouse) and select Genius Netmouse or Genius Netscroll, although in some cases a mouse with the NetScroll name works using the NetMouse or Generic PS/2 Wheel protocols, so if the mouse does not work, it is worth to try all these protocols. The Netscroll+ mouse also sometimes works when the Logitech MouseMan+; protocol is selected.

    • Microsoft, Logitech or Mitsumi, as well as another mouse with a wheel: try the Generic PS/2 Wheel mouse option;

    • If the mouse still does not work, select the Generic option (unfortunately, the wheel will not work in this case);

COM

Here you can find a great number of options, but most of them are designed for specific and seldom-used mice, like Kensington. For usual mice the following options are available:

  • 2-button mouse: select 2 button mouse;

  • 3-button mouse: this is either a 3 button mouse, or MouseSystems;

  • wheel mouse: select according to the manufacturer (as with PS/2, for mice with unknown manufacturers, try the Generic PS/2 Wheel protocol, it fits in most cases).

Data Storage Devices

Hard Drives

Contemporary hard drives are produced with the following interfaces: IDE, SCSI as well as USB (most of these are Flash cards, connected to the system via a Flash Reader).

IDE hard drives are identified by the system automatically during system startup; they (like other devices on this bus) can be accessed by means of special block device files (/dev/hdXN[5]).

Device Names Are Formed in the Following Way:

  • hda — primary master;

  • hdb — primary slave;

  • hdc — secondary master;

    hdd — secondary slave.

Access to a specific file on the device assumes access to the disk as a whole. Disk partitions can be accessed by means of the /dev/hdXN devices, where /dev/hda1 is the first primary partition on the first disk, /dev/hda2 is the second primary partition. As there can be no more than four primary partitions, the extended partitions start with number 5: /dev/hda5 is the first logical partition in the extended partition of the first disk.

The data exchange protocol for IDE hard drives for all contemporary chipsets is selected automatically during the kernel startup. For a more sophisticated manual setup of IDE devices, the hdparm command exists in the distribution. With it, you can control access protocols (Ô.šÅ. UDMA100, UDMA33, PIO1, etc.), and some other parameters. For more information, see man hdparm.

Important

Be especially careful when using the hdparm program, since incorrect settings can cause data loss and, in the worst case, damage to the hard drive. The hdparm settings can be saved in the configuration files in /etc/sysconfig/harddisk directory (in files named hdX for each device, including CD-ROM/DVD devices), — then they will be applied automatically during system startup.

SCSI hard drives are also identified by the system automatically during the kernel bootup process. The difference between them and IDE for users is in the device names. They are called /dev/sdXN, rather than /dev/hdXN.

USB storage devices are identified by the system automatically at the moment when they are physically connected, if the hotplug package is installed. The rest depends on whether a specific USB device is supported by the system or not. If it is supported, the data can be accessed by means of SCSI interface emulation (for example, as /dev/sda, if this name is not used by other SCSI devices, otherwise the first available name is used). KDE users can work with the device using an icon that appears on the desktop after the USB disk is connected.

CD-ROM (CD-RW) Devices

IDE CD-ROM's are automatically identified by the system during the installation process, and special links to them are created in the /dev directory, Ô.šÅ. /dev/cdrom for the first device, /dev/cdrom2 for the second device, etc. Beside this, the devices can be accessed via the /dev/hdX interfaces for IDE CD-ROM's and via /dev/scdX for SCSI devices. If the autofs service is on, mounting and unmounting of removable storage devices is performed automatically while attempting to read data from a directory where a data storage device was mounted: usually this is /mnt/cdrom.

Running the hdparm command with -E parameter can help in adjusting the speed of spindle rotation for some CD-ROM devices (see also: man hdparm).

Setup of devices with disk writing (re-writing) function (Ô.šÅ. CD-R/RW) is a bit more difficult. Since this functionality is realized by means of SCSI interface emulation, it is necessary to activate this emulation. This is done automatically during the process of system installation if such a device is identified. To add SCSI interface emulation manually, it is necessary to insert the scsi_hostadapter string into the /etc/modules file, and the options ide-scsi units=hdX string into the /etc/modules.conf file, where hdX corresponds to the connection order of CD-R/RW (for example, hdc for the first drive on the second controller). For your convenience, you can add a symbolic link in the format /dev/cdromN, pointing to /dev/scd0 (if no other SCSI CD-ROM is present). As a result, the writing device will be accessible as the /dev/scdN device rather than /dev/hdX. This concerns any IDE devices, but is required only for CD-R/RW, since the cdrecord utility can work via the SCSI interface only.

Removable ZIP Devices

Removable ZIP devices are identified by the kernel automatically during system startup (if these are IDE or SCSI devices), during the physical connection (for USB devices) and manually if the devices are connected through a parallel port (for more information about the setup of such devices, see paride.txt from the kernel-doc package, which can be found in the /usr/share/doc/kernel folder).

The only detail worth noting is that FAT on ZIP disks is usually located on the fourth partition (/dev/hdX4).

Removable Flash Drives and Hard Drives with USB Interface

Those who use KDE should do the following:

  1. Plug in a Flash drive.

  2. An icon will appear on the desktop saying: “Mobile Disk (sda) is unmounted”.

  3. Right-click on the icon to open a context menu for it and select Mount.

IceWM and WindowMaker users:

  1. Insert the removable Flash drive into the USB port. A corresponding string will be automatically added to the /etc/fstab file, such as:

    /dev/sda1   /mnt/storage  auto  noauto,user,kudzu,sync,noexec,nodev,nosuid,iocharset=koi8-r 0 0
                      

    and the directory /mnt/storage will be created.

  2. In the console or emulator, enter:

                      # mount /mnt/storage
                   

    The filesystem of a removable disk drive will be mounted to the /mnt/storage directory.

Floppy Disk Drive

It is identified automatically during system startup. For more information about advanced configuration (for example, to format diskettes with non-standard volume), see floppy.txt from the kernel-doc package, and documentation from the fdutils package.

Video Cards

Overview

For the X system drivers (XFree86, the free version of X is the basis for the graphical subsystem in most Linux distributions), different video cards are distinguished mostly by the chip type used. If a manufacturer of a card has not “adjusted” its work, the same driver can be used with different products that use the same graphics processor.

Configuration of a card can be done with the XFdrake utility, which is automatically run during the installation process and can be run manually after the installation. Like most configuration utilities, XFdrake has an expert mode (--expert option), in which you can manually set up a wide range of parameters.

As mentioned above, PCI and AGP video cards are identified and configured automatically in most cases; if this does not happen, you can try to specify the chip type manually by selecting it from the list. Beside this, it is recommended to read documentation on PCI devices in the current section.

If your video card is identified correctly, and a test picture appears on the monitor, then everything is all right. No further actions are required. Advanced users can perform more sophisticated configuration of the video card. For example, some video cards allow to assign parameters in the XFree86 configuration file manually. Usually, this is /etc/X11/XF86Config-4. Documentation on these parameters can be found in /usr/X11R6/lib/doc file from the XFree86-doc package.

Hardware 3D Graphics Acceleration in XFree86

In Compact distribution, support for hardware 3D acceleration for some video adapters is included. XFree86 version 4.x.x contains code from the DRI project (http://dri.sourceforge.net).

XFree86 version 4.x.x supports the following 3D accelerators:

  • 3DFX Voodoo (from Banshee to Voodoo 5)

  • ATI Rage 128 (PCI, as well as AGP, versions)

  • All models of ATI Radeon

  • Matrox (from G200 to G550, AGP only)

  • Intel i810/i815/i830/i845/i855/i865/i875

  • 3D Labs Oxygen GMX2000 (experimental)

  • SiS 300/630/530 (experimental)

3D acceleration is configured automatically for all stable drivers by default. Experimental drivers may be configured by running XFdrake utility in the expert mode. If you experience problems while using 3D, it is better either to deactivate 3D (it is strongly recommended if you have no vital need for it) or to contact ALT Linux for support. Most likely, the problem will be solved in the new version of XFree86.

For some other video cards (for example, those based on the Kyro II chip) closed-source drivers have been created by their manufacturers and are available on the corresponding websites.

nVidia Video Cards

There are two Linux drivers available for videocards based on nVidia chips. One of them (free, a part of XFree86 package) is rather simple and does not support a lot of functions (such as hardware 3D acceleration on some models of video cards, as well as other extensions). The other driver is not free (it is proprietary, and the source code is not available) and is created by nVidia programmers. To install it, run XFdrake in the expert mode and select XFree86 4.x.x with hardware 3D acceleration. In other modes, the configuration will be done automatically using this driver. To return to the standard XFree86 driver, use the expert mode.

Important

It is not recommended to build this driver yourself; when its new version is released, the best solution will be to update the driver with the operating system kernel from the updates repository. Aside from this, the ALT Linux company is not responsible for the quality of this driver and does not support it, so use it at your own risk.

Monitor Configuration

By default, the XFdrake utility configures your monitor automatically, which is appropriate for most cases. Meanwhile, advanced users can manually change resolution and color depth settings for every monitor-videocard pair in the expert mode. Remember that hardware 3D acceleration works only for 16- and 32-bit color depth (in case of the proprietary fglrx driver for ATI Radeon, color depth should be 24-bit). It is recommended (if possible) to set color depth to 16 bits (default value in most cases).

To get a high-quality picture on the monitor, set up the video modes in the following way (remember that it is recommended to work with the monitor refresh rate not lower than 85 Hz):

  • 14" monitor — 640x480 or 800x600

  • 15" monitor — 800x600 or 1024x768

  • 17" monitor — 102x768 or 1152x864

  • 19" monitor — 1280x1024 or 1600x1200

  • 21" monitor — 1600x1200 or higher.

With all other conditions equal, it is better to select a lower resolution, because in this case the monitor refresh rate will be higher. At the same time, the minimal practically acceptable working mode is 800x600, and resolutions 1024x768 and higher are more convenient.

Professionals can manually configure the special parameters of a video mode, for example, position on the display, refresh rate, non-standard resolution (one of the authors uses a 928x696 resolution on a 14" monitor), etc. It is the easiest to do this using the videogen utility, manually adding the data supplied by this utility to the XFree86 settings file. For more information, see the documentation in the corresponding package (folder /usr/share/doc/videogen-*) .

Audio Cards

ALT Linux 2.3 Compact supports most contemporary audio cards. It is the easiest to set up PCI cards: this is done automatically by means of kudzu program.

Audio cards with ISA interface can be set up by means of sndconfig utility or manually.

Today, there exist two different projects for sound support in Linux: a quite old but still commonly used OSS standard (audio card drivers compatible with this standard are included in the Linux kernel), and a new improved ALSA standard (these drivers are included in the additional kernel-modules-alsa-* packages) for all kernels that are a part of the distribution. By default, in the automatic setup mode, the best driver is selected for every card, but advanced users can change the configuration. The only thing that should be remembered is that when using ALSA drivers, you should add the string prereq snd-your driver snd-pcm-oss to the /etc/modules.conf file to activate OSS emulation by ALSA drivers.

Beside this, the cards based on the EMU10K1 chip (produced by Creative SB Live! and Audigy/Audigy 2) there exists the emu10k1-tools package with utilities, which allow advanced users to load microcode to activate some additional functions.

Network Adapters

The ALT Linux 2.3 Compact distribution supports most contemporary network adapters that connect via ISA, PCI, PCMCIA and USB interfaces. None of the adapters (except for those with the ISA bus) require any special setup: they are all identified by the system automatically.

Adapters manufactured by Intel Corp. (EtherExpress100 series) are an exception. For these adapters, two drivers exist: eepro100, created by the Linux community, and å100, created by Intel. In case of problems, it is recommended to try the driver other than the one currently used in your system.

The same situation exists with 3c59x and 3c90x drivers for 3COM adapters.

For the tulip driver an older (and, perhaps, more stable) version is available. Its name is tulip_old. When setting up network adapters with ISA interface, you may have to specify parameters for the module, i.e. the I/O-port and IRQ used by your network adapter. If the driver starts successfully, a record about the successful setup of the network adapter will appear in the kernel messages (dmesg). If two identical network adapters are installed in the system, then, in order to set both of them up, it is sufficient to install a single driver: it will support both devices. If several different network adapters are installed in the system, they will be named in the order, in which their drivers are installed, Ô.šÅ. the first one is eth0; the second, eth1, etc.

Radio and Video Tuners

ALT Linux 2.3 Compact contains drivers for different cards that support the functions of radio and video tuners. Among today's most popular ones are video tuners based on Brooktree (BT848, 878, etc.) chips. These cards are identified and set up automatically, but sometimes you have to perform a more sophisticated configuration of the card manually. You may learn how this is done from the documentation of the bttv driver (/usr/share/kernel*-doc*/video4linux/bttv/*).

Configuration of radio tuners is more complicated, since they are usually made for the ISA bus. It is necessary to manually identify the appropriate driver that fits your tuner best (available drivers are stored in the folder /lib/modules/kernel-_kernel_version_/drivers/media/radio/*) and add a string such as alias char-major-81-64 _required_driver_ to the file /etc/modules.conf. For example, the Sound Forge card with the SF16-FMR2 chip requires the following settings:

	
	alias char-major-81-64 radio-sf16fmx2
	options radio-sf16fmx2 io=0x284
      

A radio tuner can be controlled using any program that corresponds to the video4linux standard (for example, qdt or radio from the xawtv-radio package). A video tuner can be controlled using xawtv or tvtime programs.

Other Devices

IR (Infrared) Ports

Linux supports many infrared ports, including the ones with support for MIR and HIR high-speed transfer standards; software can be found in the package irda-utils. For more information on IR configuration, see Infrared-HOWTO.

Streamers

The distribution supports various streamers (streaming-tape drives): these are mostly SCSI and IDE models. For additional information, please write to the ALT Linux mailing list or see the kernel-doc-std package.

Scanners

Unfortunately, support for scanners is not the strongest side of Linux, but, nevertheless, the Compact distribution contains the SANE system that supports devices connected by means of the SCSI interface or a parallel port. USB scanners are also supported; the hotplug service must be run for their functioning. Since the list of supported scanners is quite short, it is strongly recommended that you learn the documentation from the sane package or on the http://www.mostang.com/sane/ site before you buy a scanner.

Digital Cameras, MP3 Players and Other Auxiliary Devices

In contrast to scanners, digital cameras are supported to a sufficient degree; uploading of pictures can be done with the gphoto2 program. The documentation contains a list of supported models (with over 100 items).

Many digital cameras can function as USB Flash disks. No special settings are needed for them to work (see the section about removable hard drives).

Some MP3 players based on Flash drives and hard drives are also supported.

Links

For more information, write to the ALT Linux mailing list or look for the information on the Internet:



[2] The ISA bus, as well as COM/LPT ports, is “legacy”, Ô.šÅ. outdated, and it is supported today only to maintain compatibility with older devices.

[3] But you can still use them if you are careful enough.

[4] Or update BIOS.

[5] In descriptions of block device files X means a Latin letter, and N denotes a number.