TwikiHardwareHowToFr

Un article de Wiki de la communauté Mandriva.

Jump to: navigation, search

Sommaire

[modifier] Configurer votre matériel avec Mandriva Linux

Même si Mandriva Linux fait généralement bien les choses pour détecter et configurer votre matériel, parfois des matériels nouveaux ou peu répandus devront être configuré à la main. Voici quelques astuces pour ajouter manuellement votre matériel s'il n'est pas reconnu, ou pour changer sa configuration s'il est reconnu mais ne fonctionne pas correctement.



[modifier] Moniteurs

Attention !
Cette section est obsolète, voir Monitor-edid

Les moniteurs se répartissent généralement en deux catégories :


  • ceux qui sont détectés convenablement par analyse DDC (aussi appelé "plug 'n play")
  • ceux qui ne le sont pas.


A noter : le support de l'analyse DDC nécessite que le moniteur et la carte graphique soient du matériel supporté.

Pour ceux qui ont seulement leur carte graphique supportée, Mandriva Linux peut les référencer en ajoutant les lignes correctes à /usr/share/ldetect-lst/MonitorsDB. Le format est :

VendorName; ModelName; EISA_ID; HorizSync_Range; VertRefresh_Range; supports_dpms

Par exemple :

"Hewlett-Packard; A4575A 19inch Display; 0; 30-107; 50-160; 1"

Vous pouvez obtenir l'identifiant EISA (EISA ID) de votre moniteur en lançant cette commande :

ddcxinfos | fgrep -i eisa

Les plages de fréquences horizontale et verticale appropriées sont dans le manuel de votre moniteur. Il devrait aussi être indiqué si votre moniteur supporte le mode économie d'énergie (indicateur DPMS).

Pour ajouter votre moniteur à la base de données de Mandriva Linux database, envoyez un e-mail à la mailing list Cooker avec comme objet "[hardware] XYZ monitor". Fournissez la ligne (c'est-à-dire, les plages de fréquence appropriées, et l'EISA ID si possible) à ajouter à la base de données des moniteurs. Nous pourrons ainsi ajouter le support de votre moniteur à la base de données incluse avec Mandriva Linux.

A noter : les moniteurs qui n'ont pas le support de l'analyse DDC se répartissent en deux catégories :

  • ceux qui ont un EISA ID
  • ceux qui n'en ont pas.


Ceux qui ont un EISA ID pourront être préselectionnés dans la liste des moniteurs, les autres ne le seront pas. Dans ce deuxième cas, vous devrez sélectionner vous-même le bon moniteur.

Voici quelques exemples d'entrées de /usr/share/ldetect-lst/MonitorsDB :

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-2000M/MPR; dwe0000; 30.0-78.0; 50.0-90.0; 1
Daytek; Daewoo DT-2102M/MPR; dwe102a; 30.0-78.0; 50.0-90.0; 0

[modifier] Cartes son

En cas de problème, la commande reset_sound remettra le volume du son à sa valeur par défaut, définie par Mandriva Linux au premier démarrage.

Si votre carte son ne fonctionne pas parfaitement avec Mandriva Linux, suivez les étapes décrites dans la fenêtre de diagnostic de DrakSound (décrite aussi ci-dessous). Ce sont les « tests classiques » à effectuer en premier pour diagnostiquer des problèmes de son.

[modifier] Diagnostics

Tests à lancer quand vous avez des problèmes de son (Thierry Vignaud a écrit : "nous devrions vraiment faire de la fenêtre de diagnostic un outil "résoudre les problèmes de son" intégré à sndconfig..."):

[modifier] Quel module devrais-je utiliser  ?

Pour savoir quel module noyau (pilote) votre carte PCI utilise par défaut (et confirmer que votre carte est détectée) :

lspcidrake -v | fgrep AUDIO

Si vous avez une carte USB, tapez juste :

lspcidrake -v

Si rien ne s'affiche, regardez la section #Périphériques PCI ci-dessous pour régler le problème.

[modifier] Quel module est utilisé ?

Pour savoir quel module noyau est actuellement utilisé par votre carte :

grep sound-slot /etc/modules.conf /etc/modprobe.conf

[modifier] Quel module est chargé?

Pour vérifier si le module (pilote) est chargé ou non :

/sbin/lsmod

[modifier] Vérifier la configuration

