Docs/Hardware

From Mandriva Community Wiki

Revision as of 12:48, 11 August 2011 by Cristian Gherman (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Contents

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.

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.

Graphic card

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

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

For example:

Compaq; Compaq P710; CPQ1384; 30-96; 50-140; 1600x1200

You can get this line by running the following command:

monitor-edid --MonitorsDB

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:

ddcxinfos

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

Sound Cards

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.

Troubleshooting

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)

lspcidrake -v

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

/sbin/lsmod

Checking the Configuration

To learn if sound and alsa services have been configured to be run at initlevel 3

/sbin/chkconfig --list sound

and

/sbin/chkconfig --list alsa

Is My Mixer Muted?

To know if the sound volume is muted or not

aumix -q

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.

Noisy sound

If you experienced noisy sound, try muting Microphone, Mic Boost \(+20dB) or Mic Playback Switch

Distorded sound

If you experienced distorded sound, try muting "3D_control_switch"

SB Live

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

Capturing Sound

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)

PCI devices

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).

For example:

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.

USB devices

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

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).

Network cards

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 no driver is displayed in harddrake2, go look at the PCI devices section, USB devices, ... above in order to fix the problem.

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:

  • lsusb
  • sane-find-scanner
  • 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
  • sane-find-scanner
  • scanimage -L

Gamepads

Kernel Parameters Problems

Various kernel parameters can cause problems (acpi=off, noapic, etc)

ThomasBacklund says:

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...

Mouse Problems

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:

dsdt_file=/boot/dsdt.aml

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.

Useful Links

Other links appear on subject-specific pages.

Personal tools
In other languages