From Mandriva Community Wiki
Hardware Compatibility Information
This information is left here for legacy information. All new hardware-related entries should use the Mandriva Linux Community Hardware Compatibilty List. For that reason this and the subsequent topics have been protected so as to prevent editing.
- CDROMS - CDRW
- Complete Systems
- Controller Boards: please see SCSI Cards
- DVDROMS - DVDRW
- Firewire Devices/Cards
- I/O Cards
- KVM switches
- Network Cards
- PDAs and Handheld PCs
- Power saving configuration
- SCSI cards
- TV Tuner Cards
- USB Devices
- UPS Devices
- Video Cards
- Wireless Peripherals
How to Configure your Hardware in Mandriva Linux
While Mandriva Linux usually does a good job of recognising and configuring hardware, sometimes newer or rarer hardware will still need to be hand-configured. Here are some tips to manually add your hardware if it isn't recognised, or to change your configuration if it is recognised but doesn't funciton correctly.
to configure the following, see Graphic Cards
- Multi head: Clone (mostly for laptops or using projectors), Xinerama
- 3D acceleration: DRI/GLX, AIGLX
- Translucency (Composite extension), RENDER extension (EXA) (please note that XAA is not recommended by intel driver upstream)
Monitors generally fall into two categories:
- those that are properly detected through DDC probing (so called "plug 'n' play")
- those that are not
Note that proper DDC probing support needs both monitor _and_ graphic card support in hardware.
For those that only have graphic card support, we can still reference them by adding the correct lines to /usr/share/ldetect-lst/MonitorsDB. The format is:
VendorName; ModelName; EISA_ID; HorizSync_Range; VertRefresh_Range; best_resolution
Compaq; Compaq P710; CPQ1384; 30-96; 50-140; 1600x1200
You can get this line by running the following command:
You can check the proper horizontal and vertical frequency ranges in your monitor manual. You should also give the resolution which is best for the monitor (very useful for LCD panels which nicely handle only one resolution).
On older distribution, use the following command to get EISA_ID:
To add your monitor to the Mandriva Linux database, send an e-mail to the Cooker mailing list with the subject "[hardware] XYZ monitor". Include the line (that is, the proper frequency ranges, and the EISA ID if possible) to add to the monitors database. We can then add support for your monitor to the database included with Mandriva Linux.
Note that those monitors that do not support DDC probing fall into two categories:
- those that have an EISA ID
- those that do not
Those with an EISA ID will be automatically preselected in the monitors list, the rest won't be. In the second case, you will have to manually select the right monitor.
Here are additional examples of entries from /usr/share/ldetect-lst/MonitorsDB:
Compaq; Compaq P710; CPQ1384; 30-96; 50-140; 1600x1200 Goldstar; Goldstar LG StudioWorks56i; 0; 30.0-60.0; 50.0-110.0 Iiyama; Iiyama A702HT, VisionMaster Pro 410; ivm1740; 27.0-96.0; 50.0-160.0; 1 Daytek; Daewoo DT-2102M/MPR; dwe102a; 30.0-78.0; 50.0-90.0; 0
In case of problem, the reset_sound command will reset the sound volume to the default one that Mandriva Linux has set up on first boot.
If your sound card is not working smoothly under Mandriva Linux, follow the steps described in the troubleshooting window in DrakSound (also outlined below). These can be considered the "classic tests", and are the first things you should try when you run into trouble with sound.
Tests to run when experiencing sound problems.
(ThierryVignaud wrote: "we really should morph the troubleshooting window in a "solve sound problem" tool merged with sndconfig..."):
What Module Should I Use?
To learn which kernel module (driver) your PCI or USB card uses by default (and to confirm that your card is detected)
If nothing is displayed, go look at the PCI devices section below in order to fix the problem.
What Module Am I Using?
To learn which kernel module is currently set up to be used by your card
grep sound-slot /etc/modules.conf /etc/modprobe.conf
What Module is Loaded?
To check if it's module (driver) is loaded or not
Checking the Configuration
To learn if sound and alsa services have been configured to be run at initlevel 3
/sbin/chkconfig --list sound
/sbin/chkconfig --list alsa
Is My Mixer Muted?
To know if the sound volume is muted or not
Alternatively, amixer would tell you more information if your sound card uses an ALSA driver (that is, if its module name begins by "snd-").
What is in Use?
To find out which program is currently using the sound card (which prevents other programs from using it, unless your card supports hardware mixing)
/sbin/fuser -v /dev/dsp
Card specific problems
In case of problem, note that you can always switch back to the default settings set up by Mandriva Linux on the first boot by running the reset_sound command.
If you experienced noisy sound, try muting Microphone, Mic Boost \(+20dB) or Mic Playback Switch
If you experienced distorded sound, try muting "3D_control_switch"
If you want to have sound via analog speakers on the second output channel using the ALSA driver, mute the "analog output jack" control. You can now change the volume of your speakers with the "wave surround" control.
If "analog output jack" is not muted, the analog output for the second pair of speakers is muted. So if for some reason you have the first speaker couple plugged into this output, sound is muted.
C-Media PCI (CMI)
If you've no sound, try muting the "Exchange DAC" control
To capture the sound ouput from another program with ALSA, you've to use either alsamixer (from command-line), alsamixergui or gnome--alsamixer (GUIes).
C-Media PCI sound card (CMI8338)
Enable the PCM channel as the one to record from.
i810 sound card
That is, if you have one of these cards:
- Ali M5455
- AMD AMD768, AMD8111
- Intel 82801AA (ICH), 82901AB (ICH0), 82901BA (ICH2), 82901CA (ICH3), 82901DA (ICH4), ICH5, i810, i820, i830, i840, i845, MX440
- NVidia nForce Audio, nForce2 Audio
- SiS 7012
Enable the Capture and the Mix channels as the ones to record from.
Analog / Digital output controls (especially Audigy)
Many modern sound cards can output over traditional 3.5mm analog connectors, or digitally to a separate decoder via optical or coaxial SP/DIF outputs. Usually, these cards cannot play sounds through both outputs at once, so there is a mixer control to set whether analog or digital output is used. Most people still use traditional analog output, so we set the drivers for digital-capable cards to analog output by default. If you know you use digital output and you do not hear any sound from your card, run a mixer application and look for a control usually labelled "Analog / Digital output jack". On some cards it may be labelled "IEC958 Output", or something similar. You can switch between analog and digital output by muting and unmuting this mixer control. If you are not sure whether your system uses analog or digital output, look at the connectors going from your computer to your speakers. If the connectors at the computer end look like normal 3.5mm connectors such as you would use to connect headphones to a portable CD or MP3 player, you are probably using analog output. If you have some other kind of connector, especially one that plugs into a black socket that is extended from the back of the computer, you are probably using digital output.
Correcting default settings
Since the adoption of ALSA, numerous minor problems have been experienced with the default sound levels, and in Mandriva Linux we are still striving to find better defaults. If the defaults for your machine are problematic (common problems are that the output is muted, or that the microphone is not muted), please run the following commands, and supply the file /tmp/state.diff (either via mail to the cooker list or attached to a bug report) along with the output of 'lspcidrake -v':
alsactl store /etc/rc.d/rc.alsa_default /etc/asound.state cp /etc/asound.state /tmp/asound.state.1 alsactl restore gnome-alsamixer # or alsamixergui # alter your mic setting alsactl store diff -u /tmp/asound.state.1 /etc/asound.state > /tmp/state.diff
(From post on cooker by ThierryVignaud)
If your PCI device is not properly detected, e-mail the output of lspcidrake -v to the Cooker mailing list with the subject "[hardware] XYZ device" (e.g. "[hardware] 3com905 network card") so that we know its IDs. If you know which module it should use, include that information too.
If you want its support to be integrated faster in Mandriva Linux, send a patch for the /usr/share/ldetect-lst/pcitable file. Start by making a copy of the file into your home directory. Then, within the copied file, add a line or fix the existing one regarding your device. The format is:
vendor_id device_id "module" "Vendor_name|device_name"
Fields are separated by a single tab character. IDs are in hexadecimal formats (like those given by lspcidrake -v).
0x10de 0x006a "snd-intel8x0" "Nvidia Corporation|nForce2 Audio Codec Interface"
If several devices share the same vendor and device IDs, then you may add the vendor and device sub IDs, in the form of:
vendor_id device_id vendor_subid device_subid "module" "Vendor_name|device_name"
After saving your changes to the copy, create a patch file by using the following command:
diff -u /usr/share/ldetect-lst/pcitable [filename of your edited copy] > ~/pcitable.patch
Send the resulting patch file to the Cooker mailing list instead of or in addition to the information detailed earlier.
If after discussion it appears that no support is available, the only solution is to encourage the vendor to support Linux.
These devices should be automagically detected by hotplug (which should also load them). Hotplug relies on USB device drivers from the kernel to export the devices' IDs or classes that they handle through modules.usbmap in /lib/modules/[kernel_version].
If your device isn't detected, one of three cases is possible:
- It failed because the driver does not properly export the IDs of the devices it supports, but the device is recognized upon manually loading the module.
- Solution: alter the file called usbtable as explained for pcitable in the PCI devices section above
- The device has no proper IDs (ie 0x0:0x0)
- Solution: no proper solution?
- The device needs some workaround to be set up by the driver (e.g. some audio or mass storage devices)
- Solution: contact the author of the driver so that he fixes the driver if possible.
PCMCIA cards (also known as PC Cards) are handled at hotplug on the PCMCIA and PCI buses, using udev rules and utilities from the pcmciautils package.
The PCMCIA controller module is detected by the installer or by the harddrake service, and is configured in the /etc/modprobe.preload.d/pcmcia file. Some udev rules run /sbin/pcmcia-socket-startup to setup resource database for sockets that require it. The system resources can be configured in the /etc/pcmcia/config.opts file.
The PCMCIA devices can be listed using the lspcmcia and pccardctl tools. If a card isn't binded to the correct driver, its device IDs should be added to the matching kernel module (the /etc/pcmcia/config file isn't used anymore).
Drakconnect detects network cards by probing hardware and greping for the cards whose driver is known to be a network card. The list of netword drivers is listed in /usr/lib/libDrakX/list_modules.pm.
If harddrake lists the netword card but drakconnect does not, the odds are high that his driver is not known to drakconnect. Then, this is just a matter of adding the driver to /usr/lib/libDrakX/list_modules.pm 's list.
Some card have problem with mii-tools , used to detect the status of the link. If you have trouble with your card to be brought up at boot time, check what mii-tools return. If it say there is no link, then you may have a detection problem. Try to add MII_NOT_SUPPORTED=yes to /etc/sysconfig/network-scripts/ifcfg-eth0 (or the relevant file, for your interface).
If this resolve the problem, send a email to cooker with subject "[hardware::mii_tools] module XXX doesn't support mii tools", with XXX is the module of the network card
Wifi (wireless) network cards
See generic case above first.
If drakconnect does not identify your network card as a wireless one (ie it does not offer to configure wireless settings but only generic network settings), e-mail the name of the module that manage your wireless card to the Cooker mailing list with the subject "[hardware::wifi] XYZ device use AAA module" (e.g. "[hardware::wifi] Advantech WLAN-9030 network card uses 3574_cs"). Thus we'll be able to alter drakconnect so that it knows that this module sould be handled as a wireless driver.
update: since drakxtools-10-35mdk, drakconnect do not anymore rely on wireless drivers whitelist but instead checks whether the driver supports wireless extensions or not
Scanners (raster image scanners)
Scanner is not recognized.
First, tell us in your bugreport what brand and model you have exactly.
Make sure the scanner is connected to your computer, and turned on. For an usb scanner, please provide the output of:
- scanimage -L
For a scsi scanner, make sure you have loaded the correct driver for your scsi card (if you have problems with the scsi card itself, take a look at the PCI devices section above).
Please provide the output of:
- cat /proc/scsi/scsi
- scanimage -L
Kernel Parameters Problems
Various kernel parameters can cause problems (acpi=off, noapic, etc)
Run the following:
urpmi dmidecode; dmidecode
and tell the info from Handle 0x0000, Handle 0x0001, Handle 0x0002,
along with the info of what or how it's broken, and what you need to use to get the system working... such as acpi=off, noapic, etc...
If you have a laptop with a Synaptics touchpad, and you can't get your external ps/2 mouse to work with kernel 2.6.x, try passing psmouse.proto=imps in your kernel arguments in lilo or your other bootloader.
ACPI - Custom DSDT
If ACPI support doesn't work in the default kernel, it is possible to add a custom DSDT (Differentiated System Description Table). http://acpi.sourceforge.net/dsdt/view.php has customized DSDT files in disassembled form. To be able to compile it into a binary format that can be used, you'll need Intel's compiler, available from http://www.acpica.org/downloads/. Once you built the Intel compiler, you can gunzip the downloaded file and compile the source file like this:
iasl -on foo.asl
You'll end up with a file dsdt.aml. You can copy this to /boot. To have mkinitrd automatically include this file each time you update your kernel, edit /etc/sysconfig/mkinitrd and add the line:
Alternately you can use the --dsdt argument in mkinitrd, but editing the sysconfig file lets you not have to worry about manually redoing it after a kernel upgrade.
You can also dump your current ACPI table using either pmtools, or from /proc. http://acpi.sourceforge.net/dsdt/index.php has a couple of links going into more detail on editing/compiling issues with an edited dsdt.asl.
# urpmi pmtools # acpidump > acpidmp.out # acpixtract DSDT acpidmp.out > dsdt.aml # iasl -d dsdt.aml
cat /proc/acpi/dsdt > dsdt.aml; iasl -d dsdt.aml
You can then edit the dsdt.asl file, compile it and load it as a custom DSDT.
- http://www1.mandrivalinux.com/en/hardware.php3 - to be replaced by a TWiki entry
- http://www.linuxhardware.org/ - snippets of up to date information and links
- Linux Compatible - alphabetical index in searchable database
- http://www.linuxtested.com/ - tables of hardware tested against various distros, but not much of it tested against Mandriva.
- http://www.qbik.ch/usb/devices/devices.php - another searchable database
- http://justlinuxhardware.com/ - another user-maintained site
- http://brlinux.linuxsecurity.com.br/noticias/hw-mandrake.html - Recent (Nov.2003) survey of compatibility, in Brazilian Portuguese, but understandable. 'Média' refers to level of difficulty in getting it to work. 'Respostas' is number of reports of that item.
Other links appear on subject-specific pages.