Pour savoir si le son et les services alsa ont été configurés pour être lancés à initlevel 3

/sbin/chkconfig --list sound

et

/sbin/chkconfig --list alsa

[modifier] Le mixeur est-il sur silence ?

Pour savoir si le volume de son est sur silence ou pas :

aumix -q

L'édition 2008, pour savoir si le volume de son est sur silence ou pas :

aumix-test

En outre, amixer vous donnerait plus d'information pour déterminer si votre carte son utilise un pilote ALSA (c'est-à-dire, si le nom du module commence par "snd-").

[modifier] Quel programme l'utilise ?

Pour savoir quel programme utilise actuellement la carte son (ce qui empêcherait d'autres programmes de l'utiliser, sauf si votre carte supporte le mixage matériel)

/sbin/fuser -v /dev/dsp

[modifier] Problèmes de carte spécifiques

[modifier] Son bruité

Si vous entendez un son bruité, essayez de mettre sur silence le Microphone , le Mic Boost \(+20dB) ou le Mic Playback Switch

[modifier] Son distordu

Si vous entendez un son distordu, essayez de mettre sur silence "<verbatim>3D_control_switch</verbatim>"

[modifier] SB Live

Si vous voulez du son par des haut-parleurs analogiques sur le deuxième canal de sortie en utilisant le pilote ALSA, mettez sur silence le contrôle analog output jack. Vous pouvez maintenant changer le volume de vos haut-parleurs avec le contrôle wave surround.

Si analog output jack n'est pas sur silence, la sortie analogique pour la seconde paire de haut-parleurs est muette. Ainsi, si pour une raison quelconque, vous avez branché le premier couple de haut-parleurs sur cette sortie, il n'y a pas de son.

[modifier] C-Media PCI (CMI)

Si vous n'avez pas de son, essayez de mettre sur silence le contrôle Exchange DAC

[modifier] Capture de son

Pour enregistrer la sortie son d'un autre programme avec ALSA, vous devez utiliser alsamixer (en ligne de commande), alsamixergui ou gnome--alsamixer (GUI).

[modifier] Carte Son C-Media PCI (CMI8338)

Activez le canal PCM comme étant celui servant à l'enregistrement.

[modifier] Carte Son i810

Plus précisément, si vous avez une de ces cartes :

  • 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


Activez les canaux Capture et Mix comme ceux servant à l'enregistrement.

[modifier] Corriger les réglages par défaut

Depuis l'adoption d'ALSA, de nombreux problèmes mineurs se sont produits avec les niveaux de son par défaut, et avec Mandriva Linux nous cherchons encore à déterminer les meilleurs paramètres par défaut. Si par défaut vous avez des soucis avec votre machine (les problèmes courant sont que le son est muet ou que le microphone n'est pas sur silence), veuillez lancer les commandes suivantes et fournir le fichier /tmp/state.diff (soit par mail à la liste cooker ou attaché à un rapport de bug) ainsi que le résultat de 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

(extrait d'un mail sur la ML cooker de Thierry Vignaud)

[modifier] Périphériques PCI

Si votre périphérique PCI n'est pas détecté correctement, envoyez par mail le résultat de <verbatim>lspcidrake -v</verbatim> à la mailing-list Cooker avec comme objet "[hardware] XYZ device" (e.g. "[hardware] 3com905 network card") pour que nous connaissions ses IDs. Si vous savez quel module devrait être utiliser, précisez aussi cette information.

Si vous souhaitez que son support soit intégré plus vite à Mandriva Linux, envoyez un patch pour le fichier /usr/share/ldetect-lst/pcitable. Commencez par en faire une copie dans votre répertoire utilisateur. Puis, dans le fichier copié, ajoutez une ligne ou corrigez la ligne existante concernant votre périphérique. Le format est :

vendor_id device_id "module" "Nom du fabricant|Nom du périphérique"

Le séparateur de champ est un caractère tab. Les IDs sont au format hexadécimal (comme ceux fournis par lspcidrake -v).

Par exemple :

0x10de 0x006a "snd-intel8x0" "Nvidia Corporation|nForce2 Audio Codec Interface"

Si plusieurs périphériques ont le même ID de fabricant et de périphérique, vous pouvez ajouter les sous-IDs de fabricant et périphérique de la forme :

vendor_id device_id vendor_subid device_subid "module" "Nom du fabricant|Nom du périphérique"

Après avoir sauvé vos modifications de la copie, créez un patch en utilisant la commande suivante :

diff -u /usr/share/ldetect-lst/pcitable [nom de votre copie modifiée] > ~/pcitable.patch

Envoyez le patch résultant à la mailing list Cooker, ou les informations précisées plus haut.

Si après discussion il s'avère qu'aucun support n'est disponible, la seule solution est d'encourager (poliment) le fabricant à supporter GNU/Linux.

[modifier] Périphériques USB

Ces périphériques devraient être automatiquement détectés par hotplug (qui devrait aussi les charger). Hotplug s'appuie sur les pilotes de périphériques USB du noyau pour exporter les ID ou les classes de périphériques qu'ils gèrent grâce à=modules.usbmap= dans /lib/modules/[version_noyau].

Si votre périphérique n'est pas détecté, il y a trois cas possibles :


  • Cela échoue parce que le pilote n'exporte pas correctement les ID des périphériques qu'il supporte, mais le périphérique est reconnu dès chargement manuel du module.
  • Solution : modifiez le fichier appelé usbtable comme expliqué pour pcitable dans la section #Périphériques PCI ci-dessus
    • Le périphérique n'a pas d'identifiants corrects (ie 0x0:0x0)
  • Solution : pas de solution disponible ?
    • Le périphérique nécessite un contournement pour être configuré par le pilote (e.g. quelques périphériques audio ou de stockage)
  • Solution : contacter l'auteur du pilote pour qu'il corrige le pilote si possible.

    [modifier] Ajouter une carte PCMCIA

    Les cartes PCMCIA (aussi appelées cartes PC) doivent être configurées en ajoutant leurs informations d'identification à /etc/pcmcia/config sous la forme suivante :

    card "<Nom commercial de la carte>"
      version <chaîne de version obtenue par cardctl ident>
      bind "<pilote>"
    

    Dans certains cas, l'identifiant du fabricant (manfid) peut être utile :

    card "<Nom commercial de la carte>"
      version <chaîne de version obtenue par cardctl ident>
      manfid <valeur en hexa de manfid par cardctl ident>
      bind "<pilote>"
    

    Pour obtenir les valeurs pour "version" et "manfid", lancer cardctl ident, et utilisez-les telles quelles. Pour la valeur suivant "card", utilisez le nom le plus significatif écrit sur la carte ou sur la boîte.

    Voici un exemple :

    card "Surecom EP-427X 16bit 100/10M Ethernet Card"
      version "CouplerlessPCMCIA", "100BASE"
      #manfid 0xffff, 0x1090
      bind "pcnet_cs"
    

    A noter dans cet exemple, la ligne "manfid" est commentée. Normalement, les lignes "version" et "bind" devraient suffire. Néanmoins, dans certains cas la valeur de "manfid" aussi est nécessaire. En l'incluant comme commentaire, le "manfid" pourra ainsi être utilisé en cas de besoin.

    [modifier] Cartes réseau

    Drakconnect détecte les cartes réseau par analyse du matériel et sélection des cartes dont le pilote identifie une carte réseau. La liste des pilotes réseau est dans /usr/lib/libDrakX/list_modules.pm.

    Si aucun pilote n'apparaît dans harddrake2, regardez les sections #Périphériques PCI, #Périphériques USB, ... ci-dessus afin de corriger le problème.

    Si harddrake liste la carte réseau mais pas drakconnect, il y a une forte probabilité que son pilote ne soit pas connu de drakconnect. Dans ce cas, il suffit d'ajouter ce pilote à la liste de /usr/lib/libDrakX/list_modules.pm.

    Certaines cartes ont un problème avec les outils mii (mii-tools) utilisés pour détecter le statut de la liaison. Si vous avez des problèmes pour que la carte soit reconnue au moment du démarrage, vérifier ce que mii-tools renvoie. S'il dit qu'il n'y a pas de liason, il se peut que vous ayez un problème de détection. Essayez d'ajouter la ligne MII_NOT_SUPPORTED=yes à /etc/sysconfig/network-scripts/ifcfg-eth0 (ou le fichier concerné, pour votre interface).

    Si cela résout votre problème, envoyez un email à la ML Cooker avec l'objet "[hardware::mii_tools] module XXX doesn't support mii tools", où XXX est le module de la carte réseau

    [modifier] Cartes réseau Wifi (sans-fil)

    Voir le cas général ci-dessus d'abord.

    Si drakconnect n'identifie pas votre carte réseau en tant que sans-fil (c'est-à-dire qu'il ne propose pas de configurer les paramètres sans-fil mais seulement les paramètres réseau génériques), envoyez par email le nom du module qui gère votre carte wifi à la mailing list Cooker avec comme objet "[hardware::wifi] XYZ device use AAA module" (e.g. "[hardware::wifi] Advantech WLAN-9030 network card uses 3574_cs"). Ainsi nous pourrons modifier drakconnect pour qu'il sache que ce module doit être géré en tant que pilote sans-fil.

    Mise à jour : depuis drakxtools-10-35mdk, drakconnect ne se base plus sur la liste des pilotes sans-fil mais vérifie plutôt si le pilote supporte ou non les extensions sans-fil

    [modifier] Scanners (raster image scanners)

    Si votre scanner n'est pas reconnu.

    En premier, précisez dans votre rapport de bug quelle marque et modèle vous avez exactement.

    Assurez-vous que le scanner est branché à votre ordinateur et allumé. Pour un scanner usb, donnez le résultat de :

    • lsusb
    • sane-find-scanner
    • scanimage -L

    Pour un scanner scsi, assurez-vous d'avoir chargé le bon pilote pour votre carte scsi card (si vous avez des problèmes avec la carte scsi, regardez la section Périphériques PCI ci-dessus). Veuillez fournir le résultat de :

    • cat /proc/scsi/scsi
    • sane-find-scanner
    • scanimage -L


    [modifier] Problèmes de paramètres de noyau

    Quelques paramètres au lancement du noyau peuvent poser problème (acpi=off, noapic, etc.)

    ThomasBacklund a dit :

    Lancez la commande suivante :

    # urpmi dmidecode
    # dmidecode
    

    et remontez les infos des Handle 0x0000, Handle 0x0001, Handle 0x0002,

    ainsi que les informations précisant ce qui est cassé (voire comment le réparer) et ce dont vous avez besoin pour réussir à faire fonctionner votre système... tel que acpi=off, noapic, etc.

    [modifier] Problèmes de souris

    Si vous avez un portable avec un touchpad Synaptics, et que vous ne réussissez pas à faire fonctionner votre souris ps/2 externe avec le kernel 2.6.x, essayez d'ajouter psmouse.proto=imps aux paramètres de lancement de votre noyau dans lilo (section append de /etc/lilo.conf) ou tout autre chargeur de démarrage.

    [modifier] ACPI - DSDT spécifique

    Si le support ACPI ne fonctionne pas avec le noyau par défaut, il est possible d'ajouter une table de description différenciée du système (DSDT pour Differentiated System Description Table). [[1]] propose des fichiers de DSDT spécifiques. Pour les compiler en format binaire utilisable, vous aurez besoin du compilateur Intel, disponible à partir de [[2]]. Une fois que vous disposez du compilateur Intel, utilisez gunzip pour le fichier téléchargé et compilez le source comme ceci :

    # iasl -on foo.asl
    

    Vous obtenez un fichier dsdt.aml. Copiez-le dans /boot. Pour que mkinitrd inclue automatiquement ce fichier à chaque mise à jour de votre noyau, éditez /etc/sysconfig/mkinitrd et ajoutez la ligne :

    dsdt_file=/boot/dsdt.aml
    

    Sinon, vous pouvez utiliser l'argument --dsdt pour mkinitrd, mais éditer le fichier dans sysconfig vous permet de ne pas avoir à vous inquiéter à le refaire manuellement après chaque mise à jour du noyau.

    Vous pouvez aussi visualiser votre table ACPI actuelle soit en utilisant pmtools, soit à partir de /proc. [[3]] fournit quelques liens précisant les procédures pour éditer/compiler un fichier dsdt.asl.

    # urpmi pmtools
    # acpidmp > acpidmp.out
    # acpixtract DSDT acpidmp.out > dsdt.aml
    # iasl -d dsdt.aml
    
    # cat /proc/acpi/dsdt > dsdt.aml
    # iasl -d dsdt.aml
    

    Vous pouvez alors éditer le fichier dsdt.asl, le compiler et le charger comme DSDT spécifique.